Selalunya, apabila bekerja dengan sebarang maklumat, anda perlu berurusan dengan data jadual. Program moden selalunya berfungsi dengan data sedemikian. Contoh paling mudah ialah permainan pengaturcaraan pada papan berkotak-kotak: tic-tac-toe, catur, dam, dsb.
Matriks ialah jadual segi empat tepat yang terdiri daripada unsur-unsur jenis yang sama (nombor, rentetan, dsb. .)< /div>
Data sedemikian dalam Pascal boleh disimpan dan diproses sebagai tatasusunan dua dimensi - "tatasusunan tatasusunan".
Untuk memproses data dalam jadual, adalah perlu untuk mengingati keadaan setiap sel (sel). Setiap sel mempunyai dua nombor: nombor baris dan nombor lajur.
Dalam matriks, setiap elemen mempunyai dua indeks: pertama nombor baris ditunjukkan, kemudian nombor lajur. Penomboran baris dan lajur bermula dari sifar.
Sebagai contoh, elemen A[1][2] ialah elemen yang terletak di baris kedua dan lajur ketiga.
Sama seperti tatasusunan biasa (senarai), untuk berfungsi dengan matriks, anda perlu belajar cara mencipta, memasukkan, memproses dan memaparkannya.
Penciptaan matriks
Tugas
Buat dalam ingatan matriks saiz yang diberikan diisi dengan sifar.
Untuk mencipta matriks dengan betul, anda perlu memaksa pengkompil untuk mencipta semua rentetan dalam ingatan sebagai objek berbeza.
Untuk melakukan ini, anda mesti mencipta tatasusunan kosong dahulu, kemudian nyatakan bilangan baris dalam matriks, dan kemudian nyatakan bilangan elemen dalam setiap baris menggunakan kaedah
setLength()
dalam gelung:
N := 3
M := 2
setLength(A, N);
untuk i := 0 hingga N - 1 lakukan
setLength(A[i], M);
Mengisi matriks dengan nilai arbitrari
Selepas mencipta matriks, anda boleh mengisinya dengan nilai sewenang-wenangnya. Oleh kerana setiap elemen mempunyai dua indeks, adalah perlu untuk menggunakan gelung bersarang
untuk i := 0 hingga N bermula
untuk j := 0 hingga M bermula
A[i][j] := ...
akhir;
akhir;
Memaparkan matriks
Dua gelung bersarang biasanya digunakan untuk memproses dan memaparkan senarai. Kitaran pertama adalah dengan nombor baris, kitaran kedua adalah dengan unsur-unsur di dalam garisan.
Untuk memaparkan matriks baris demi baris, memisahkan nombor dengan ruang dalam satu baris, anda perlu menulis serpihan berikut:
for i := 0 to length(A) - 1 do begin // length(A) - mengembalikan bilangan baris dalam matriks A
for j := 0 to length(A[i]) - 1 do // length(A[i]) - mengembalikan bilangan elemen dalam rentetan i
tulis(a[i][j], ' ');
writeln(); // lakukan baris baharu selepas baris dipaparkan
akhir;
Sama, tetapi kitaran bukan mengikut indeks, tetapi mengikut nilai senarai (gelung for boleh berulang ke atas semua elemen dalam senarai (tatasusunan), rentetan):
untuk baris dalam a mulakan // lelaran ke atas semua baris matriks a
untuk elem dalam baris lakukan // gelung melalui semua elemen dalam baris
tulis(elemen, ' ');
writeln();
tamat;