– Dizilere Giriş
DİZİLER
Bir dizi, aynı tipteki elemanların yanyana sıralanışı ile elde edilen bir bilgi kümesidir. Örneğin 10 bileşenli bir vektör için 10 basit tip değişken kullanılması gerekirken, 10×10 boyutlarındaki matris için 100 basit tip değişken kullanılması gerekmektedir. Bizim için gerekli olan, aynı tipte elemanlardan oluşan bir veri kümesini tek bir değişken ismi kullanarak , küme içindeki yeri ile erişilmesini sağlayacak veri yapısıdır. Diziler, kullanım amacına göre tek veya çok boyutlu olabilir. PASCAL programlama dilinde diziler, TYPE, VAR veya CONST tanım bloklarından birinde tanıtılır.
Dizilerin Tanıtılması
Bir dizinin tanımı değişik şekillerde yapılabilmektedir. Bunlar aşağıda kısaca özetlenmiştir.
1.Dizilerin Type Bloğunda Tanıtılması :Dizilerin type bloğunda tanıtılması işleminde örneğin; Tek boyutlu ve 30 elemanlı Endüstri Mühendisliği 1. Sınıf öğrencilerinin numaralarının programa tanıtımı:
TYPE Numara=ARRAY [1..30] of string[10];
VAR ogr:NUMARA;
şeklinde yapılabilir.Örneğe dikkat edilirse NUMARA adı verilen bir dizi TYPE tanım bloğunda tanıtılmış VAR tanım bloğunda ise bu dizinin OGR adı altında değişken tipte olduğu belirtilmiştir. Aynı şekilde tek boyutlu ve 30 elemanlı Endüstri Mühendisliği 1. Sınıf öğrencilerinin isimlerin programa tanıtımı ise:
TYPE Isimler=ARRAY [1..30] of String[25];
VAR OgrIsim:Isimler; şeklindedir.
– Tek Boyutlu Diziler
Tek Boyutlu Diziler
Tek boyutlu diziler aşağıda görülen genel formda ifade edilebilirler. Değişken = ARRAY [Başlangıç değeri..Bitiş Değeri] OF tip tanımı
Örnek 2: Aşağıda verilen program tek boyutlu bir dizinin elamanlarını sondan başa doğru tersine çevirmektedir.
uses crt;
type
range=1..10;
dizi=array[range] of integer;
var
vektor,tersvektor:dizi;
i:integer;
begin
for i:=1 to 10 do begin
write(‘vektorun ‘,i,’. elemanını giriniz =’);readln(vektor[i]);end;
for i:=1 to 10 do
tersvektor[10-i+1]:=vektor[i];
{veya for i:=10 downto 1 do
tersvektor[i]:=vektor[10-i+1]; }
for i:=1 to 10 do
writeln(tersvektor[i]);
end. Programın Çıktısı
– Çok Boyutlu Diziler
Örnek 6:
uses crt;
var
i, j, n: integer;
sirali, yer, dizi: array [1..10] of integer;
begin
write(‘dizinin eleman sayısını giriniz… : ‘);readln(n);
for i := 1 to n do begin
write(‘dizinin ‘, i, ‘. elemanını giriniz ‘);
readln(dizi[i]); end;
for i := 1 to n do yer[i]:=1;
for i := 1 to n-1 do
for j:= i+1 to n do
if dizi[i] > dizi[j] then
yer[i]:=yer[i]+1 else yer[j]:= yer[j]+1;
for i:= 1 to n do sirali[yer[i]]:=dizi[i];
write(‘sıralı diziniz…: ‘);
for i:= 1 to n do write(sirali[i]:6); readln;
end. Programın Çıktısı
Çok Boyutlu Diziler
İndisli değişkenler iki boyutlu olduğunda boyut durumu, köşeli parantez içinde eleman tanımları arasında virgül verilerek belirtilir.Örneğin;İki boyutlu ve 32 elemanlı B adı verilen indisli değişkenin programa tanıtımı;
Type DIZI:ARRAY[1..4,1..8] of Real;
Var B:DIZI; şeklinde yapılabilmektedir.