Internetowy kurs programowania w Turbo Pascalu - www.kurstp.republika.pl
06.08.2004, 07.08.2004
Lekcja 9
Procedura nie jest dla Ciebie pojęciem obcym, ponieważ już nie raz miałeś z nią doczynienia. Procedura to wydzielona część kodu, która po zadeklarowaniu, może być wielokrotnie wywoływana w programie, poprzez podanie jej nazwy i ewentualnie parametrów.
Weźmy np. procedurę Write. Jak już wiesz za jej pomocą możemy przekazać do standardowego urządzenia wyjściowego jakim jest monitor, tekstu ujętego w apostrofach. Tekst ten jest parametrem tej procedury , choć nie koniecznie wymaganym.
Aby można było skorzystać z procedury, musimy ją najpierw zadeklarować. Procedury deklarujemy zaraz za sekcją var, według poniższego wzoru:
procedure nazwa procedury(parametry);
{Blok deklaracyjny}
begin
{Blok instrukcji}
end;
Przykładowa deklaracja procedury wygląda następująco:
procedure rysujLinie(liczbaK : byte);
var
i : byte;
begin
for i := 1 to liczbaK do
Write('_');
end; {Koniec rysujLinie}
Jak widać na powyższym przykładzie, nie tylko mamy możliwość przesyłania zmiennych do procedury, ale także ich deklaracje wewnątrz jej. Zmienne te noszą nazwę zmiennych lokalnych.
Przydało by się też kilka zdań wyjaśnień na temat parametrów. Dzięki parametrom możemy przekazywać procedurą dane, które mają wpływ na wynik przeprowadzonych wewnątrz nich operacji. Poniżej znajdują się dwa rózniące się od siebie wywołania procedury rysujLinie. Poprzez parametr przekazujemy jej ilość kresek, z których będzie składać się rysowana linia.
rysujLinie(10);
var
liczba : byte;
................
liczba := 10;
rysujLinie(liczba);
Jak widać poprzez parametry możemy także przekazywać wartości przechowywane przez zmienne, o ile są takiego samego typu. Kolejnym faktem jest to, iż procedura nie wykonuje operacji na zmiennych podanych poprzez parametr, lecz na ich kopiach. Aby temu zaprzeczyć należy przed parametrem zastosować słowo var.
Wszystkie parametry procedury oddziela się od siebie znakiem średnika np.:
procedure wypiszDane(imie, nazwisko : String; wiek : byte);
Funkcje w swym działaniu nie różnią się wiele od procedur. Podstawową różnicą jest fakt, iż funkcja zawsze zwraca jakąś wartość. Typ zwracanej wartości przez funkcję uwzględnia się podczas jej deklaracji, która przebiega według wzoru:
function nazwa funkcji(parametry) : typ zwracanej wartości;
{Blok deklaracyjny}
begin
{Blok instrukcji}
end;
Funkcje wywołuje się w taki sam sposób jak procedury. Poniżej znajduje się kod programu, w którym wykorzystano funkcję.
program funkcje;
var
wynik : String;
function porownaj(l1, l2 : byte) : string;
begin
if (l1 > l2) then
porownaj := 'TAK'
else
porownaj := 'NIE';
end; {Koniec porownaj}
begin
{Sposób 1}
Writeln('Czy 1 jest większe od 4?');
Writeln('Odp : ',porownaj(1,4));
{Sposób 2}
Writeln('Czy 107 jest większe od 2?');
wynik := porownaj(107,2);
Writeln('Odp : ',wynik);
Readln; {Czekaj na ENTER}
end.
Przypisanie funkcji zwracanej przez nią wartości przebiega według wzoru:
nazwa_funkcji := zwracana wartość
Gdy funkcja zwróci wartość, natychmiast przerywa swoje działanie.
Zezwalam na wykorzystanie kursu w niezmienionej postaci i w całości na swoich stronach, w celu wyłącznie nie komercyjnym, pod warunkiem uprzedniego poinformowania mnie o umieszczeniu, przesłania swego adresu WWW i e-mail, oraz umieszczenia odnośnika, do orginału.
Wyszukiwarka
Podobne podstrony:
K4 L9AiRA L9l9Day 1 L9 Inflammatory lesionsALL L90610?lass101chap2 l9l9L9V L9 0409?lass101L9 newL9L72 L9 schemwięcej podobnych podstron