Gradivo III razreda u Gimnaziji "Veljko Petrović"

Računarstvo i Informatika

Ulazno-izlazni parametri u potprogramima.

Pri korišćenju standardnih ili korisničkih potprograma (procedura ili funkcija), potrebno je proceduri poslati određene parametre. To su vrednosti koje su potrebne potprogramima da odrade neki posao a po potrebi mogu i da vrate neke vrednosti iz potprograma.

Pojmovi vezani za parametre

ulazni parametri
To su parametri koji prenose vrednosti samo iz bloka koji poziva, u potprogram.
izlazni parametri
To su parametri koji mogu i da prenesu vrednosti iz bloka koji poziva u potprogram, i da vrate vrednosti iz potprograma u blok iz kog su pozvani.
stvarni parametri
To su parametri koji se navode prilikom poziva potprograma.
virtuelni parametri
To su parametri koji se navode u deklaraciji potprograma.

Sintaksa virtualnih ulazno-izlaznih parametara u deklaraciji potprograma

{[var ]ime_parametra{, ime_parametra}: tip[;]}

Objašnjenje sintakse:

  • Broj parametara je proizvoljan (vitičaste zagrade koje obuhvataju sve).
  • [Var ] - je opciono, i koristi se kada želite da parametar bude izlazni. Ako ga izostavite, parametar će biti strogo ulazni u potprogram.
  • ime_parametra: tip - isto kao u deklaraciji promenljive, ime_parametra je identifikator a tip njegov tip u PASCAL-u.
  • {, ime_parametra] - opet kao i u deklaraciji promenljivih, ako imate više parametara istog tipa, odvajaju se zarezom. (ovo važi samo ako su uzastopni)
  • [;] - tačka-zarez koristite kada odvajate parametre koji nisu istog tipa.

Dodatni uslovi

  • Stvarni i virtuelni parametari se moraju slagati po broju i po tipovima.
  • Svi virtuelni parametri se ponašaju kao lokalno definisane promenljive u potprogramu.
  • U spisku stvarnih parametara, ulazni parametri mogu biti izrazi dok izlazni parametri moraju biti promenljive.
  • Izlazni parametri prenose vrednosti u oba smera tj oni su u stvari i ulazni i izlazni.

Primer:

Uses crt;
Var Recenica : string;
Procedure ObrisiDeoStringa(Var s:string; i, j:byte);
Begin
  Delete(s, i, j);
End;
Begin
  write('Unesi jednu recenicu : '); Readln(Recenica);
  write('Druga polovina recenice je : ');
  ObrisiDeoStringa(Recenica, 1, Length(Recenica) div 2);
  writeln(Recenica);
End.
  • U pozivu procedure ObrisiDeo stringa iz glavnog programa, Recenica je stvarni izlazni parametar. Ona mora biti promenljiva.
  • U deklaraciji procedure ObrisiDeoStringa, S je virtuelni izlazni parametar i mora biti deklarisana sa Var u spisku virtuelnih parametara.
  • U pozivu standardne procedure Delete iz potprograma, S je stvarni izlazni parametar. Ona mora biti promenljiva. (ovo je ispunjeno u deklaraciji promenljive s u spisku virtuelnih parametara u deklaraciji procedure ObrisiDeoStringa)
  • 1 i Length(Recenica) div 2 u pozivu procedure ObrisiDeoStringa u glavnom programu su stvarnu ulazni parametri. Prvi je konstanta, a drugi je izraz tipa byte.
  • i i j u deklaraciji procedure ObrisiDeoStringa su virtuelni ulazni parametri.
  • i i j u pozivu standardne procedure Delete iz potprograma su stvarni ulazni parametri.
  • I u pozivu korisničke procedure ObrisiDeoStringa i u pozivu standardne procedure Delete, imamo po 3 parametra, što se slaže sa brojem parametara u deklaraciji obeju procedura.
  • I u pozivu korisničke procedure ObrisiDeoStringa i u pozivu standardne procedure Delete, prvi parametar je tipa string a ostala dva su tipa Byte te se parametri poklapaju i po tipovima.
  • Promenljiva Recenica je i ulazni i izlazni parametar tj ona prenosi vrednost koju treba obraditi u proceduru ObrisiDeoStringa, a nakon obrade donosi novu vrednost u glavni program (blok koji je pozvao proceduru).

Objašnjenja

Na početku rada potprograma, automatski se izvršava (za svaki parametar po jedna) naredba dodele:
Virtuelni Parametar := Odgovarajući Stvarni Parametar;

Po završetku rada potprograma, ako ima izlaznih parametara, automatski se izvršava (za svaki izlazni parametar po jedna) naredba dodele:
Stvarni Izlazni Parametar := Virtuelni Izlazni Parametar;

Valid XHTML 1.0 Strict! | Site map | Kontakt | © 2007..2015 prof. Duško Obradović sa učenicima Gimnazije