Funkcje w Turbo Pascalu.doc

(44 KB) Pobierz
Funkcje w Turbo Pascalu

 

 

Funkcje w Turbo Pascalu

 

Funkcje. Są bardzo przydatnymi podprogramami, które mogą nas wybawić od wklepywania wielokrotnie w różnych miejscach naszego programu tego samego kodu źródłowego. Są to programiki, które mogą zrobić wszystko co zechcemy. Poniżej podaję, parę przykładów.

Funkcje to nic innego jak rozszerzone procedury. Funkcje w przeciwieństwie do procedur zwracają wartości, wyjście z funkcji QWQ odbywa się poprzez podstawienie w jej kodzie QWQ:=zwraca_wartosc;

 

function QWQ (A, B : Integer; C: Real) : Integer;

a jej wywołanie wygląda następująco:

 

wynik:=QWQ(A,B,C);

 

Program do obliczania największego wspólnego dzielnika:

 

program NWD;

var

  A, B : Integer;

 

function NWD (A, B : Integer) : Integer;

{ Funkcja oblicza najwiekszy wspolny podzielnik liczb }

{ A i B.                                              }

var

  Pom : Integer;

begin

  while (A<>B) do

  begin

    if A < B then

    begin

      Pom := A; A := B; B := Pom;

    end;

    A := A - B;

  end;

  NWD := A;

end;  {-------------------------- NWD -}

 

begin

  write ('Podaj A: '); readln (A);

  write ('Podaj B: '); readln (B);

  write ('NWD (', A, ', ',', B, ') ')= ')=', NWD (A, B));

  readln;

end.

 

Następnym przykładem nich będzie sposób obliczania potęgi(naturalnej) liczby całkowitej:

 

 

program potega_rekurencja;

var

  A : Integer;

  N : Byte;

 

function PotegaCalkowita (A: Integer; N : Byte) : Integer;

{ Funkcja oblicza N-ta potege liczby A, dla calkowitego A }

{ i naturalnego N.                                        }

begin

  if N=0 then

    PotegaCalkowita := 1

  else

    if (N mod 2 = 0) then

      PotegaCalkowita := Sqr (PotegaCalkowita (A, N div 2))

    else

      PotegaCalkowita := A * Sqr (PotegaCalkowita (A, N div 2))

end; {----------------------------------- PotegaCalowita -}

 

begin

  write ('Podaj liczbe: '); readln (A);

  write ('Podaj wykladnik: '); readln (N);

  writeln (A, '^', N, ' = ', PotegaCalkowita (A, N));

  readln;

end.

 

 

 

 

 

Standardowe Funkcje

Wywołanie funkcji

Typ argumentu

 

Typ wyniku

Wartość funkcji

Abs(x)

Integer, Real

ten sam co argument

wartość bezwzględna x

Arctan(x)

Integer, Real

Real

arcus tangens

Chr(x)

Integer

Char

znak o liczbie porządkowej x jako Char

Cos(x)

Integer, Real

Real

cosinus

Eof(f)

Plikowy

Boolean

True gdy wskaźnik pliku ustawiony jest na znak końca pliku, False gdy nie

Eoln(f)

Plik tekstowy

Boolean

True jeśli aktualnie dostępny element pliku f jest znakiem końca pliku, False gdy nie

Exp(x)

Integer, Real

Real

ex

Ln(x)

Integer, Real

Real

logarytm naturalny dla x >0

Odd(x)

Integer

Boolean

True dla x nieparzystych, False dla parzystych

Ord(x)

Porządkowy

Interger

liczba porządkowa argumentu

Pred(x)

Porządkowy

ten sam co argument

poprzedni argument(jeśli istnieje)

Round(x)

Real

Integer

wartość x zaokrąglona do najbliższej liczby Integer

Sin(x)

Integer, Real

Real

sinus

Sqr(x)

Integer, Real

ten sam co argument

kwadrat x

Sqrt(x)

Integer, Real

ten sam co argument

pierwiastek kwadratowy dla x>0

Succ(x)

Porządkowy

ten sam co argument

następny argument(jeśli istnieje)

Trunc(x)

Real

Integer

wartość argumentu odcięta do liczby całkowitej
alternatywne wyjścia to:
Round(x)=Trunc(x+0.5) dla x>0
Round(x)=Trunc(x-0.5) dla x<0

 

3

 

Zgłoś jeśli naruszono regulamin