Arrays ca parametri

Parametrii subrutinelor pot fi variabile nu numai simple, dar și complexe, cum ar fi matrice, înregistrări, seturi. Pentru ilustrare, luați în considerare un exemplu cu matrice.







Sarcina. Există două matrice, câte două numere. Imprimați suma elementelor din fiecare matrice. Utilizați funcția sumă, singurul parametru al căruia este numele sirului care urmează să fie însumat.

TYPE vector = matrice [1..2] de Integer;

Suma FUNCȚIE (c: vector): Integer;

WriteLn (suma (a), '', suma (b)];

Începând să calculeze suma funcției (a). Pascal înlocuiește valorile elementelor de matrice a în celule pentru elementele de matrice c. Plecând de la calcularea sumei funcției (b). Pascal înlocuiește valorile elementelor din matricea b în celule pentru elementele matricei c.

În titlul funcției ar fi greșit să scriem

Suma funcției (c: matrice [1..2] de Integer): Integer.

A fost necesar să se determine mai întâi tipul matricei din secțiunea TIP. și apoi utilizați această definiție în descrierea a și b. și în antetul funcției. Aceasta este cerința sintaxei lui Pascal.







Valori parametru și parametri-Variabile

Multe proceduri nu doar desenează sau sună, ci și, ca și funcții, calculează ceva util. De exemplu, procedura B din următorul program mărește variabila globală x prin valoarea parametrului y.

PROCEDURA B (y: Integer);

Se imprimă numărul 1001.

Cu toate acestea, managerii de proiect nu le plac numele variabilelor globale în subrutine. Fie că nu este suficient - capul va veni în minte pentru a schimba un nume de variabilă, și ce apoi - pentru a rescrie toate subrutinele? Prin urmare, au venit cu așa-numitele parametri variabili. Iată același program cu utilizarea lor:

PROCEDURA B (y: Integer; var c: Integer);

Aici y este un parametru bine cunoscut de noi. Se numește parametru-valoare. La începutul executării subrutinei, parametrul de valoare este alocat unui loc în stivă și valoarea respectivului parametru actual (1) este trimisă acolo.

Întrebare: Are sens să scrie B (1, 1000). Răspuns: nu, deoarece subrutina nu va ști ce variabilă să atribuie rezultatul la 1001. Firește, Pascal va da un mesaj de eroare.

Lucrări pe tema "Proceduri și funcții"

Care este procedura? Ce este o funcție? Care este diferența lor?

Listați mai multe funcții și proceduri standard.







Articole similare

Trimiteți-le prietenilor: