none
c# RRS feed

  • Soru

  • Merhaba arkadaşlar c# konusunda kendimi geliştirmek için ufak çalışmalar yapıyorum fakat "Dizin, dizi sınırının dışındaydı" hatası alıyorum yardımcı olursanız çok sevinirim.Şimdiden teşekkürler. 10 elemanlı bir dizinin ardışık elemanlarının farklarını almaya çalışıyorum.Kodlar şöyle;

                            int[] sayilar = new int[9];
    int[] fark = new int[9];
    Random sayi = new Random();
    for (int i = 0; i <=sayilar.Length; i++)
    {
    sayilar[i] = sayi.Next(1,10);
    fark[i] = sayilar[i+1] - sayilar[i];

    }
    foreach (int y in sayilar)
    {
    Console.WriteLine("Tutulan Sayılar"+y);
    }
    foreach (int x in fark)
    {
    Console.WriteLine("Aradaki Farklar"+x);
    }
    Console.ReadKey();


    24 Mayıs 2017 Çarşamba 21:20

Yanıtlar

  • int[] sayilar = new int[9];
                int[] fark = new int[9];
                Random sayi = new Random();
                for (int i = 0; i < sayilar.Length; i++)
                {
                    sayilar[i] = sayi.Next(1, 10);
                }
                foreach (int y in sayilar)
                {
                    Console.WriteLine("Tutulan Sayılar" + y);
                }
                for (int i = 0; i < sayilar.Length - 1; i++)
                {
                    fark[i] = sayilar[i + 1] - sayilar[i];
                }
                foreach (int x in fark)
                {
                    Console.WriteLine("Aradaki Farklar" + x);
                }
    Yukarıdaki kodları deneyebilir misiniz?

    Code is Poetry

    24 Mayıs 2017 Çarşamba 21:34
    Moderatör
  • Merhaba,

    Dizinin uzunluğunun bir eksiği ile işlem yaptırmamızın nedeni farkı hesaplamak. Döngü içerisinde gezerken, dizinin o indexten bir sonraki indexe ait elemanından o indexe ait elemanı çıkararak farkı hesaplatıyoruz ve bunu oluşturduğumuz fark dizisinin o indexindeki elemanına set ediyoruz.

    Bunlar matematiksel hesaplamalarla alakalı konular. 

    Çeşitli algoritmalar geliştirerek, daha farklı yöntemler ile de yapabilirsiniz.

    Konu başlığınız olan sorununuz çözüldüğü için, lütfen Yanıt Olarak İşaretler misiniz?

    Çalışmalarınızda kolaylıklar dilerim.


    Code is Poetry

    24 Mayıs 2017 Çarşamba 22:32
    Moderatör

Tüm Yanıtlar

  • int[] sayilar = new int[9];
                int[] fark = new int[9];
                Random sayi = new Random();
                for (int i = 0; i < sayilar.Length; i++)
                {
                    sayilar[i] = sayi.Next(1, 10);
                }
                foreach (int y in sayilar)
                {
                    Console.WriteLine("Tutulan Sayılar" + y);
                }
                for (int i = 0; i < sayilar.Length - 1; i++)
                {
                    fark[i] = sayilar[i + 1] - sayilar[i];
                }
                foreach (int x in fark)
                {
                    Console.WriteLine("Aradaki Farklar" + x);
                }
    Yukarıdaki kodları deneyebilir misiniz?

    Code is Poetry

    24 Mayıs 2017 Çarşamba 21:34
    Moderatör
  • İyi günler

    fark[i] = sayilar[i+1] - sayilar[i];

    burada mantık hatası yapmışsın son sayıya gelince diziyi bir artırmış sın oda dizi dışına taşıyor.

    İyi çalışmalar.

    24 Mayıs 2017 Çarşamba 21:35
  • Cevap için çok teşekkürler çalışıyor ama anlayamadığım yerler var.

    Birincisi tutulan sayıların bulunduğu dizi uzunluğu 10 ama for döngüsünde dizi uzunluğu kadar arttırılmasına rağmen neden 9 sayı tutuluyor?

    İkincisi farkı hesaplarken for döngüsünde dizi uzunluğunun bir eksiğini neden alıyoruz?


    for (int i = 0; i < sayilar.Length - 1; i++)
    24 Mayıs 2017 Çarşamba 21:44
  • Sayıların tutulacağı diziyi 1 arttırsam sorunu çözebilir miyim denedim ama olmadı.

    Cevap için teşekkürler.

    24 Mayıs 2017 Çarşamba 21:51
  • Evet ama önce ona da değer girmen gerekir yoksa boş hatası verir yada 0 görür denemek lazım.
    24 Mayıs 2017 Çarşamba 22:16
  • Merhaba,

    Dizinin uzunluğunun bir eksiği ile işlem yaptırmamızın nedeni farkı hesaplamak. Döngü içerisinde gezerken, dizinin o indexten bir sonraki indexe ait elemanından o indexe ait elemanı çıkararak farkı hesaplatıyoruz ve bunu oluşturduğumuz fark dizisinin o indexindeki elemanına set ediyoruz.

    Bunlar matematiksel hesaplamalarla alakalı konular. 

    Çeşitli algoritmalar geliştirerek, daha farklı yöntemler ile de yapabilirsiniz.

    Konu başlığınız olan sorununuz çözüldüğü için, lütfen Yanıt Olarak İşaretler misiniz?

    Çalışmalarınızda kolaylıklar dilerim.


    Code is Poetry

    24 Mayıs 2017 Çarşamba 22:32
    Moderatör
  • Çok teşekkürler.
    24 Mayıs 2017 Çarşamba 22:46
  • Çok teşekkürler.
    24 Mayıs 2017 Çarşamba 22:47