Dizileri kısaca birden fazla değer taşıyabilen değişkenler olarak tanımlayabiliriz. Diziler sıralı bellek hücreleri yapısıdır ve bu nedenle içlerinde birden fazla değer taşıyabilirler. Diziler programlama içerisinde çok önemli bir yere sahiptir. Örnek verelim: “bir öğretmen öğrencilerinin notlarını girip en yüksek ve en düşük notları öğrenmek istiyor” olsun. Sınıfta 3-4 öğrenci varsa bunu değişkenler ile yapabilir ancak sınıfta 50 öğrenci varsa bunun değişkenlerle yapması zor, meşakkatli ve gereksizdir.
Şimdi 3-4 kişilik bir sınıftaki öğrenci notlarını diziler kullanmadan ve 50 kişilik sınıfı da diziler yardımıyla inceleyelim.
Diziler Kullanmadan Veri İşlenmesi
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int not1,not2,not3;
printf("3 Ogrencinizin notunu girin -> ");
scanf("%d%d%d",¬1,¬2,¬3);
if (not1>not2 && not1>not3)
printf("En yuksek -> %d \n",not1);
if (not2>not1 && not2>not3)
printf("En yuksek -> %d \n",not2);
if (not3>not1 && not3>not1)
printf("En yuksek -> %d \n",not3);
system("PAUSE");
return 0;
}Yukarıda gördüğümüz gibi 3 öğrenci için bile zor olan şeyler yazdık, sıralama için uğraştık. Bunların hepsinin yüksek sayıda öğrenci için yapılması değişkenler yardımıyla zordur. Ayrıca sıralama için de farklı metotlar kullanmak gereklidir. Şimdi dizi nedir, nasıl kullanılır ve sıralama için ne kullanılır? sorularını sırasıyla çözümleyelim.
Dizi Nedir
Dizi, sıralı bellek hücrelerinden oluşan ve içinde ayni tipte birden fazla veri taşıyan yapıdır. veri tipi dizi_adi[boyut]; yukarıdaki kalıp kullanılarak bir dizi oluşturulabilir. Şimdi dizileri kullanarak 5 adet sayı girelim ve bu sayılara;
- Girilen sayıların toplamını bulalım
- Girilen sayıların ortalamasını bulalım
- Girilen sayıları büyükten küçüğe sıralayıp listeleyelim
Diziler ve Verilerin İşlenmesi
#include <stdio.h>
#include <stdlib.h>
void bubble_sort(int gd[],int gb);
void swap(int *,int *);
int main(void) {
int boyut=5;
int dizi[boyut];
int sayac;
/*Dizi nasil doldurulur? Asagida Buna bakalim*/
printf("Lutfen bes sayiyi giriniz => \n");
for(sayac=0;sayac<5;++sayac)
scanf("%d",&dizi[sayac]);
/*Dizideki elemanlar nasil toplanir? Inceleyelim*/
int toplam=0;for(sayac=0;sayac<5;++sayac)toplam+=dizi[sayac];
/*Dizi elemanlarinin ortalamasi nasil bulunur? Inceleyelim*/
double ortalama;
ortalama = toplam / boyut;
/*Ekrana toplam ve ortalama degerlerini yazdiralim*/
printf("Girilen sayilar toplami => %d \n",toplam);
printf("Girilen sayilar ortalama => %5.2f \n",ortalama);
/*Girilen sayileri SORT ederek listeleyelim*/
bubble_sort(dizi,boyut);
for (sayac=0; sayac<5;++sayac)
printf("%d. sayi %d 'dir. \n",sayac+1,dizi[sayac]);
system("PAUSE");
return 0;
}
void bubble_sort(int gd[],int gb) {
int i,j;
for (i=0;i<gb;i++)
for (j=i+1;j<gb;j++)
if(gd[i]<gd[j])
swap(&gd[i],&gd[j]);
}
void swap(int *x,int *y) {
int temp;
temp = *x;
*x=*y;
*y = temp;
}






