40 (416)

40 (416)



Parametry (czyli dane przekazane do funkcji) są widoczne wewnątrz niej pod odpowiednimi nazwami (takimi, jakie zadeklarowaliśmy w nagłówku funkcji) i można na nich operować, tak jak na zmiennych danego typu.

Do funkcji odwołujemy się poprzez jej nazwę i dane (czyli parametry aktualne) podane w nawiasach i oddzielone przecinkami.

C ■ I C Z E

3.47


Funkcja obliczająca silnię

Napisz funkcję obliczającą silnię liczby i program sprawdzający jej dziatanie.

Posłużymy się tekstem programu z ćwiczenia 3.37 (czyli rozwiązaniem iteracyjnym).

program cw3_47;

{ Program oblicza N! za pomocą funkcji Silnia. }

{ Katalog r3_10 : 3_47.pas    }

var

N : Byte;

function Silnia (N : Byte) : Longint;

{ Funkcja oblicza silnie liczby N. } var

I    : Byte;

Wartość ; Longint;

begin

Wartość 1; for I :- 1 to N do

Wartość Wartość * I;

Silnia Wartość;

end; {-------------------- Silnia -} begin

Write ('Podaj liczbę: '); Readln (N); Writeln (N. '! - Silnia(N)); Readln; end.

Jak widać, do napisanej już funkcji możemy się odwołać tak, jak do standardowej. Komentarz po słowie end funkcji (ten z jej nazwą) wstawiłem tylko po to, żeby optycznie funkcję wyróżnić — pomaga to w poruszaniu się po tekstach większych programów. To moja metoda. Możesz ją przejąć, jeśli metodę uznasz za pomocną, ale nic się nie stanie, jeżeli ją zignorujesz.

Pojawia się pytanie: dlaczego w funkcji Silnia deklarujemy dodatkową zmienną Wartość, a nie posługujemy się Silnia, tak jak wcześniej? To jeden z często popełnianych przez początkujących błędów. Co oznaczałby zapis Silnia := Silnia * I w pętli for? Silnia już nie jest zmienną, jest funkcją, która ma swoje parametry. Taki więc zapis nie ma sensu. Jeżeli odwołujemy się do Silnia, odwołujemy się do funkcji [de facto znowu zaczynamy liczyć jej wartość), musimy więc podać jej parametry. Czyli na przykład można by zapisać Silnia (5) * I. A to już nie ma sensu. Dlatego tworzymy dodatkową zmienną, która przechowuje obliczenia, a na koniec nadajemy za jej pomocą wartość funkcji. Niebawem poznasz możliwość użycia funkcji w niej samej (czy przypomniało Ci się pojęcie rekuren-cji? — jak tak, to dobrze). Odbędzie się to jednak w innym kontekście i w inny sposób.


Wyszukiwarka

Podobne podstrony:
22345 str4 Mnożąc te wartości (z wyjątkiem kąta t) przez parametr otrzymamy dane potrzebne do wyzna
SDC11640 Funkcje - przekazywanie tablic W C nie można przekazać do funkcji całej tablicy. Do funkcji
PwTiR030 58 Rozdział 2 podkreślić istnienie domniemania prawnego, że dane wpisane do KRS są prawdziw
71 2 •    własne, które podczas realizacji oraz po przekazaniu do używania są wyłączn
Parametr Ts służy głównie do określania wielkości i kierunku odkształcenia kadłuba pod wpływem
ZESZYT DO KALIGRAFII 3 (04) Napisz imiona chłopców pod odpowiednimi rysunkami. Pokoloruj rysunki.Jan
PC050036 Wartość funkcji i parametr}- 0o funkcji dane przekazywane są przez parametry. Przeżyw infor
Image212 Programowanie ■ W C parametry do funkcji przekazywane są przez wartość. Oznacza to, że
WENTYLACJA i KLIMATYZACJA okretowa2 powietrza zewnętrznego, czyli na wlocie do nagrzewnicy wstępnej
cz5 4 Programowanie Programowanie Rys. 26 przebieg obliczeń w funkcji LCDsendHalf. W C parametry do

więcej podobnych podstron