Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.

Slides:



Advertisements
Podobne prezentacje
Katarzyna Szafrańska kl. II ti
Advertisements

Sortowanie przez scalanie
Język C/C++ Funkcje.
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Język ANSI C Funkcje Wykład: Programowanie komputerów
PASCAL (3) dr Anna Kwiatkowska.
Programowanie I Rekurencja.
typy całkowite (całkowitoliczbowe)
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ęść 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ęść 2: Wstęp do programowania w Pascalu © Jan Kaczmarek.
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.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 4: Wyrażenia i operatory. Podstawowe instrukcje języka.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Kurs Pascala – spis treści
Podprogramy 1 W Adzie mamy dwa rodzaje podprogramów (subprograms, subroutines): funkcje (functions) i procedury (procedures) Deklaracja i treść funkcji 
Ogólne jednostki programowe 1
Tablice jednowymiarowe 1
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Wykład 2 struktura programu elementy języka typy zmienne
Wstęp do programowania obiektowego
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.
Podprogramy.
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 WYKŁAD 2
Schemat Hornera Mgr inż. Michał Szucki.
ALGORYTMY.
Podstawy programowania
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania
Podstawy programowania
Podstawy programowania
Programowanie strukturalne i obiektowe
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
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
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Struktura programu w Turbo Pascalu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
Procedury i funkcje.
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.
Programowanie strukturalne i obiektowe
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.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Wykład 10 typ zbiorowy rekurencja.
Ogólna struktura programu w TP
Algorytmika.
Algorytmika Iteracje autor: Tadeusz Lachawiec.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Zagadnienia AI wykład 6.
Podstawowe struktury danych. Typy danych.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
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,
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Zapis prezentacji:

Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek

Procedury i funkcje W bardziej rozbudowanych programach często fragmenty wykonywanych obliczeń powtarzają się, np. kilkukrotnie trzeba wyznaczyć mniejszą spośród dwóch danych liczb, policzyć sumę pewnej ilości liczb, wyznaczać wiele razy średnią arytmetyczną, rysować tę samą figurę geometryczną itp. Powstaje pytanie, czy można opracować (zaprogramować) jeden raz algorytm wykonywania pewnej czynności (algorytm jest przecież pewnym uniwersalnym przepisem działań dla wielu zestawów danych), a następnie wielokrotnie go wykorzystywać dla rożnych zestawów danych? Odpowiedź na powyższe pytanie jest twierdząca. Aby wielokrotnie wykorzystać pewien algorytm w naszym programie (w przyszłości okaże się, że także w innych naszych programach), należy zaprogramować go w postaci procedury lub funkcji.

Aby zaprogramować algorytm w postaci procedury, musimy podać jej definicję, która ma następującą strukturę: procedure nazwa-procedury (lista-parametrów-formalnych); {lokalne definicje i deklaracje} begin {treść procedury} end; nazwa-procedury to identyfikator, który pozwala identyfikować dany algorytm, lista-parametrów-formalnych zawiera identyfikatory i opisy typów formalnych wzorców obiektów, za pomocą których będziemy przekazywać dane do obliczeń w algorytmie i zwracane będą wyniki jego działania (może jej nie być, gdy procedura nie ma parametrów !) część {lokalne definicje i deklaracje} zawiera informacje o obiektach (modułach, stałych, typach, zmiennych) wykorzystywanych tylko i wyłącznie na potrzeby danego algorytmu część {treść procedury} zawiera instrukcje składające się na formalny zapis algorytmu, które działają na parametrach formalnych i lokalnych obiektach Zwróćmy uwagę na duże podobieństwo do struktury programu.

Przykład 1: procedure wieksza (a, b : integer; var max : integer); {procedura znajdowania większej z dwóch podanych liczb} begin if a>b then max := a else max := b; end; a, b – parametry formalne, za pomocą których przekazujemy dane do obliczeń max – parametr formalny, za pomocą którego zwracany będzie wynik obliczeń Nie określamy tu żadnych obiektów, które będą wykorzystywane tylko i wyłącznie na potrzeby tego algorytmu.

Przykład 2: procedure iloczyn (n : integer; var il : integer); {procedura znajdowania iloczynu il = 1*2*3*…*n dla danego n} var i : integer; begin il := 1; for i:=1 to n do il := il*i; end; n – parametr formalny, za pomocą którego przekazujemy dane do obliczeń il – parametr formalny, za pomocą którego zwracany będzie wynik obliczeń i – zmienna całkowita wykorzystywana tylko i wyłącznie na potrzeby tego algorytmu

Procedury (i funkcje) wykorzystywane w programie muszą zostać zdefiniowane w części {definicje i deklaracje} programu po deklaracjach modułów, stałych, typów i zmiennych. Generalnie w Pascalu obowiązuje zasada mówiąca, że każdy obiekt (moduł, stała, typ, zmienna, procedura lub funkcja), który jest używany w programie, musi być najpierw zdefiniowany lub zadeklarowany (chyba, że jest to obiekt predefiniowany, czyli znany już kompilatorowi). Obiekty definiowane i deklarowane w części {definicje i deklaracje} programu (w szczególności zmienne) nazywać będziemy obiektami globalnymi. Obiekty definiowane i deklarowane w częściach {lokalne definicje i deklaracje} definicji procedur (i funkcji) nazywać będziemy obiektami lokalnymi. Definicje i deklaracje wyznaczają tzw. zasięg identyfikatora identyfikującego obiekt. Zasięg ten może być globalny lub lokalny. Obiekty lokalne mają zdolność przysłaniania obiektów globalnych w obrębie swojego zasięgu, jeśli posiadają ten sam identyfikator.

program przyklad; {$APPTYPE CONSOLE} uses SysUtils; var i : integer; x, y : real; procedure PPP (z : integer); var x : integer; begin x := z; ……… end; begin ……… x := y; PPP(i); writeln(x) ……… end. obowiązuje lokalna deklaracja, zmienna x jest typu integer zmienna y nie jest przysłonięta, co oznacza, że jest typu real obowiązuje globalna deklaracja, zmienna x jest typu real zmienna y jest typu real obowiązuje globalna deklaracja, zmienna x jest typu real zmienna y jest typu real

Gdy w wyniku działań procedury otrzymujemy jeden wynik, wygodnie jest zaprogramować algorytm obliczania tej wartości w postaci funkcji. Musimy podać jej definicję, która ma następującą strukturę: function nazwa-funkcji (lista-parametrów-formalnych) : typ-wyniku; {lokalne definicje i deklaracje} begin {treść funkcji} end; nazwa-funkcji to identyfikator, który pozwala identyfikować daną funkcję i przez ten identyfikator zwracany będzie wynik działania funkcji lista-parametrów-formalnych zawiera identyfikatory i opisy typów formalnych wzorców obiektów, za pomocą których będziemy przekazywać dane do obliczeń w algorytmie (może jej nie być, gdy funkcja nie ma parametrów !) typ-wyniku określa typ zwracanego przez funkcję wyniku część {lokalne definicje i deklaracje} zawiera informacje o obiektach wykorzystywanych tylko i wyłącznie na potrzeby danego algorytmu część {treść funkcji} zawiera instrukcje składające się na formalny zapis algorytmu, które działają na parametrach formalnych i lokalnych obiektach

W części {treść funkcji} przynajmniej raz musi wystąpić instrukcja przypisania postaci: nazwa-funkcji := wyrażenie; określająca, jaką wartość zwróci funkcja jako wynik swego działania. Przykład 1: function max (a, b : integer) : integer; {funkcja zwracająca jako wynik większą z dwóch podanych liczb} begin if a>b then max := a else max := b; end; a, b – parametry formalne, za pomocą których przekazujemy dane do obliczeń max – nazwa funkcji, za pomocą której zwracany jest wynik obliczeń

Przykład 2: function silnia (n : integer) : integer; {funkcja zwracająca jako wynik iloczyn 1*2*3*…*n dla danego n} var i, il : integer; begin il := 1; for i:=1 to n do il := il*i; silnia := il end; n – parametr formalny, za pomocą którego przekazujemy dane do obliczeń silnia – nazwa funkcji, za pomocą której zwracany jest wynik obliczeń i, il – zmienne całkowite wykorzystywane tylko i wyłącznie na potrzeby tego algorytmu