Şimdi Ara

Algoritma ve Sahte Kod Ödevi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
5
Cevap
0
Favori
1.637
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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



  • Denediğin kadarıyla yaz, hatanı düzeltelim.
  • 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();




  • 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 >




  • 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 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.