Diziler C programlama dilinin en önemli kısımlarından biridir.Değişkenleri daha düzenli bir şekilde kullanmamızı sağlarlar.Matris matematiği ve birçok oyununda temelini oluştururlar.Peki dizilere neden ihtiyaç duyulur?
Bu soruya cevap vermek için aşağıdaki kodumuzu değerlendireceğiz.
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
int main()
{
int sayi,i,n,toplam=0;
printf(“Kac sayi toplayacaksiniz:”);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{
scanf(“%d”,sayi);
toplam=toplam+sayi;
}
printf(“Toplam=%d”,toplam);
}
Bu kod parçasını çalıştırdığımızda istenilen kadar sayıyı toplayabilir ve sonucu ekrana yazdırabiliriz.Ancak burada tek bir değişken kullanılmıştır ve kullanıcı her yeni sayı girdiğinde bu değişkenin değeri değiştirilmektedir.Doğal olarak program kullanıcının girdiği sayıları hafızasında tutamaz sadece toplam değişkenine ekleyerek toplamlarını bulabilir.Peki eğer girilen sayıları da hafızada tutmak istersek ne yapmamız gerekir?
İşte bu noktada imdadımıza diziler yetişiyor.Diziler ile belli bir dizi değeri hafızada tutabilir ve bu değerleri tekrar tekrar kullanabiliriz.
Dizilerin tanımlanması değişken tanımlanmasına çok benzer.Tek fark değişken adından sonra [ ](köşeli parantez) konulmasıdır.Örnek bir dizi tanımlaması:
int liste[5];
Burada girilen 5 sayısı dizinin eleman sayısını belirtirki dizilerin eleman sayısı önceden belli olmak zorundadır.Ancak eleman sayıları program esnasında döngü
vb. aracılığıyla değiştirilebilir.Dilersek dizinin boyutunu kullanıcıdan alarak bir değişkeni dizinin eleman sayısı da yapabiliriz.Örneğin int liste[n].Burada n bir değişkendir ve eğer bu değişken değerini kullanıcıdan aldığımız bir sayı ile değiştirirsek dizinin boyutunu kullanıcı belirlemiş olacaktır.Şimdi biraz önce diziler olmadan yaptığımız toplama programını diziler yoluyla yapalım ve aradaki farkı görelim.
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
int main()
{
int n,i,toplam=0;
printf(“Kac sayi toplayacaksiniz:”);
scanf(“%d”,&n);
int liste[n];
for(i=0;i
{
scanf(“%d”,liste[i]);
toplam=toplam+liste[i];
}
for(i=0;i
{
printf(“%dn”,liste[i]);
}
}
Bu kod parçası çalıştırılırsa ilk örnekteki toplama işleminin aynısı yapılacaktır ve sonuç farklı olmayacaktır.Ancak önceki örnekten farklı olarak program girilen sayılarıda hafızasında tutabilecektir çünkü sayılar ayrı ayrı değişkenlerde tutulmaktadır.Burada anlaşılması gereken nokta dizilerin amacının değişkenleri bir isimde gruplaştırmak olduğudur.Bu örnekte belli bir sayı topluluğu ayrı ayrı değişkenler tutulmuştur.Bu değerler değiştirilmedikçe kaybolmaz.Bu sayede 2.örneğimizin sonunda girilen sayıları da yazdırma imkanı bulduk.
İki boyutlu diziler
İki boyutlu diziler bir çok oyunun ve matris matematiğinin temelini oluştururlar.İki boyutlu dizilerinde tanımlanması tek boyutlu dizilerin tanımlanmasına benzerdir ve şu şekilde tanımlanır:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
int dizi[satir][sutun];
Tanımlamada da belirtildiği gibi birinci kısım satır sayısını ikinci kısım ise sütun sayısını belirtir.
int dizi[5][5]; şeklinde tanımlanan bir dizi şu şekildedir:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
0 1 2 3 4
0
1
2
3
4
yani 5×5 bir matris şeklinde elemanlar tanımlanır herbir kesişen satır ve sütunda bir değer bulunur.Örneğin dizi[3][4]=45 ise dizinin [3][4] elemanı 45 değerine sahiptir.
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
int main()
{
int i,j;
int liste[5][5];
for(i=0;i
{
for(j=0;j
scanf(“%d”,liste[i][j]);
}
for(i=0;i
{
for(j=0;j
printf(“%d ”,liste[i][j]);
printf(“n”);
}
}
Bu program ise iki boyutlu diziye kullanıcının girdiği değerleri tek tek kayıt eder ve ardından bu değerleri matris şeklinde yazdırır.