Merhaba arkadaşlar, bu gün ki makalem de çok boyutlu dizilere değineceğim.
Bir önceki makalem de diziler ile ilgili örnek yapmıştık. Eğer onu okumadıysanız öncelikle onu okumanızı tavsiye ederim.
Çok boyutlu diziler, çok boyutlu bilgileri ve tablo bilgilerini saklamak için kullanılır.
Bu tür diziler bu şekilde tanımlanır ;
int matris[3][4] ;
Burada ilk olarak yine dizinin tipini belirtiyoruz (int, float, double, char vb). Sonra dizinin adını ve son olarak dizinin boyutunu belirtiyoruz.
Tek boyutlu dizilerden farklı olarak burada dizi boyutu belirtilirken satır ve sütün boyutunu ifaden eden iki farklı boyut bilgisi belirtiriz.
İlk belirtilen boyut satır sayısını, ikinci boyut ise sütün sayısını belirtir.
İstediğimiz boyut sayısı kadar dizi tanımlaya biliriz.
#include <stdio.h> int main() { int matris[3][4] = {3, 5, 0, 1, 8, 12, 9, 125, 0, 2, 4, 6}; int i, j; for(i=0; i<3; i++) { //for döngü bloğunun i için başlangıcı for(j=0; j<4; j++) {//for döngü bloğunun j için başlangıcı printf("%4d ", matris[i][j]); }//for döngü bloğunun j için sonu printf("\n"); }//for döngü bloğunun i için sonu return 0; }
Yukarıda ki örneği inceleyecek olursak;
Amacımız tanımladığımız ve default olarak değer atadığımız iki boyutlu diziyi ekranda göstermektir.
Bunun için ilk olarak matris adında dizi ve Döngüler de kullanacağımız i ve j değişkenlerini tanımlıyoruz.
İki boyutlu bir diziyi ekranda göstermek istediğimiz zaman, iç içe iki for döngüsü kullanmamız gerekir.
İlk for döngüsü ile satırların ikinci for döngüsü ile de sütünların kontrolü yapılır.
Burada iç içe döngülerin çalışma mantığına değinmek istiyorum. İlk döngü de kullanılan i değişkeninin bir değerine karşılık, içeride kullanılan döngü j değerinin bütün değerleri kadar döner. Ve sonra içerideki döngü den çıkılır ve i değeri bir artırılarak tekrardan ikinci döngüye girilir. Bu işlem i değeri döngü koşulunu sağladığı müddetçe devam eder.
Kod da kullanılan ikinci for döngüsü içinde yer alan printf fonksiyonu sayesinde matris dizisinin değerleri ekrana basılır.
Bir makalenin daha sonuna geldik, esenle kalın..