Procedury i funkcje: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian
Nie podano opisu zmian
Linia 1: Linia 1:
Gdyby jakiś tyran zabronił stosowania procedur i funkcji, wówczas cała informatyka by padła. Są one tak ważnym narzędziem, że trudno sobie wyobrazić programowanie bez stosowania procedur i funkcji.
Procedury i funkcje stanowią podstawową konstrukcję programistyczną umożliwiającą modularyzację programu. Wiemy, że programy komputerowe mogą mieć dziesiątki, czy setki tysięcy wierszy kodu, więc zapanowanie nad tak potężnymi tekstami graniczyłoby z cudem. Konieczne staje się wyodrębnianie                fragmentów kodu, stanowiących logiczną całość i poprzez odpowiedzie nazywanie ich, doprowadzenie do tego, że czytając tekst programu nie będziemy wchodzili od razu w szczegóły implementacji, a  poprzez nazwę sugerującą rolę ukrytego fragmentu kodu będziemy się mogli zorientować, co spowoduje jego wykonanie.  
Procedury i funkcje stanowią podstawową konstrukcję programistyczną umożliwiającą modularyzację programu. Wiemy, że programy komputerowe mogą mieć dziesiątki, czy setki tysięcy wierszy kodu, więc zapanowanie nad tak potężnymi tekstami graniczyłoby z cudem. Konieczne staje się wyodrębnianie                fragmentów kodu, stanowiących logiczną całość i poprzez odpowiedzie nazywanie ich, doprowadzenie do tego, że czytając tekst programu nie będziemy wchodzili od razu w szczegóły implementacji, a  poprzez nazwę sugerującą rolę ukrytego fragmentu kodu będziemy się mogli zorientować, co spowoduje jego wykonanie.  


Linia 5: Linia 7:
Dodatkowo jeszcze zyskujemy możliwość rekurencyjnego definiowania kodu, gdy potrafimy wyrazić rozwiązanie w zależności od innych wartości zmiennych, które są parametrami. Przykładowo w zadaniach o największym wspólnym dzielniku mieliśmy możliwość zdefiniowania wartości (a,b) w zależności od mniejszych wartości argumentów.  
Dodatkowo jeszcze zyskujemy możliwość rekurencyjnego definiowania kodu, gdy potrafimy wyrazić rozwiązanie w zależności od innych wartości zmiennych, które są parametrami. Przykładowo w zadaniach o największym wspólnym dzielniku mieliśmy możliwość zdefiniowania wartości (a,b) w zależności od mniejszych wartości argumentów.  


Procedury
Procedury zatem są mechanizmem 'abstrakcji', umożliwiającym wyodrębnienie fragmentów kodu i użycie ich na zasadzie 'czarnych skrzynek'. Funkcja, to procedura, która poza wykonaniem kodu oblicza pewną wartość - wynik funkcji - nadawany w trakcie wykonania jej identyfikatorowi, tak jak zmiennej.
 
Składnia procedur jest podobna do składni całego programu. Najpierw mamy nagłówek, w którym określamy nazwę procedury oraz jej parametry, a następnie deklaracje i instrukcje. Deklaracje dotyczą zmiennych lokalnych dla procedury, niewidocznych z zewnątrz i zajmujących pamięć tylko w czasie wykonywania procedury. Część deklaracyjna jest identyczna jak w wypadku programu: mogą w niej być zdefiniowane stałe, typy, zmienne, procedury i funkcje.

Wersja z 12:39, 22 paź 2006

Gdyby jakiś tyran zabronił stosowania procedur i funkcji, wówczas cała informatyka by padła. Są one tak ważnym narzędziem, że trudno sobie wyobrazić programowanie bez stosowania procedur i funkcji.

Procedury i funkcje stanowią podstawową konstrukcję programistyczną umożliwiającą modularyzację programu. Wiemy, że programy komputerowe mogą mieć dziesiątki, czy setki tysięcy wierszy kodu, więc zapanowanie nad tak potężnymi tekstami graniczyłoby z cudem. Konieczne staje się wyodrębnianie fragmentów kodu, stanowiących logiczną całość i poprzez odpowiedzie nazywanie ich, doprowadzenie do tego, że czytając tekst programu nie będziemy wchodzili od razu w szczegóły implementacji, a poprzez nazwę sugerującą rolę ukrytego fragmentu kodu będziemy się mogli zorientować, co spowoduje jego wykonanie.

Poza tą fundamentalną cechą procedur, nie mniej ważną jest możliwość jednokrotnego zapisania ciągu rozkazów, który może yć wielokrotnie używany. Korzystaliśmy z tej możliwości np. już przy zadaniach o flagach: polskiej i holenderskiej. Napis Z(i,j) traktowaliśmy, jako skrót sekwencji zamieniającej zawartości pól i-tego i j-tego. Zauważmy, że nie tylko nazywamy pewne sekwencje rozkazów, ale umożliwiamy też parametryzację niektórych zmiennych. W tym przypadku kod zamiany dwóch elementów jest bardzo podobny, niezaleznie od tego, dla jakich indeksów dokonujemy zamiany.

Dodatkowo jeszcze zyskujemy możliwość rekurencyjnego definiowania kodu, gdy potrafimy wyrazić rozwiązanie w zależności od innych wartości zmiennych, które są parametrami. Przykładowo w zadaniach o największym wspólnym dzielniku mieliśmy możliwość zdefiniowania wartości (a,b) w zależności od mniejszych wartości argumentów.

Procedury zatem są mechanizmem 'abstrakcji', umożliwiającym wyodrębnienie fragmentów kodu i użycie ich na zasadzie 'czarnych skrzynek'. Funkcja, to procedura, która poza wykonaniem kodu oblicza pewną wartość - wynik funkcji - nadawany w trakcie wykonania jej identyfikatorowi, tak jak zmiennej.

Składnia procedur jest podobna do składni całego programu. Najpierw mamy nagłówek, w którym określamy nazwę procedury oraz jej parametry, a następnie deklaracje i instrukcje. Deklaracje dotyczą zmiennych lokalnych dla procedury, niewidocznych z zewnątrz i zajmujących pamięć tylko w czasie wykonywania procedury. Część deklaracyjna jest identyczna jak w wypadku programu: mogą w niej być zdefiniowane stałe, typy, zmienne, procedury i funkcje.