NİŞANTAŞI ÜNİVERSİTESİ Algoritma ve Programlama Diziler NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr
NİŞANTAŞI ÜNİVERSİTESİ © Diziler C dilinde dizi (array), aynı türden bir ya da daha fazla nesnenin bellekte bir dizi veri yapısı biçiminde tutulmasını garanti eden araçtır. C’de bir dizinin tanımlanmasıyla birden fazla sayıda nesne tek bir deyimle tanımlanabilir.10 elemana sahip bir dizi tanımlamak yerine, şüphesiz isimleri farklı 10 ayrı nesne de tanımlanabilir. Ama 10 ayrı nesne tanımlandığında bu nesnelerin bellekte ardışıl olarak yerleşmeleri garanti altına alınmış bir özellik değildir. Oysa dizi tanımlamasında, dizinin elemanı olan bütün nesnelerin bellekte ardışıl olarak yer almaları garanti altına alınmış bir özelliktir. Dizi de bir veri türü olduğuna göre dizilerin de kullanılmalarından önce tanımlanmaları gerekir. NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © Diziler Dizilerin Tanımlanması Dizi tanımlamalarının genel biçimi: <tür> <dizi ismi> [<eleman sayısı>]; Yukaridaki gösterimde köşeli parantez eleman sayısının seçimlik olduğunu değil, eleman sayısı bilgisinin köşeli parantez içine yazılması gerektiğini göstermektedir. tür : Dizi elemanlarının türünü gösteren anahtar sözcüktür. dizi ismi : İsimlendirme kurallarına uygun olarak verilecek herhangi bir isimdir. eleman sayısı : Dizinin kaç elemana sahip olduğunu gösterir. NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © Diziler NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © Diziler int a[5]; gibi bir dizi tanımlaması yapıldığını düşünelim. Windows işletim sisteminde çalışılıyorsa derleyici a dizisi için bellekte 4 * 5 = 20 byte yer ayıracaktır. Bellekte bu dizinin yerleşimi aşağıdaki gibi olacaktır : NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © Çok boyutlu diziler Çok boyutlu dizilerin tanımlanması Günümüzde oldukça yaygın olan C yazım kurallarına göre ( C-syntax) bir matris aşağıdaki şekilde tanımlanabilir: int a[3][3]; Yukarıdaki bu satırı, C/C++ programlama dilinde yazarsak hafızada bizim için 3×3 boyutlarında (3’e 3’lük) bir matris için yer açar (yani toplamda 9 hücreli ve 9 farklı sayı tutmaya yarayan bir yer) ve bu matrisin ismini a olarak tanımlar. NİŞANTAŞI ÜNİVERSİTESİ ©
NİŞANTAŞI ÜNİVERSİTESİ © kaynaklar Brian W. Kernighan , Dennis M. Ritchie, (1988), C Programlama Dili – ANSI C, DAISYSCIENCE, Editor: Dr. Rifat Çölkesen . Necati Ergin, C Ders Notları, C ve Sistem Programcıları Derneği NİŞANTAŞI ÜNİVERSİTESİ ©