Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podprogramy. Podprogramy Potrzeba istnienia podprogramów Potrzeba istnienia podprogramów Ograniczenia percepcji człowieka (5-9 obiektów, średnio 7) Ograniczenia.

Podobne prezentacje


Prezentacja na temat: "Podprogramy. Podprogramy Potrzeba istnienia podprogramów Potrzeba istnienia podprogramów Ograniczenia percepcji człowieka (5-9 obiektów, średnio 7) Ograniczenia."— Zapis prezentacji:

1 Podprogramy

2 Podprogramy Potrzeba istnienia podprogramów Potrzeba istnienia podprogramów Ograniczenia percepcji człowieka (5-9 obiektów, średnio 7) Ograniczenia percepcji człowieka (5-9 obiektów, średnio 7) Programowanie zstępujące Programowanie zstępujące Programowanie wstępujące Programowanie wstępujące Podprogramy w Pascalu Podprogramy w Pascalu Procedury Procedury Funkcje Funkcje

3 Procedury procedure nazwa(lista_parametrów); procedure nazwa(lista_parametrów); deklaracje_etykiet; deklaracje_etykiet; deklaracje_stałych; deklaracje_stałych; deklaracje_typów; deklaracje_typów; deklaracje_zmiennych; deklaracje_zmiennych; deklaracje_podprogramów; deklaracje_podprogramów; begin begin instrukcja_1; instrukcja_1; instrukcja_2; instrukcja_2; instrukcja_ostatnia instrukcja_ostatnia end; end;

4 Procedury Zmienne lokalne Zmienne lokalne Lista argumentów (może być pusta) Lista argumentów (może być pusta) Parametry formalne Parametry formalne Parametry aktualne Parametry aktualne Zakres widoczności identyfikatorów Zakres widoczności identyfikatorów Zmienne globalne Zmienne globalne Zmienne lokalne Zmienne lokalne Zmienne nielokalne Zmienne nielokalne

5 program przyk_proc; program przyk_proc; var i: integer; { zmienne globalne } var i: integer; { zmienne globalne } s: string; s: string; procedure pisz; { pisze 40 gwiazdek } procedure pisz; { pisze 40 gwiazdek } var var i: integer; { zmienna lokalna procedury } i: integer; { zmienna lokalna procedury } begin begin write(s); { dotyczy globalnej zmiennej s } write(s); { dotyczy globalnej zmiennej s } for i:=1 to 40 do { dotyczy lokalnej zmiennej i } for i:=1 to 40 do { dotyczy lokalnej zmiennej i } write(*); write(*); writeln writeln end; end; begin begin s:=Gwiazdki: ; s:=Gwiazdki: ; for i:=1 to 10 do { dotyczy globalnej zmiennej i } for i:=1 to 10 do { dotyczy globalnej zmiennej i } pisz; pisz; end. end.

6 Procedury Jak to działa? Jak to działa? Co znajduje się na stosie? Co znajduje się na stosie?

7 Przekazywanie argumentów Przez wartość Przez wartość program przyk5; var i: integer; var i: integer; procedure test5(k:integer); procedure test5(k:integer); begin begin k:=k+1; k:=k+1; writeln(k) writeln(k) end; end; begin begin i:=10; i:=10; test5(i);{ 11 } test5(i);{ 11 } writeln(Po teście:,i);{ 11 } writeln(Po teście:,i);{ 11 } end. end. Przez zmienną ( var ) Przez zmienną ( var ) program przyk6; var i: integer; var i: integer; procedure test6(var k:integer); procedure test6(var k:integer); begin begin k:=k+1; k:=k+1; writeln(k) writeln(k) end; end; begin begin i:=10; i:=10; test6(i);{ 11 } test6(i);{ 11 } writeln(Po teście:,i);{ 10 } writeln(Po teście:,i);{ 10 } end. end.

8 Funkcje Podprogramy zwracające wartość (w Pascalu następujących typów): Podprogramy zwracające wartość (w Pascalu następujących typów): typów porządkowych, typów porządkowych, typu rzeczywistego, typu rzeczywistego, łańcuchów, łańcuchów, wskaźników. wskaźników. function nazwa(argumenty): typ_wyniku;

9 Funkcje Jak zwrócić wynik? Jak zwrócić wynik? program przyk7; program przyk7; function razy3(k:integer):integer; function razy3(k:integer):integer; begin begin razy3:=3*k razy3:=3*k end; end; begin begin writeln(razy3(5)); writeln(razy3(5)); end. end.

10 Przykład Dana jest funkcja f1(x):real. Napisać (zaimplementować) funkcję calk1(x0,x1:real):real, która wyznacza przybliżoną wartość całki oznaczonej fukcji f1(x) w przedziale od x0 do x1 metodą prostokątów. Dana jest funkcja f1(x):real. Napisać (zaimplementować) funkcję calk1(x0,x1:real):real, która wyznacza przybliżoną wartość całki oznaczonej fukcji f1(x) w przedziale od x0 do x1 metodą prostokątów.

11 Przykład Napisać funkcję, której argumentem jest łańcuch, zwracającą oryginalny łańcuch uzupełniony o spacje wstawione między każdą parę sąsiadujących znaków (Ala ma kota -> A l a m a k o t a). Napisać funkcję, której argumentem jest łańcuch, zwracającą oryginalny łańcuch uzupełniony o spacje wstawione między każdą parę sąsiadujących znaków (Ala ma kota -> A l a m a k o t a).

12 Przykład Napisać funkcję, która sprawdza, czy podana jako argument liczba całkowita jest liczbą pierwszą, czy nie (wynik powinien być typu boolean). Napisać funkcję, która sprawdza, czy podana jako argument liczba całkowita jest liczbą pierwszą, czy nie (wynik powinien być typu boolean).

13 Przekazywanie argumentów do programu var i: Word; var i: Word; begin begin for i := 1 to ParamCount do for i := 1 to ParamCount do WriteLn( ParamStr(i) ); WriteLn( ParamStr(i) ); end. end.

14 Rekurencja Silnia: n! = n * (n-1) * (n-2) * … * 2 * 1 Silnia: n! = n * (n-1) * (n-2) * … * 2 * 1 function silnia(n : integer) : integer; begin if n=0 then if n=0 then silnia := 1 silnia := 1 else else silnia := n * silnia(n-1); silnia := n * silnia(n-1);end;

15 Rekurencja Ciąg Fibonacciego: Ciąg Fibonacciego: Fib(1) = 1; Fib(2) = 1; Fib(n) = Fib(n-1) * Fib(n-2) function fib(n : integer) : integer; begin if n=1 or n=2 then if n=1 or n=2 then fib := 1 fib := 1 else else fib := fib(n-1) * fib(n-2); fib := fib(n-1) * fib(n-2);end;

16 Rekurencja Warunek końca rekurencji Warunek końca rekurencji słowo kluczowe forward słowo kluczowe forward rozmiar stosu rozmiar stosu kiedy nie stosować rekurencji? kiedy nie stosować rekurencji?

17 Przykład Napisać funkcję, która wygeneruje wszystkie permutacje przekazanej tablicy znaków. Napisać funkcję, która wygeneruje wszystkie permutacje przekazanej tablicy znaków.


Pobierz ppt "Podprogramy. Podprogramy Potrzeba istnienia podprogramów Potrzeba istnienia podprogramów Ograniczenia percepcji człowieka (5-9 obiektów, średnio 7) Ograniczenia."

Podobne prezentacje


Reklamy Google