|
more than 450 programs for free
|
![]() English |
![]() Slovensky |
![]() Česky |
![]() ©ariąsky |
Procedure and functionProceduresIn a program making time we can get to a situation, when we have a repeating commands. For the better look of a program we get this commands to a group of commands. For this are here a procedures (functions). Procedure is a small program in a main program, so i tis same like a classic program - only a little contrast betweeen that.
Structure:
PROCEDURE name_of_procedure (definition of input variables); CONST definition_of_procedure_constants; TYPE new_kinds_of_variables; VAR local_variables_for_procedures; BEGIN { begin - start of procedure } command; .. END; { end - finish of procedure } In definition of input variables we write about kind of variables we using in procedure. For a affiliate of commands GotoXY and Write we make a procedure. We call it WriteXY. Input parameters are coordinates X,Y and text, which will be write on this position. procedure WriteXY(x,y:integer;s:string);
Program Affiliate:
Uses Crt,Dos; Var X,Y,Z:Integer; Procedure WriteXY(X,Y:Integer; S:String); Var SucXY:Integer; Begin SucXY:=X+Y; GotoXY(X,Y); Write(S); End; Begin { main begin } ClrScr; WriteXY(10,4,'Hi! Im your PC'); WriteXY(10,5,'Press any key for continue'); Readln; End. { main end } FunctionSo we have an easy procedure, but is very belike, we can need to get an informations between procedure an program. For this we can use a functions. It is same like a procedure, but in functions we need to definite a variable, which a procedure must write.
Structure:
FUNCTION meno(definition of input variables):kind_of_output; CONST definition_of_function_constants; TYPE new_kinds_of_variables; VAR local_variables_for_procedures; BEGIN { begin - begin of function } príkaz; .. meno:=výsledok; END; { end - end of function }
Program NumberPower;
Uses Crt,Dos; Var X,Vys:Integerl; Function Power(X:Integer):Integer; Var Pom:Integer; Begin Pom:=(X+X)*2; Moc:=Pom; End; Begin ClrScr; X:=10; Vys:=Power(X); End. Rozdiel medzi lokálnymi a globálnymi premennými.Ak si podrobne pre‘tudujeme príklad s procedúrami v‘imneme si, že sú tam premenné X,Y definované dvakrát. Prvýkrát v hlavnej deklaračnej časti programu (hneď za USES) a druhýkrát v premenných, ktoré vstupujú do procedúry. Dôležitou otázkou je akú hodnotu bude mať premenná SucXY. Bude sčítavať X,Y ktoré sú nadefinované hneď za hlavným begin, alebo čísla ktorými volám procedúru. A tu je vlastne rozdiel medzi globálnou a lokálnou premennou, pretože v procedúre platia hodnoty 10,4 pri prvom WriteXY a 10,5 pri druhom. Premenné X=4, Y=8 budú platné pre zbytok programu. Ale Z bude viditeľné aj v procedúre WriteXY. Naopak premenná SucXY sa dá použiť len v nej. Takže ak mám definovanú globálnu premennú potom je viditeľná v celom programe, pokiaľ sa v niektorej časti nenachádza lokálna, ktorá má rovnaké meno. Napí‘me si teraz definície. Globálna premenná: Je definovaná v hlavnom tele programu a je viditeľná v celom programe aj v procedúrach a funkciách. Lokálna premenná: Jej definíciu pí‘em v záhlaví procedúry (funkcie) a je viditeľná len v tomto module. Ak má rovnaký názov ako globálna je viditeľná len lokálna. Príklad:
Výhody a nevýhody lokálnych a globálnych premenných
Z tabuľky vyplýva, že pokiaľ programátor chce mať správny a prehľadný program mal by čo najčastej‘ie používať a definovať lokálne premenné. <<Previous | Content | Next>> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||