Pascal: Funkcije i procedure (nastavak)

Ovo je nastavak prethodnog texta koji odvajamo zbog preglednosti. Kao sto smo vec pomenuli, funkcije i procedure su dva tipa potprograma. Ovo vazi za pascal, python kao i vecinu modernih programskih jezika. Razlika je sto funkcije vracaju neku vrednost u glavni program, dok procedure jednostavno urade ono zbog cega su pozvane i tu im se zadatak zavrsava. One medjutim mogu primati argumente iz glavnog programa, na osnovu kojih ce izvrsiti svoj zadatak. Pogledajmo primer:

program Procedura;
uses crt;
var
n:integer;

procedure lines(c:byte; lin:integer);
var
m:integer;
begin
textcolor(c);
gotoXy(10,lin);
for m := 1 to 10 do
begin
Write(chr(196));
end; end;

begin
for n := 1 to 7 do
begin
lines (n,n);
end;
readln;
end.

U ovom primeru nasa procedura ispisuje linije u razlicitim bojama u sukcesivnim redovima. Argumente koje prima su boja i linija. Iz glavnog programa for petlja poziva proceduru i salje joj parametre za oba elementa koji se povecavaju za jedan. Rezultat je program koji ispisuje 7 linija u isto toliko boja.

Kao sto smo vec pomenuli, procedure mogu da rade i bez argumenata. Tada ih jednostavno pozivamo iz glavnom programa imenom. U tom slucaju funkcionisu recimo kao klasicni potprogrami iz Basica. Sada cemo prethodni primer preraditi tako da funkcionise na ovaj nacin.

program Procedura2;
uses crt;

procedure xyz;
var
n,m:integer;
begin
for n := 1 to 7 do
begin
textcolor(n);
gotoXy(10,n+5);
for m := 1 to 10 do
begin
Write(chr(196));
end; end; end;

begin
write('Nasih 7 linija >>');
xyz;
readln;
end.

Ovde smo najpre definisali proceduru xyz koja crta 7 linija u duginim bojama. Zatim smo jednostavno pozvali xyz iz glavnog programa. Naravno, ovaj pristup ima smisla u koliko se radnja ponavlja vise puta. Primere namerno pravimo tako da budu jednostavni, da bi se lakse ilustrovali principi i metod rada.

Vise o procedurama procitajte ovde i ovde.

Advertisements

Posted on 2017/10/14, in Pascal, Programski jezici, Tutorijali. Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: