43-400 Cieszyn, Plac Wolności 7b +48 33 85 211 32
baner
baner
baner
baner
 
Pascal - Funkcje i procedury
W kursie wielokrotnie używałem terminów procedura i funkcja. Czas się im bliżej przyjrzeć.

>>Procedury

Procedury właściwie nie występują w innych językach programowania. Są tam używane dalej omówione funkcje. Procedura to jakby mały podprogram, blok kodu, który realizuje określone zadanie. Procedury tworzymy następująco:

procedure Nazwa_procedury;
begin
Instrukcje;
end;


Rozpoczynamy słowem kluczowym procedure po czym wpisujemy jej nazwę. Następnie w blokach begin end; wpisujemy jej kod. Należy zwrócić uwagę, że w tym wypadku bloki są wymagane i nie można ich pominąć. Procdedury wpisujemy przed blokiem głównym, tzn. begin end. i najlepiej po deklaracji zmiennych. Procedur najczęściej używa się gdy program musi wykonać jakąś skomplikowaną czynność kilka razy. Wtedy wystarczy zapisać ją raz w procedurze i właśnie nią się posługiwać. Spójrzmy na przykład:

program Project19;

var
S:string;

procedure Wyswietlanie_napisu;
begin
Writeln;
Writeln('To program obslugujacy proceudry');
Writeln;
end;

procedure Zmiana_zmiennej;
begin
S:='Wartosc B';
end;

begin
Wyswietlanie_napisu;
S:='Wartosc A';
Writeln(S);
Zmiana_zmiennej;
Writeln(S);
Wyswietlanie_napisu;
readln;
end.

W programie stworzyliśmy dwie procedury: Wyswietlanie_napisu, która odpowiada za wyświetlanie krótkiego tekstu oraz Zmiana_zmiennej, w której zmieniamy wartosc zmiennej S. Jak widać można odwoływać się do zmiennych nie zawartych w procedurach, są to tzw. zmienne globalne czyli można ich używać w całym programie. Jedyny warunek to jej deklaracja przed procedurami.
Jednej procedury możemy używać w programie dowolną ilośc razy.
W procedurach możemy również deklarować zmienne. Są to jednak zmienne lokalne, co oznacza, że nie możemy odwołać się do nich z innej procedury, funkcji czy programy. Sposób deklaracji obrazuje poniższy kod:

...
procedure Zmiana_zmiennej;
var
D:string;
begin
D:='Wartosc C';
S:=D;
end;
...

>>Parametry procedur

Do procedur możemy przekazywać parametry czyli po prostu pewne dane. Jednak aby najpierw je przekazać musimy je gdzieś zapisać. Robi się to następująco

procedure Nazwa_procedury(Nazwa_zmiennej:typ; Nazwa_zmiennej:typ);
begin
Instrukcje;
end;

W nawiasach okrągłych wpisujemy nazwę zmiennej oraz jej typ. Od tej chwili możemy jej normalnie używać w procedurze. Przykład:

...
procedure Wyswietlanie_napisu(Tresc:string);
begin
Writeln;
Writeln(Tresc);
Writeln;
end;
...

Abz wywołać taką procedurę postępujemy następująco:

Wyswietlenie_napisu('Procedura z parametrem');

W nawiasie wpisujemy wartość jaka ma zostać przypisana do zmiennej "Tresc". Jeśli parametrów jest więcej wpisujemy je po przecinku.

>>Funckje

Funkcje różnią się od procedur. Są to także małe podprogramiki lecz dodatkowo zwracają wartość.

function Nazwa_funkcji:Typ zwracany;
begin
Instrukcje;
end;

Słowo procedure zamieniamy na function, wpisujemy nazwę i typ zwracany. Zobaczmy przykład:

program Project20;

function Imie:string;
begin
Result:='Astaz3l';
end;

begin
writeln('Kurs Pascala by '+Imie);
readln;
end.

Stworzyliśmy funkcję, która zwróci napis, czyli typ string. W funkcji występuje słowo "Result". Jest to jakby ukryta zmienna, której typem jest typ zwracany funkcji. W bloku głównym wyświetlamy napis. Funkcja Imie można tutaj uznać poprostu jako normalną zmienną typu string.

>>Parametry funkcji

Parametry funkcji tworzymy identycznie jak w przypadku procedur. Obrazuje to poniższy przykład:

...
function PodajImie(Imie:string):string;
begin
Result:=Imie;
end;
...
writeln('Nazywam sie '+PodajImie('Jan Kowalski'));
...



Powrót