PROGRAMOWANIE STRUKTURALNE Wprowadzenie do programowania w TP. część 2
Ogólna postać funkcji i procedury. Temat Ogólna postać funkcji i procedury.
Procedura i funkcja to ciąg instrukcji połączonych w grupę, instrukcji, które odpowiedzialne są za część programu: wyznaczają odpowiednie wartości, dokonują operacji na danych, wypisują coś na ekranie, rysują itd.
Jaka jest różnica? Funkcja po wykonaniu się zwraca jakąś wartość. Natomiast procedura wykonuje tylko określoną czynność. Pamiętaj jednak, że dla funkcji nie zawsze musisz wykorzystać zwracaną wartość. Możesz po prostu wykonać funkcję w taki sposób, jak byś uruchamiał procedurę.
Procedura program nazwa; uses Crt; procedure NazwaProcedury; begin {początek procedury} {tu może być kod wykonywalny} end; {koniec} begin {główna część programu} NazwaProcedury; {wywołanie procedury} end.
Funkcja program dodawanie; uses Crt; function suma(x,y:integer):integer; begin {początek procedury} suma:=x+y; {kod funkcji} end; {koniec} begin {główna część programu} writeln(suma(2,3)); end.
Zmienne lokalne i globalne. Temat Zmienne lokalne i globalne.
Zmienne globalne Zmienne globalne, deklarowane są na początku programu, są dostępne we wszystkich procedurach i funkcjach.
Zmienne lokalne Nowe zmienne deklarowane w procedurach i funkcjach nazywamy zmiennymi lokalnymi. Zmienne te widoczne są tylko i wyłącznie w tej procedurze lub funkcji. Zmienna lokalna w danej procedurze (funkcji) przesłania zdefiniowaną zmienną globalną, lub zmienną lokalną z procedury (funkcji) nadrzędnej, o tym samym identyfikatorze (nazwie).
Przykład function func(x: integer): integer; {deklaracja zmiennej lokalnej} var a,b: integer; begin {ciało funkcji} ... end;
Parametry formalne i aktualne. Temat Parametry formalne i aktualne.
Argumenty Parząc na pojęcie funkcji z perspektywy matematyki naturalnie rozumiesz, czym jest argument i wartość: y = f(x) x – argument funkcji, y – wartość funkcji, identycznie jest w programowaniu. Wywołujemy funkcję z argumentami i otrzymujemy wartość.
Argument aktualny i formalny W definicji i deklaracji funkcji może znajdować się lista argumentów. Ta lista argumentów nazywana jest listą argumentów formalnych, zaś argumenty znajdujące się w deklaracji funkcji to argumenty formalne. Każda funkcja może być uruchomiona z różnymi wartościami argumentów. Takie uruchomienie funkcji nazywamy wywołaniem funkcji, zaś argumenty przekazane do funkcji w momencie jej wywołania to argumenty aktualne.
Przykład argumenty formalne function suma(x,y:integer):integer; begin suma:=x+y; end; begin writeln(suma(2,3)); end. wywołanie funkcji argumenty aktualne
Przekazywanie parametrów przez wartość i przez zmienną. Temat Przekazywanie parametrów przez wartość i przez zmienną.
Przekazywanie parametrów Można przekazywać dowolną ilość parametrów do funkcji lub procedury. Oddziela się je średnikami. Każdy z parametrów ma własny typ. Zmienne podawane zazwyczaj w parametrach są kopiowane w inny obszar pamięci i właśnie do tego obszaru ma dostęp programista.
Przekazywanie przez wartość procedure Pokaz (txt : string); Programista posiada dostęp tylko do kopii (wartości) zmiennej przekazanej. Zmiana zmiennej txt nie generuje żadnych zmian poza procedurą w programie po jej wykonaniu.
Przekazywanie przez zmienną - referencję procedure Pokaz (var txt : string); Programista posiada dostęp zmiennej wskazywanej przez referencję o nazwie txt. Zmiana zmiennej txt w procedurze generuje zmiany zmiennej wskazywanej przez nazwę txt poza procedurą w programie.
Przekazywanie przez stałą procedure Pokaz (txt : string); Użycie słowa kluczowego const spowoduje, że przekazywany jest jedynie adresu pamięci, w którym jest zmienna. Niestety program nie pozwoli nam na edycję parametru, bo nie pracujemy na kopii.
Wywoływanie funkcji i procedur. Temat Wywoływanie funkcji i procedur.
Ćwiczenia praktyczne
Temat Rekurencja.
Rekurencja Rekurencja polega na wywołaniu przez funkcję samej siebie. UWAGA! W programowaniu istnieje niebezpieczeństwo, gdy procedura wywołuje siebie samą. Wiąże się to z dużym obciążeniem pamięci i gdyby nie przerwać tego procesu wielokrotnego wywołania, pamięć się skończy, a program przestanie działać.
Silnia – przykładem rekurencji function Silnia(liczba:word):word; begin if liczba=0 then silnia:=1 else Silnia:=Silnia(liczba1)*liczba; end;
Funkcje i procedury obsługi ekranu. Temat Funkcje i procedury obsługi ekranu.
Temat Grafika w Pascalu.
Moduły użytkownika- zasady budowy i korzystania z modułów. Temat Moduły użytkownika- zasady budowy i korzystania z modułów.