Bazele delphi

Parametrii de proceduri și funcții
Parametrii utilizate pentru a transmite datele originale la subrutina și pentru primirea rezultatelor acestor rutine.

Datele de referinta sunt transmise la subrutina prin intermediul parametrilor de intrare și rezultatele subrutina se întoarce prin parametrii de ieșire. Parametrii pot fi de intrare și de ieșire simultan.

Parametrii de intrare sunt declarate folosind const cuvinte cheie; valorile lor nu pot fi modificate în cadrul subrutina:

Min funcționa (const A, B: Integer): Integer;
începe
dacă A altfel Rezultat: = B;
se încheie;

Stabilirea valorilor parametrilor de ieșire în subrutina conduce pentru a instala valori variabile ca argumente:

var
W, H: Integer;
începe
GetScreenResolution (W, H);
.
se încheie;

După variabilele GetScreenResolution procedura de apel W și H vor conține valori care au fost atribuite parametrii formali de lățime și înălțime, respectiv.

Dacă parametrul este atât o intrare și o ieșire, acesta este descris cu cuvântul cheie var:

Procedura de schimb (var A, B: Integer);
var
C: Integer;
începe
C: = A;
A: = B;
B: = C;
se încheie;

Modificarea valorilor parametrilor în var-subrutina conduce la o modificare a valorilor variabilelor folosite ca argumente:

Când apelați o subrutină în loc străzile și var-parametri pot fi substituite numai variabile, dar nu constantă sau expresie.

În cazul în care descrierea parametrului nu este specificat, nici unul dintre const cuvinte cheie, afară, sau var, atunci opțiunea este considerată a fi o intrare, acesta poate fi schimbat, dar modificările nu afectează argumentul real, deoarece acestea sunt realizate cu o copie a argumentului, creat pe durata rutinei. Atunci când o subrutină este numit în locul acestui parametru, puteți utiliza constante și expresii. EXEMPLU subrutină:

funcției NumberOfSetBits (A: Cardinal): Byte;
începe
Rezultat: = 0;
în timp ce un <> 0 do
începe
Rezultat: = Rezultat + (A mod 2);
A: A = div 2;
se încheie;
se încheie;

Parametrul A în funcția de mai sus este de intrare, dar este folosit ca variabilă locală pentru stocarea datelor intermediare.

Diferite metode de parametri de transmisie (const, afară, var fără ele) pot fi combinate într-un singur subrutină. Următoarea procedură completă exemplu medie ia patru parametri. Primele două (X și Y) sunt introduse și sunt utilizate pentru a transmite datele inițiale. Ultimii doi parametri sunt ieșiri și utilizate pentru recepția în programul apelant rezultatele de calcul al valorii medii (M) și valorile mediei geometrice (P) de X și Y:

Procedura mediu (const X, Y: Double; out M, P: Double);
începe
M: = (X + Y) / 2;
P: = sqrt (X * Y);
se încheie;

începe
Mediu (10, 20, M, P);
Writeln ( 'aritmetică =', M);
Writeln ( 'Media geometrică =', P);
Writeln ( 'Apăsați Enter pentru a ieși.');
readln;
end.

Există o varietate de opțiuni, fără tip. Acestea sunt numite netipizat și sunt proiectate pentru a transmite și primi date de orice tip. Parametrii sunt descriși cu fără tipuri de cuvinte cheie const și var, cu tipul de date este omis:

Procedura JustProc (const X; var Y; Z out);

In interiorul tipul subrutina de astfel de parametri nu este cunoscută, astfel încât programatorul trebuie să aibă grijă de interpretarea corectă a datelor transmise. Rețineți că puteți înlocui doar variabile atunci când apelarea rutine în locul parametrilor (inclusiv fără tip locul fără tip const-parametri).