Podprogramy.

Slides:



Advertisements
Podobne prezentacje
Funkcje w PHP ABK.
Advertisements

Katarzyna Szafrańska kl. II ti
Sortowanie przez scalanie
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Prowadzący: mgr inż. Elżbieta Majka
PASCAL (3) dr Anna Kwiatkowska.
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
ZŁOŻONOŚĆ OBLICZENIOWA
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 3: Podstawowe elementy języka.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Kurs Pascala – spis treści
Ogólne jednostki programowe 1
Typy wskaźnikowe ogólne 1 Typy wskaźnikowe ogólne (general access types) umożliwiają pośredni dostęp (indirect access), czyli przez wskaźniki, do zadeklarowanych.
Wykład 2 struktura programu elementy języka typy zmienne
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
PASCAL Dr Anna Kwiatkowska.
Wprowadzenie do programowania w języku Turbo Pascal
Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty.
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Typy wskaźnikowe, dynamiczne struktury danych
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE WYKŁAD 2
Schemat Hornera Mgr inż. Michał Szucki.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Język PASCAL – podstawy Turbo Pascal: procedury, funkcje
Programowanie strukturalne i obiektowe
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Operacje na strukturach listowych
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
Algorytmy z przykładami w Turbo Pascal 7.0
Struktura programu w Turbo Pascalu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
Procedury i funkcje.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Programowanie strukturalne i obiektowe
Informatyka MPZI Wykład 4 Podprogramy Pliki Typ zbiorowy Rekurencja.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Wykład 10 typ zbiorowy rekurencja.
Ogólna struktura programu w TP
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
Podstawowe struktury danych. Typy danych.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wykład 11 Informatyka MPDI Podprogramy Zmienne typu zbiorowego Rekurencja Typ obiektowy Zmienne dynamiczne.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
Haskell Składnia funkcji.
Zapis prezentacji:

Podprogramy

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

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;

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

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.

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

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.

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;

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

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.

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

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

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

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;

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;

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

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