Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podprogramy.

Podobne prezentacje


Prezentacja na temat: "Podprogramy."— Zapis prezentacji:

1 Podprogramy

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

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

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

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

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

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

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

9 Funkcje Jak zwrócić wynik? program przyk7;
function razy3(k:integer):integer; begin razy3:=3*k end; writeln(razy3(5)); 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.

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’).

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).

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

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

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

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

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


Pobierz ppt "Podprogramy."

Podobne prezentacje


Reklamy Google