Çoğu zaman, herhangi bir bilgiyle çalışırken tablo verileriyle uğraşmak zorunda kalırsınız. Modern programlar genellikle bu tür verilerle çalışır. En basit örnek, oyunları damalı bir tahta üzerinde programlamaktır: tic-tac-toe, satranç, dama vb.
Bir matris aynı türdeki öğelerden (sayılar, dizeler, vb.) oluşan dikdörtgen bir tablodur .)< /div>
Pascal'daki bu tür veriler iki boyutlu diziler - "dizi dizileri" olarak saklanabilir ve işlenebilir.
Tablodaki verileri işlemek için her hücrenin (hücrenin) durumunu hatırlamak gerekir. Her hücrenin iki numarası vardır: bir satır numarası ve bir sütun numarası.
Matriste her elemanın iki indeksi vardır: önce satır numarası, sonra sütun numarası belirtilir. Satır ve sütunların numaralandırılması sıfırdan başlar.
Örneğin A[1][2] elemanı ikinci satırda ve üçüncü sütunda yer alan elemandır.
Sıradan dizilerde (listelerde) olduğu gibi, matrislerle çalışmak için onları nasıl oluşturacağınızı, gireceğinizi, işleyeceğinizi ve görüntüleyeceğinizi öğrenmeniz gerekir.
Matris oluşturma
Görev
Belirtilen boyutta sıfırlarla dolu bir matris oluşturun.
Doğru bir matris oluşturmak için, derleyiciyi bellekteki tüm dizeleri farklı nesneler olarak oluşturmaya zorlamanız gerekir.
Bunu yapmak için önce boş bir dizi oluşturmanız, ardından matristeki satır sayısını belirtmeniz ve ardından bir döngüde
setLength()
yöntemini kullanarak her satırdaki öğe sayısını belirtmeniz gerekir:
N := 3
M := 2
Uzunluğu ayarla(A, N);
i için := 0 - N - 1 yap
setLength(A[i], M);
Bir matrisi keyfi değerlerle doldurma
Bir matris oluşturduktan sonra, onu rasgele değerlerle doldurabilirsiniz. Her elemanın iki indeksi olduğu için iç içe döngüler kullanmak gerekir.
i için := 0'dan N'ye başlar
j için := 0'dan M'ye başlar
A[i][j] := ...
son;
son;
Matrisi görüntüleme
Listeyi işlemek ve görüntülemek için genellikle iç içe geçmiş iki döngü kullanılır. Birinci döngü satır numarasına göre, ikinci döngü ise satırın içindeki elemanlara göre.
Matrisi satır satır, sayıları bir satır içinde boşluklarla ayırarak görüntülemek için şu parçayı yazmanız gerekir:
for i := 0 - uzunluk(A) - 1 başlar // uzunluk(A) - A matrisindeki satır sayısını döndürür
for j := 0 - uzunluk(A[i]) - 1 do // uzunluk(A[i]) - i dizisindeki öğelerin sayısını döndürür
yaz(a[i][j], ' ');
writeln(); // satır görüntülendikten sonra yeni bir satır yapın
son;
Aynı, ancak dizine göre değil, liste değerlerine göre döngü yapar (for döngüsü, listedeki (dizi), dizedeki tüm öğeler üzerinde yinelenebilir):
for line in a do başla // a matrisinin tüm satırları üzerinde yinele
sıradaki elemanlar için sıradaki tüm elemanlar arasında do // döngü yapın
yaz(öğe, ' ');
writeln();
bitiş;