matrice deschise

Data adaugarii: 28/11/2014; Vizualizări: 165; piraterie

Dezavantajele studiate anterior metoda de transmisie cu matrice parametri sunt evidente: în primul rând, necesitatea de a descrie tipul de date stabilite de tipul de operatorul încalcă portabilitatea rutine reguli (rutine de acțiune devine dependentă de un operator extern), și în al doilea rând, pentru a identifica dimensiunea reală a matrice a trecut trebuie să utilizeze suplimentar valorile parametrilor, și în al treilea rând, în prelucrarea de matrice mai mici decât cele indicate în tipul declarație de dimensiune, memoria este pierdut ineficient. Într-o anumită măsură, a corecta aceste deficiențe permite utilizarea tablourilor deschise.

Metoda este adecvată numai pentru tablouri unidimensionale. Utilizați-l cu matrici poate interpreta dacă matricea ca vector (vezi. Cap. 17).

Disponibil în vectorii de program sunt descrise în secțiunea var, în mod obișnuit, fără a determina tipul de tip. Lista de parametrii formali ai parametrului vectorului subrutină este specificat fără intervalul de dimensiune:

Suma function (var x: array de real): real;

Într-o subrutină numesc parametrul matrice reală este înlocuită formal:

var a: array [1..5] real;

Întrebarea rămâne - cum să țină evidența rutine dimensiunea matrice care este trecut? Pentru a face acest lucru în Pascal există funcții standard de mică și mare. Singura lor opțiune este transferată la identificatorul de matrice, Low returnează cea mai mică valoare admisibilă a indicelui și de mare - cea mai mare. Dacă A - dimensional matrice valori scăzut (A) și de mare (A) poate fi utilizat direct ca o limită pentru un ciclu:

Suma function (var x: array de real): real;

i var: cuvânt; s: real;

pentru i: = Low (x) la înaltă (x) Do s: = s + x [I];

Pentru a finaliza exemplul, apelați funcția suma scrisă:

const a: array [1..5] real = (1,2,3,4,5.5);

De obicei, numărul primului element de matrice deschisă este egal cu zero, cu toate acestea, este mai sigur încă specifica scăzut. Aici este un program de exemplu, care include o subrutină matrici deschise ca parametri.

Găsiți numărul de elemente ale vectorului x [7], care se încadrează în intervalul [0, 3], precum și numărul de elemente ale vectorului y [5], care se încadrează în intervalul [-1, 1].

Pentru a intra în matrice de la procedura de scriere tastatura de intrare, care încă mai trebuie să transmită parametrul dimensiune array (deoarece sunt introduse doi vectori de diferite dimensiuni). Prin urmare, în intrare utilizat faptul că implicit numerotarea elementelor de matrice deschise se realizează în zero. Funcția Kol, calculează numărul de elemente ale unui tablou deschis, care se încadrează în intervalul [x1, x2], indicație destul de standard de mică și mare:

articole similare