C Dilinde Çok Boyutlu Dizi Kullanarak Not Ortalamasını Hesaplayan Program

Merhaba serefakyuz.com takipçileri Artık kod paylaşma zamanının geldiğini düşünerek C dilinde basit bir çok boyutlu dizi örneği yapmak istedim. Bildiğiniz gibi diziler birbiriyle ilişkili, aynı tip değişkenleri tutan yapılardır ve referans tipindedirler. Örnek programa geçmeden önce İki boyutlu dizileri de kısaca açıklamak istiyorum.


1. Vize
2. Vize
Final
Öğrenci1
dizi[0][0]
dizi[0][1]
dizi[0][2]
Öğrenci2
dizi[1][0]
dizi[1][1]
dizi[1][2]
Öğrenci3
dizi[2][0]
dizi[2][1]
dizi[2][2]
Öğrenci4
dizi[3][0]
dizi[3][1]
dizi[3][2]
Öğrenci5
dizi[4][0]
dizi[4][1]
dizi[4][2]

 

Yukarıdaki tabloyuiki boyutlu bir dizi gibi düşünebiliriz. dizi[5][3] dizisindeki köşeli parantezler arasındaki ilk değer satırları, ikinci değer ise sütunların boyutunu ifade etmektedir. Tabloyu, aşağıdaki örneğimize uyarlarsak, 5 öğrencinin 1.vize, 2. vize ve final notlarını tutan bir dizi olarak ifade edebiliriz. Şöyle ki;

  • dizi[0][0]: 1. öğrencinin 1. vize notu
  • dizi[0][1]: 1. öğrencinin 2. vize notu
  • dizi[0][2]: 1. öğrencinin final notu
  • dizi[0][0]: 1. öğrencinin 1. vize notu
  • dizi[1][0]: 2. öğrencinin 1. vize notu
  • dizi[2][0]: 3. öğrencinin 1. vize notu

Gördüğünüz gibi aradaki fark açıkça ortada. dizi[x][y] dizisindeki ‘x’ bölmesi öğrenci sayısını tutarken ‘y’ bölmesi sınav sayısını tutmaktadır.
Kısa bir özetten sonra şimdi programı açıklayabiliriz. Çok boyutlu dizilerde, dizi boyutu kadar iç içe for döngüsü kurulur. Programdaki ilk for döngüsü (7. satırdaki) öğrenci sayısını kontrol ederken, ikincisi ise (9. satırdaki) o öğrenciye ait 2 vize ve 1 final notunu kontrol etmektedir. İkinci for döngüsü içinde 2 vize , 1 final notunu aldım ve ortalamalarını hesapladıktan sonra, float türündeki ‘ogr_ort’ değişkenine atadım. 30 kişi için bu döngü devam etti. 21. satır ile içteki for döngüsü her bittiğinde, o öğrencinin ortalamasının, yine float türündeki ‘sinif_ort’ değişkenine eklenmesini sağladım. Böylece sınıfın genel ortalamasını da hesaplamış oldum

 

#include
void main()
{
int x,y;
float not[30][3];
float ogr_ort,sinif_ort=0;
for(x=0;x<30;x++)
{
for(y=0;y<3;y++)
{
if(y==0)
printf(“%d.Ogrencinin 1.Ders notunu giriniz:n”,x+1);
else if(y==1)
printf(“%d.Ogrencinin 2.Ders notunu giriniz:n”,x+1);
else if(y==2)
printf(“%d.Ogrencinin 3.Ders notunu giriniz:n”,x+1);
scanf(“%f”,¬[x][y]);
ogr_ort=(not[x][0]+not[x][1]+not[x][2])/3;
}
printf(“%d.ogrencinin ortalamasi=%fn”,(x+1),ogr_ort);
sinif_ort+=ogr_ort;
}
printf(“Sinif ortalamasi=%fn”,sinif_ort/30);
}

 

Çok boyutlu dizileri elimden geldiğince, parmaklarım klavyeye yettiğince anlatmaya çalıştım =). Umarım yararlı olmuştur. Anlaşılmayan, aklınıza yatmayan, ya da yatıramadığınız bir bölüm olursa bana ulaşabilirsiniz. Saat de geç olmuş :). Görüşmek üzere…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir