Arrays of arrays. Matricea.
Arrays sunt cele mai frecvent utilizate tipuri structurate în sistemul de programare Delphi. Ei au un număr de proprietăți care le permit să fie folosite pentru a stoca și procesa cantități semnificative de informații diverse. Această lecție este dedicată studiului suplimentar al tipului de date ARRAY.
Până în prezent, ați folosit tipul ARRAY numai pentru stocarea și prelucrarea rețelelor liniare de informații. În acest caz, matricea poate fi reprezentată ca o tabelă liniară care conține același tip de informație. De exemplu, matricea a este declarată. array [1..9] de Integer. care este deja completat (definit). Acesta poate fi reprezentat după cum urmează:
În acest caz, pentru a accesa elementul matricei, trebuie să specificați numele acestui matrice cu elementul index în paranteze pătrate. De exemplu: a [4].
Pentru această matrice, tipul de bază este un tip standard, simplu, întreg. Prin urmare, conținutul fiecărei celule din matrice este un număr întreg. Dar tipul de bază pentru matrice poate fi aproape orice tip, inclusiv tipul de matrice propriu-zis. Adică, în Delphi se poate declara o variabilă cu următoarea formă:
Var a: matricea [1..3] a matricei [1..4] de Integer;
Tip mas = matrice [1..4] de Integer;
Var a: matrice [1..3] de mas;
Matricea de rețele declarate în acest mod poate fi reprezentată după cum urmează:
În acest caz, elementele matricei (tipul de bază) sunt, de asemenea, o matrice. Ca rezultat, avem 3 celule pentru stocarea unor rețele întregi sau doar 12 celule pentru stocarea informațiilor întregi. Pentru a accesa un element dintr-o astfel de matrice, trebuie să specificați indexul de două ori. De exemplu, o celulă marcată cu o cruce este menționată în acest caz, după cum urmează: a [2] [3].
Tipul c1 = matrice [1..5] de Integer;
c2 = matrice [1..4] din c1;
c3 = matrice [1..5] de c2;
c4 = matrice [1..10] de c3;
Pentru a accesa elementul array mas, trebuie să specificați patru indici de elemente după numele matricei: a [2] [3] [5] [1].
Var matr. array [1..3,1..5] de Integer;
Astfel, am declarat o matrice bidimensională, care poate fi reprezentată în felul următor:
Pentru a face referire la elementul matricei marcate cu o cruce, după schimbarea numelui matricei, specificați doi indici separați prin virgule într-un paranteze pătrate: matr [2..4].
În acest fel, puteți descrie și mai multe matrice complexe. De exemplu, o matrice 5-dimensională poate fi declarată după cum urmează:
Var ex: matrice [1..10.1..10,1..5,1..15,1..4] din Real;
Referindu-ne la elementul acestei matrice, este necesar să specificăm cinci indici: ex [1,1,1,1,1].
De interes deosebit sunt matricele bidimensionale, numite și mese pătrată și dreptunghiulară. În literatura științifică, ele sunt adesea numite matrici, în timp ce elementele matricelor sunt reprezentate de doi indici. Cum se face acest lucru, este văzută în exemplul următoarelor matrici.
Primul indice este numărul liniei, al doilea este numărul coloanei; a13 este citit "dar unul trei" și nu "treisprezece". În programele de pe Delphi, se construiește un [1,3], respectiv.
Se spune că matricea cu rânduri m și coloane n are dimensiunea m x n ("m până la n"). Dacă m = n, atunci matricea este considerată drept pătrată.
Pentru o matrice pătrată, elementele cu aceleași indicii pentru rânduri și coloane formează diagonala principală a matricei. Pentru matricea reprezentată mai sus, elementele a11, a12, a33. Diagonala opusă se numește diagonală secundară. Acesta include elementele a13, a22, a31.
Cum să lucrați cu matrice
Pentru prelucrarea matricelor, este foarte convenabil să se utilizeze bucle imbricate cu un parametru. Fragmentul programului descris mai jos este destinat să umple o matrice de numere întregi de 4 x 5 utilizând componenta T StringGrid.
Acțiune de asignare acceptabilă
În sistemul de programare Delphi, array-urile array pot fi atribuite acelorași matrice pentru aceleași matrice. De exemplu, dacă două rețele sunt descrise după cum urmează:
Var A. B. matrice [1..50,1..60] de Real;
atunci este valabilă următoarea operație de atribuire: A: = B;
Având o matrice de numere reale de 3x5. Calculați suma elementelor matricei.