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;