Veri depolama
Diyelim ki oyuncuların karmaşık ve dostça olmayan bir bilgisayar arayüzüne karşı yarıştığı "User Hostile" adlı bir bilgisayar oyunu geliştirdiniz. Şimdi bu oyunun beş yıllık periyotta aylık satışlarını takip eden bir program yazmanız gerekiyor. Ya da Hacker Hero Koleksiyon Kartlarının envanterini çıkarmanız gerektiğini varsayalım.
Çok yakında, bilgileri depolamak ve işlemek için basit temel veri türlerinden daha fazlasına ihtiyacınız olduğu sonucuna varacaksınız.
Diziler (listeler). Giriş
Büyük miktarda veri ile çalışmayı kolaylaştırmak için bir grup hücreye ortak bir ad verilir. Böyle bir hücre grubuna
dizi denir
Dizi – aynı türden, yan yana yerleştirilmiş ve ortak bir isme sahip bir grup hafıza hücresidir. Gruptaki her hücrenin benzersiz bir numarası vardır.
Dizilerle çalışırken üç görevi
nasıl çözeceğinizi öğrenmeniz gerekir:
X bir dizi için gerekli boyutta bellek ayırın
X istenen hücreye veri yaz
X hücreden veri oku
Pascal'da Diziler
Geleneksel olarak Pascal,
gibi statik diziler kullanır.
var a: tamsayı dizisi [1..10];
Bir dizinin sınırları sabitlerle ayarlanmalıdır ve programın çalışması sırasında dizinin boyutunu değiştiremezsiniz. Ancak, yalnızca bir tam sayıdan değil, aynı zamanda örneğin bir karakterden veya numaralandırılmış türden bir dizin oluşturabilirsiniz. Örneğin, her harfin tekrarını saymak için bir dizi kullanabilirsiniz
var LettersCount: tamsayı dizisi ['a'..'z'];
ve onunla dilediğiniz gibi çalışın:
HarfSayı['z'] := 1;
HarfSayı['d'] := HarfSayı['d'] + 1;
Bu tür dizilerin dezavantajları bilinmektedir: Kaç öğenin kullanılması gerektiği önceden bilinmiyorsa, dizi için maksimum bellek boyutu ayrılır. Sonuç olarak, çoğu durumda "gelecek için stok yaparız" ve bazen bu "rezerv" yetmediği ortaya çıkıyor. Bu tür dizilere statik denmesinin nedeni budur: boyutları statiktir ve program derleme aşamasında ayarlanmalıdır. Bununla birlikte, Pascal boyutu yalnızca ayarlanamayan, aynı zamanda programın akışı içinde değiştirilebilen dinamik diziler vardır. Daha ayrıntılı olarak ele alınacak olan, bu diziler ve bunları kullanmanın avantajlarıdır.
Bir dizi oluşturma
Bir dizi oluştururken, bellekte yer ayrılır (belirli sayıda hücre)
1) Diziler şunlar olabilir: öğeleri basitçe listeleyerek oluşturulur:
var a: tamsayı dizisi;
Uzunluğu Ayarla(a, 3);
a[0] := 1;
a[1] := 2;
a[2] := 3;
2) Diziler herhangi bir türden veriden oluşabilir - tamsayı veya gerçek sayılar, karakter dizileri
var a: char dizisi;
Uzunluğu Ayarla(a, 3);
a[0] := 'a';
a[1] := 'b';
a[2] := 'c';
3) Bir dizi her zaman "bilir" senin bedenin
uzunluk
işlevi, bir dizinin boyutunu belirlemek için kullanılır. Genellikle dizinin boyutu ayrı bir değişkende saklanır, böylece program farklı bir dizi boyutuyla çalışacak şekilde kolayca değiştirilebilir. Örnek:
N := 10; // N değişkeninde dizinin boyutunu saklıyoruz
Uzunluğu Ayarla(a, N); // diziyi ve N boyutunu ayarla
writeln(uzunluk(a)); // dizinin boyutunu göster
Bir dizinin boyutu klavyeden ayarlanabilir.