C# Foreach Döngüsü
C# Diziler Örnek Uygulamalar ve Sorular
 

Dizi içerisindeki değerlere erişmek

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

 

Ekleyen:admin

Adınız
:
Eposta
:



Resmi Degistir


ibrahim
26/04/2015 - 11:29

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.


 
1 Sayfada toplam 1 yorum mevcut