Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
1749
Tıklama
0
Öne Çıkarma
Algoritma ve Sahte Kod Ödevi
Z
11 yıl (3 mesaj)
Er
Konu Sahibi

Girilen herhangibir 5 basamaklı n tamsayısının rakamlarını ekrana tersten yazdıran bir fonksiyonun algoritmasını doğal dil ile tanımladıktan sonra sahte kodlarla ifade ediniz.

Bana bu ödev konusunda yardımcı olabilirseniz gerçekten çok çok makbule geçecek bir türlü yapamadım

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



K
11 yıl (22159 mesaj)
Yarbay

Denediğin kadarıyla yaz, hatanı düzeltelim.



_
11 yıl (3190 mesaj)
Yarbay

1-Klavyeden long tipinde sayıyı al
2-Girilen degeri sayı mı diye kontrol et
3-Sayıysa string degiskenine bu sayıyı convert et.
4-for loop ile string degiskeninin son harfinden baslayarak ilk harfe kadar konsola write et veya yeni bir tane string degiskenine degeri koy.
5-Cıkıs


Örnek kod :


long sayı;
string metin;
string ters="";
bool bitti = false;


while (bitti == false)
{

if (long.TryParse(Console.ReadLine(), out sayı))
{

bitti = true;
metin = sayı.ToString();


for (int i = metin.Length - 1; i >= 0; i--)
{


ters += metin.Substring(i, 1);


}

Console.WriteLine(ters);



}
else
{

Console.WriteLine("Lütfen sayı giriniz !");

}
}

Console.ReadKey();


Bu mesaja 1 cevap geldi.
Z
11 yıl (3 mesaj)
Er
Konu Sahibi

quote:

Orijinalden alıntı: emg125

1-Klavyeden long tipinde sayıyı al
2-Girilen degeri sayı mı diye kontrol et
3-Sayıysa string degiskenine bu sayıyı convert et.
4-for loop ile string degiskeninin son harfinden baslayarak ilk harfe kadar konsola write et veya yeni bir tane string degiskenine degeri koy.
5-Cıkıs


Örnek kod :


long sayı;
string metin;
string ters="";
bool bitti = false;


while (bitti == false)
{

if (long.TryParse(Console.ReadLine(), out sayı))
{

bitti = true;
metin = sayı.ToString();


for (int i = metin.Length - 1; i >= 0; i--)
{


ters += metin.Substring(i, 1);


}

Console.WriteLine(ters);



}
else
{

Console.WriteLine("Lütfen sayı giriniz !");

}
}

Console.ReadKey();

Cevabınız teşekkür ederim. for loop kısmında şöyle birşey yapabilirmiyiz?
n= 12345 olsun ben burda şöyle bir yol izledim

rakam[0] rakam[1] rakam[2] rakam[3] rakam[4]
1 2 3 4 5

Burda bir döngü kurdum 5 rakam olduğu için döngü 2 defa döner.

1. döngüde i=0,n=5
rakamTut=rakam[n-i-1] şeklinde düşünürsek
rakamTut=rakam[4]
rakam[4]=rakam[0]
rakam[0]=rakamTut

2. döngüde i=1,n=5
rakamTut=rakam[n-i-1]
rakamTut=rakam[3]
rakam[3]=rakam[1]
rakam[1]=rakamTut

Belki biraz karıştırdım ama düşündüğüm şey temelinde şu:
1. döngüde m=0, 2. döngüdem m=1 için
rakamTut=rakam[n-m-1];
rakam[n-m-1]=rakam[m] ;
rakam[m] =rakamTut;





< Bu mesaj bu kişi tarafından değiştirildi zasdar -- 10 Ekim 2014; 21:45:32 >
Bu mesaja 1 cevap geldi.
_
11 yıl (3190 mesaj)
Yarbay

quote:

Orijinalden alıntı: zasdar

quote:

Orijinalden alıntı: emg125

1-Klavyeden long tipinde sayıyı al
2-Girilen degeri sayı mı diye kontrol et
3-Sayıysa string degiskenine bu sayıyı convert et.
4-for loop ile string degiskeninin son harfinden baslayarak ilk harfe kadar konsola write et veya yeni bir tane string degiskenine degeri koy.
5-Cıkıs


Örnek kod :


long sayı;
string metin;
string ters="";
bool bitti = false;


while (bitti == false)
{

if (long.TryParse(Console.ReadLine(), out sayı))
{

bitti = true;
metin = sayı.ToString();


for (int i = metin.Length - 1; i >= 0; i--)
{


ters += metin.Substring(i, 1);


}

Console.WriteLine(ters);



}
else
{

Console.WriteLine("Lütfen sayı giriniz !");

}
}

Console.ReadKey();

Cevabınız teşekkür ederim. for loop kısmında şöyle birşey yapabilirmiyiz?
n= 12345 olsun ben burda şöyle bir yol izledim

rakam[0] rakam[1] rakam[2] rakam[3] rakam[4]
1 2 3 4 5

Burda bir döngü kurdum 5 rakam olduğu için döngü 2 defa döner.

1. döngüde i=0,n=5
rakamTut=rakam[n-i-1] şeklinde düşünürsek
rakamTut=rakam[4]
rakam[4]=rakam[0]
rakam[0]=rakamTut

2. döngüde i=1,n=5
rakamTut=rakam[n-i-1]
rakamTut=rakam[3]
rakam[3]=rakam[1]
rakam[1]=rakamTut

Belki biraz karıştırdım ama düşündüğüm şey temelinde şu:

rakamTut=rakam[n-i-1];
rakam[n-i-1]=rakam;
rakam=rakamTut;


böyle de olur ama daha basit algoritmalar var.Sen diziye almıssın ona göre düsünürsek yeni bir dizi olusturup önceki diziden eklemek daha kolay olur :

int[] rakam; // bu senin sayıları koydugun dizi

int[] ters=new int[rakam.length];
int tersindex = 0;

for(int i = rakam.Length-1 ; i >=0 ; i--)
{


ters[tersindex]=rakam;

ters+=1;

}

Bu daha kolayı olur.




seninki :


int[] rakam // senin sayıları aldıgın dizi
int toplam = rakam.Length;
int arasayı ;
int tersindex;

for(int i = 0; i<toplam/2 ; i++)
{

tersindex=(toplam-1)-i;
arasayı=rakam;
rakam=rakam[tersindex];
rakam[tersindex]=arasayı;



}


Hangisi gözünüz hos gittiyse :))





< Bu mesaj bu kişi tarafından değiştirildi _Rand_al_Thor_ -- 10 Ekim 2014; 22:03:35 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.