KubusCmg
Administrator
Dołączył: 08 Mar 2008
Posty: 51
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5 Skąd: skontowni
|
Wysłany: Nie 19:52, 09 Mar 2008 Temat postu: 7. Podrogramy - procedury i fukcje |
|
Przy tworzeniu wiekszego programu stosuje sie podzial na kikla mniejszych zwancyh podprogramami.
W Pascalu wystepuja procedury i fukcje .
Jaka jest roznica miedzy nimi?
Procedura jest typem podprogramu w ktorym zawarte sa instrukcje. Ich liczba jest nieograniczona. Wygoda jest tutaj fakt iz mozemy je wstawic w dowolnym miejscu w programie podajac jedynie nazwe tej procedury.
Funkcja jest swego rodzaju takze procedura ALE! zwraca ona wynik.
Tak wiec wykorzystujac procedure wykonuja sie tylko instrukcje w niej zawarte po czym program leci dalej. Fukcja zas zadziala jako wykonanie jakichs dzialan i wyswietleniu tego wyniku. Eh... przyklad?
Kod: |
begin
writeln('Witaj w moim programie!');
Szescian(a);
writeln('Dziekuje!');
end.
begin
writeln('Podaj wartosc a:');
readln(a);
b:=Kwadrat(a);
writeln('Kwadrat z liczby a wynosi: ',b);
end.
|
Mamy tutaj fragmenty dwoch programow.
W pierwszym zostanie wyswietlony tekst, nastepnie beda wykonane instrukcje zadeklarowane wewnatrz procedury Szescian z paramentrem a. Po wykonaniu tychze instrukcji wyswietli tekst z podziekowaniem;)
W przypadku drugiego zostanie pobrana wartosc zmiennej a. Nastepnie zmiennej b zostanie przypisana wartosc funkcji Kwadrat od a. No i komunikat informujacy o wyniku;)
Tak wiec procedura zostanie tylko wykonana, zas fukcja bedzie wspolpracowala z calym programem glownym tak jakby byla instrukcja.
Eh.. teorii chyba dosc.
Konstrukcja procedury:
Kod: |
PROCEDURE nazwa(parametry)
deklaracja_stalych_i_zmiennych;
BEGIN
instrukcje_dla_procedury;
END;
|
Tu powinno byc wszystko jasne po malym wykladzie z teorii:)
Konstrukcja fukcji:
Kod: |
FUNCTION nazwa(parametry):typ_wyniku
deklaracja_stalych_i_zmiennych;
BEGIN
instrukcje_dla_fukcji;
END;
|
Od razu rzuca sie w oczy pewna roznica. Mianowicie wystepuje tutaj typ_wyniku. Wlasciwie to jest ta sama sytuacja co przy deklaracji zmiennych w bloku deklaracyjnym;) Dla porownania:
Kod: |
VAR n:integer;
****
FUNCTION wielomian(a,b,c,x):integer
...
|
Wyrazenie to wiec okresla typ wyniku wyjsciowego.
Wspolnym elementem na ktory trzebaby zwrocic uwage jest deklaracja_stalych_i_zmiennych;. Chodzi tutaj o zmienne lokalne. Wiecej o tym w dziale "Zywotnosc zmiennych i stalych".
Jedna wazna rzecz godna uwagi!!
W tresci fukcji musi byc umieszczone przypisanie:
Kod: |
nazwa_fukcji:=wynik;
|
Oznacza to ze wartosc zmiennej wynik bedzie wartoscia wyjsciowa calej fukcji.
Post został pochwalony 0 razy
Ostatnio zmieniony przez KubusCmg dnia Nie 20:28, 09 Mar 2008, w całości zmieniany 2 razy
|
|