Bir dizi içerisindeki değerlere erişmek için erişilmek istenilen değere ait inkdeks numarası kullanılır. Index numarası dizi tanımlanırken 0 dan başlayıp eleman sayısının bir eksiğine kadar devam eden ardışık sayılardır.
Kullanım Şekli :
diziadi [indexnumarası]
Örnek 1: Bir dizinin belirtilen index numarasına ait değeri yazdırma
int[] sayilar={10,8,12,6,90} Console.WriteLine(sayilar[0]); // sayilar dizisinin ilk elemanı olan 10 u ekrana yazar Console.WriteLine(sayilar[1]); // sayilar dizisinin ikinci elemanı olan 8 i ekrana yazar Console.WriteLine(sayilar[4]); // sayilar dizisinin son elemanı olan 90 ı ekrana yazar Console.ReadKey();
Ekran Çıktısı : ,
10 8 90
Örnek 2: Bir dizinin belirtilen index numarasına ait değerleri toplama
int[] sayilar={10,8,12,6,90} int toplam=sayilar[0] + sayilar [1]; //dizinin ilk iki elemanını topla Console.WriteLine(toplam); // toplam değerini ekrana yaz Console.ReadKey();
Ekran Çıktısı : ,
10 8 90
Döngü Kullanarak Dizi Değerlerine Erişmek
Eğer dizi içerisindeki değerlerin tamamına erişilecekse döngülerden faydalanılabilir. Bir dizi içerisindeki değerleri ekrana yazdırmak için foreach ve for döngüsü örnekleri aşağıdaki gibidir.
Örnek 3: For döngüsü ile dizi içerisindeki değerleri ekrana alt alta yazdırma
int[] sayilar={10,8,12,6,90} for(int i=0;i<5;i++) Console.WriteLine(sayilar[i]); Console.ReadKey();
Örnekde görüldüğü gibi döngü sayacı olarak kullanılan i değişkeni 0 dan başlayarak 5 e kadar 0 ,1,2,3,4 değerlerini alacaktır. Bu değerler dizide indeks numarası olarak kullanıldığında dizinin herbir değerine erişilmiş olur. Bu değerler üzerinde istenilen işlemler yapılabilir.
Ekran Çıktısı : ,
10 8 12 6 90
Örnek 4: Foreach döngüsü ile dizi içerisindeki değerleri ekrana alt alta yazdırma
int[] sayilar={10,8,12,6,90} foreach(int sayi in sayilar) Console.WriteLine(sayi); Console.ReadKey();
foreach dögüsü dizi nin herbir elemanı için tekrar eder ve bu tekrar sırasında dizinin değerleri sırasıyla sayi değişkenine atanır. Atanan bu değer üzerinde gerekli işlemler yapılabilir. Örnekte sayi değişkeni ile yapılan tek işlem değerini ekrana yazdırmakdır.
Ekran Çıktısı : ,
10 8 12 6 90
Only assignment, call, increment, decrement, and new object expressions can be used as a statement
int teksayi = 0, ciftsayi = 0;
int tektoplam = 0, cifttoplam = 0;
double tekort = 0, ciftort = 0;
int fark = 0;
int n = 0;
Console.Write("Dizi Kaç Elemanlı Olsun..: ");
n = System.Convert.ToInt16(Console.ReadLine());
int[] dizi = new int[n];
for (int i = 1; i < dizi.Length; i++) {
Console.Write("Dizinin " + i + " . elemanı.:");
dizi[i] = System.Convert.ToInt16(Console.ReadLine());
}
for (int i = 1; i < dizi.Length; i++) {
if (dizi[i] % 2 == 0) {
ciftsayi = ciftsayi + 1;
cifttoplam = cifttoplam + dizi[i];
} else {
teksayi = teksayi + 1;
tektoplam = tektoplam + dizi[i];
}
}
tekort = tektoplam / teksayi;
ciftort = cifttoplam / ciftsayi;
fark = tektoplam;
cifttoplam;
Console.WriteLine("Tek Sayıların Toplamları.: " + tektoplam);
Console.WriteLine("Tek Sayıların Adedi.:" + teksayi);
Console.WriteLine("Tek Sayıların Ortalaması : " + tekort);
Console.WriteLine("Çift Sayıların Toplamları: " + cifttoplam);
Console.WriteLine("Çift Sayıların Adedi.: " + ciftsayi);
Console.WriteLine("Çift Sayıların Ortalaması :" + ciftort);
Console.WriteLine("Teklerin Çiftlerden Farkı :" + fark);
Console.ReadLine();
şu programı düzeltebilirmisin ?? uğraşıyorum uğraşıyorum olmuyor.
admin:
Merhaba;
Programın doğru görünüyor bassit hatalar var
fark hesabı yaparken gözden kaçan bir hata olmuş. Yukarıda koyu olarak belirttiğim satırları fark = tektoplam-cifttoplam; şeklinde değiştirirssen kodun calıscaktır. Ancak mantıksal hatalar da var dizilerde döngü sayacını 1 den başlattığın için eleman sayısında tutarsızlık olacaktır. Bunlarıda 0 dan başlatarak düzeltebiliriz.