Bu Blogda Ara

27 Haziran 2014 Cuma

Diziler

  Diziler aynı tipte verilere tek bir isimle erişmek için kullanılır. Bellek içerisinde peş peşe sıralanırlar. Önceki örneklerde char isim[10] şeklinde isim değişkeni tanımlamıştık. Bu aslında bir dizi tanımıdır. Yaptığımız şey 10 elemandan oluşan bir karakter (char) dizisi oluşturmaktı. Buna örneğin ahmet kelimesini atadığımızda bu {a,h,m,e,t} şeklinde saklanır.


    Dizilerin ilk terimi her zaman sıfırıncı terimdir ve bu indis "[ ]" içinde gösterilir. Yukarıdaki örnekte:
isim[0]=a,   // sıfırıncı terim
isim[1]=h,   // birinci terim
isim[2]=m,   // ikinci terim
isim[3]=e,   // üçüncü terim
isim[4]=t,   // dördüncü terim

                                               DİZİLERİN TANIMLANMASI    


Dizi Tipi                                   Genel bildirimi                                                                   Örnek
Tek boyutlu diziler          tip ad[eleman_sayısı]                                                             int veri[10];
İki boyutlu diziler           tip ad[satir_say][sutun_say]                                                 float mat[5][4];
Çok boyutlu diziler        tip ad[boyut_1][boyut_2][boyut_3]...[ boyut_n]               double x[2][4][2];
 
                         

                                                DİZİLERİN TANIMLANMASI  

    Dizilerde tanımlama küme parantezleriyle yapılır. Önce dizi tipi, sonra dizi adı, dizinin kapasitesi ve elemanları yazılır.
  
                                                        int sayilar[3]={1,2,3} 
   
    Sadece 3 eleman olduğunda elle yazmak kolay.Peki ya 100 eleman olsaydı ve kullanıcıdan girmesini istememiz gerekseydi? Böyle durumlarda döngüler yardımımıza koşar. Aşağıdaki program 10 öğrenciden oluşan bir sınıfın not ortalamasını hesaplıyor.

  Önce 10 elemandan oluşan notlar isminde bir int dizisi açtık. Döngüyle diziyi dolduracağımızdan bir de indis değişkeni lazım. Ortalama hesabı için de toplam ve ortalama değişkenleri var. Bu ikisi float olarak tanımlanırsa daha detaylı ve doğru bir sonuç alınabilir ben olabildiğince basit tutmaya çalıştım.
  10 elemanımız olduğu için döngümüz 0,1,2....,9 elemanlarını kapsamalı çünkü diziler 0'dan başlar. Scanf içinde notlar'ı alırken köşeli parantez içindeki indis bilgisinin öncekiler gibi sabit olmadığına, bir değişkene bağlı olduğuna dikkat edin. Bu sayece tek bir scanf ile tekrar tekrar bir sonraki elemanı alarak ilerliyoruz.
  Toplam kısmındaysa aynı sayi=sayi+1 'de olduğu gibi bir mantık var. Nasıl orda sürekli 1 ekliyorsak burada da sürekli notları ekliyoruz sırayla. İlk toplam değerimiz sıfır. İlk döngüde (not olarak atıyorum 30 girilmiş olsun) 0+30 bizim yeni toplam değerimiz olacak. İkinci döngüde 50 girilmişse 30+50'den yeni toplam değeri 80 olmuş olacak ve bu şekilde 10 sayıyı da toplamış oluyoruz.
  Ortalama hesabının döngü dışında olduğuna dikkat edin. Eğer döngü içerisinde olsaydı bize 10 defa ortalama hesaplayacaktı şimdi ise bütün sayılar toplandıktan sonra ortalamayı hesaplıyoruz.
  
 

Hiç yorum yok:

Yorum Gönder