Manualul de auto-instruire ilustrat pascal on-line

Tutorial online Pascal

Tipuri de proceduri. Parametrii - funcții și parametri - proceduri.

Tipuri de proceduri - aceasta este inovația firmei Borland (în standardul Pascal, nu există astfel de tipuri).





Scopul principal al acestor tipuri este de a oferi programatorului mijloace flexibile de transfer de funcții și proceduri ca parametri reali pentru accesarea altor proceduri și funcții.

Prod = Procedură (a, b, c: Real; var d: Real);

Proc2 = Procedura (var a, b);

Func1 = Funcție: String;







Func2 = Funcție (var s: String): Real;

După cum puteți vedea din exemplele de mai sus, există două tipuri de proceduri: procedura de tip și funcția de tip.

Exemplul 8.3 ilustrează mecanismul pentru procedurile de trecere ca parametri de apel actuali. Programul afișează un tabel cu două funcții:

sin1 (x) = (sin (x) + 1) * exp (-x)

cos1 (x) = (cos (x) + 1) * exp (-x).

Calculul și tipărirea valorilor acestor funcții sunt implementate în procedura PRINTFUNC, care ia ca parametri numărul de poziție N pe ecran, unde va fi generat rezultatul următor (cu acest parametru se va realiza ieșirea în două coloane) și numele funcției dorite.

Func = Funcție (x: Real). Real;

Procedură PrintFunc (XPos: Byte; F: Func);

PrintFunc (40, cos1)

Notă: pentru a stabili relațiile corecte între funcțiile SIN1 și COS1 cu procedura PRINTFUNC, acestea trebuie compilate cu așteptarea unui model de memorie cu rază lungă de acțiune. De aceea, directivele standard FAR sunt inserate în program imediat după anteturile funcțiilor. În acest mod, trebuie să fie compilate procedurile (funcțiile), care vor fi transmise ca parametri de apel actuali.

Procedurile standard (funcții) ale Turbo Pascal nu pot fi transmise prin metoda considerată.

Variabilele tipurilor de procedură pot fi declarate în program, de exemplu, după cum urmează:

p. array [1..N] de Proc1;

Variabilelor tipurilor de procedură li se permite să atribuie numele subprogramelor corespunzătoare ca valori. După această alocare, numele variabilei devine sinonim cu numele subrutinei, de exemplu:

Proc = Procedură (n: cuvânt; var a: Byte);

ProcVar: Proc; x, y. byte;

Procedură Procl (x: cuvânt; var y: Byte); departe;

dacă x> 255 atunci







Articole similare

Trimiteți-le prietenilor: