Podstawy programowania Wykład VI PASCAL procedury i funkcje przekazywanie parametrów, 1
I. Procedury i funkcje Zakres widoczności zmiennych i tab_los i, suma 2
I. Procedury i funkcje Procedury z parametrami Przysłanianie zmiennych jest to zadeklarowanie parametru o nazwie takiej samej, jak zmienna globalna (w ogólności - zmienna zadeklarowana w bloku nadrzędnym) wystąpi wówczas efekt przysłaniania, tj. wszelkie odwołania wewnątrz funkcji korzystającej z parametru będą odnosiły się do niego, a nie do przysłoniętej zmiennej globalnej 100 100 3
Podstawy programowania Procedury i funkcje cz. 2 Parametry formalne i aktualne Przekazywanie parametrów przez wartość i przez zmienną 4
Procedury z parametrami Parametry formalne i aktualne 1. Parametry formalne a) deklarowane są w nagłówku funkcji (procedury) b) są to identyfikatory (nazwy) symbolizujące dane przekazywane do funkcji; 2. Parametry aktualne a) rzeczywiste wartości zmiennych, stałych i wyrażeń podstawiane podczas wywołania w miejsce parametrów formalnych Parametry formalne opisują jedynie postać informacji przekazywanej do funkcji (procedury); Rzeczywistą informację niosą ze sobą dopiero parametry aktualne. 5
Przekazywanie parametrów Poniższa procedura zamienia ze sobą zawartość zmiennych x i y Procedura po wywołaniu, rezerwuje 3 komórki pamięci o nazwach: x, y, temp 6
Przekazywanie parametrów Program główny wywołuje procedurę z parametrami a i b Program rezerwuje 2 komórki pamięci o nazwach: a, b 7
Przekazywanie parametrów Co będzie się działo w tych trzech komórkach pamięci (x, y, temp), gdy wywołamy procedurę? wejście do procedury temp := x x := y ; y := temp; Wszystko wygląda prawidłowo, jednak ta procedura tak naprawdę nic nie robi! 8
Przekazywanie parametrów W tej wersji procedury zastosowano inny sposób przekazywania parametrów: Tym razem zmienne lokalne x, y zostaną powiązane ze zmiennymi, które procedura otrzyma w trakcie jej wywołania. 9
IV Procedury i funkcje Przekazywanie parametrów Co będzie się działo w tych trzech komórkach pamięci (x, y, temp), gdy wywołamy procedurę? wejście do procedury temp := x x := y ; y := temp; 10
Przekazywanie parametrów Po zakończeniu procedury zmienne lokalne x,y,temp znikają, lecz powiązane z nimi zmienne a i b mają już nową wartość. Po wykonaniu procedury Metoda ta pozwala na przekazywanie wyniku z wnętrza procedury do programu ją wywołującego 11
Przekazywanie parametrów (przez zmienną i wartość) W Pascalu istnieją dwie metody przekazywanie parametrów do funkcji i procedur. Pierwszą jest metoda przekazywania zmiennych przez wartość Przekażemy tylko wartość. Funkcja czy procedura tworzy własną kopię i na niej operuje, nie zmieniając oryginalnej wartości parametru. procedure przyklad(x: integer); Przekazywanie parametrów przez zmienną pozwala na zmianę wartości tak, aby zmiana była widoczna po zakończeniu procedury. Daje procedurze dostęp do zmiennych programu wywołującego. Po powrocie do głównego programu zmienna będzie posiadała już nową wartość. procedure przyklad(var X: integer); 12
Przekazywanie parametrów Przez wartość Przez zmienną a=1; b=2 a=2; b=1 13
Przekazywanie parametrów (przez zmienną i wartość) Kiedy stosować przekazywanie parametrów przez wartość, a kiedy przez adres? Przekazywanie przez wartość używane jest w "komunikacji jednokierunkowej Jeżeli zachodzi potrzeba przekazania wartości z powrotem do wywołującego, konieczne jest użycie przekazywania przez zmienną. Przekazywanie przez zmienną stosuje się również dla argumentów o większych rozmiarach (np. tablic, łańcuchów i innych zmiennych strukturalnych) 14
Literatura: W prezentacji wykorzystano przykłady i fragmenty: Piotr Fulmański, Ścibór Sobieski, Wstęp do informatyki, Podręcznik, Wydawnictwo Uniwersytetu Łódzkiego, 2005. http://www.inf.sgsp.edu.pl/ http://deuter.am.put.poznan.pl/zwm/ R. Jarża, Turbo Pascal. Szkoła programowania, Wydawnictwo Robomatic 2000. (dostępne w bibliotece uczelni) J. Bishop, Turbo Pascal, Wydawnictwo RM, Warszawa 1999. T. M. Sadowski, Turbo Pascal. Programowanie, Helion 1996. 15 dr Artur Bartoszewski - Nowoczesne technologie informatyczne - WYKŁAD