Cpp 10 Funkcje, Programowanie, instrukcje - teoria


FUNKCJE

0x08 graphic

0x08 graphic
0x01 graphic

Funkcja zdefiniowana przed funkcją main() nie wymaga odrębnej deklaracji.

Przekazywanie danych do funkcji

Przez wartość

0x08 graphic
0x01 graphic

Przez referencję (&x oznacza: adres zmennej x)

0x08 graphic

Parametry domyślne (domniemane)

Funkcja może mieć wiele parametrów różnych typów. Ostatnie występujące na liście parametrów w deklaracji mogą być ustawione jako domyślne.

0x08 graphic

Wywołanie

tylko z wszystkimi parametrami: z wszystkimi parametrami:

x = suma(j, k, l, m, n); x = suma(p, q, r, s, t);

lub tylko z początkowymi dwoma, trzema, czterema:

x = suma(p, q);

x = suma(p, q, r);

x = suma(p, q, r, s);

Wartości domniemane wykorzystać można tylko jako ostatnie z listy parametrów.

Niedopuszczalne jest pominięcie w wywołaniu elementu "środkowego", np.:

x = suma(p, q, , s, t); // niepoprawne podanie argumentów

Funkcje przeciążone (przeładowane, ang. overloaded)

Przeciążenie funkcji to definiowanie funkcji o identycznych nazwach, ale innych argumentach.

0x08 graphic
0x01 graphic

Przykłady deklaracji funkcji przeciążonych:

int fun_1( int, float );

int fun_1( int, int );

int fun_1( float, int );

int fun_1( float, float );

int fun_2( int );

float fun_2( int, int );

char fun_2( int, int, int );

Różnorodność typów funkcji nie wystarcza do budowania funkcji przeciążonych.

Przykład błędnej deklaracji funkcji:

int fun_x( int, float );

float fun_x( int, float );

0x08 graphic

p - parametr formalny. Na przykładzie p opisuje się sposób wykorzystania parametru przy wykonaniu funkcji.

W chwili wywołania funkcji w miejsce p trafia kopia wartości parametru aktualnego.

Kopię można bezkarnie zmienić.

Parametr aktualny nie ulegnie zmianie w realizacji funkcji. Może być stałą, zmienną lub wyrażeniem.

Przykłady parametrów aktualnych:

5.3

a

a/sqrt(2)

int fun (float &q)

{

q = q+1;

wyn = sqrt ( q / 2 ) ;

return wyn;

}

main ()

{

a=3;

y = fun (a);

cout << a ;

}

int fun (float p)

{ ...

p = p+1;

return wyn;

}

main ()

{ ...

x = fun (5.3);

y = fun (a);

z = fun (a/sqrt(2));

}

Tworząc funkcje przeciążone należy szczególnie uważnie wykorzystywać parametry domyślne.

Przykład błędnych deklaracji funkcji:

int fun_y( int a, int b = 0);

int fun_y( int a);

Wywołanie:

z = fun_y(p);

pozostawia wątpliwość co do tego, która wersja funkcji ma być wywołana.

dwie deklaracje funkcji o różnych argumentach

i różnych treściach

void zamiana( int &a, int &b )

{

int c = a ;

a = b ;

b = c ;

}

void zamiana( double &a, double &b )

{

double c = a ;

a = b ;

b = c ;

}

void main( )

{

int m = 3, n = 6 ;

zamiana (m, n);

double x = 3.5, y = 6.7 ;

zamiana(x, y);

. . .

}

int suma(int a, int b, int c=0, int d=0, int e=0 )

{

wyn = a+b+c+d+e;

return wyn;

}

int suma(int a, int b, int c, int d, int e )

{

wyn = a+b+c+d+e;

return wyn;

}

q - parametr formalny. Na przykładzie q opisuje się sposób wykorzystania parametru przy wykonaniu funkcji.

W chwili wywołania funkcji w miejsce q trafia adres zmiennej, która może ulec zmianie w przebiegu funkcji.

Działanie na zmiennej q oznacza naprawdę działanie na parametrze aktualnym.

Parametrem aktualnym może być tylko zmienna.

W podanym przykładzie wartość zmiennej a po wywołaniu funkcji wynosi 4 i taka będzie dla programu.

dyrektywy włączenia plików nagłówkowych

deklaracja zmiennej globalnej

deklaracja funkcji funk_a z parametrami

definicja funkcji funk_b(x, y) // konieczna deklaracja

// typu argumentów

zwrócenie wyniku przez funkcję funk_b

funkcja główna main()

wywołanie funkcji funk_a z parametrami

wywołanie funkcji funk_b z parametrami

definicja funkcji funk_a(k, s)

zwrócenie wyniku przez funkcję funk_a

#include <plik.h>

float q = 7.65;

int funk_a (int, float);

float funk_b (float x,float y)

{

...

return wynik_b;

}

void main()

{ ...

int y = funk_a (p, 1.23);

float c =funk_b (1.3, 2.5);

...

}

int funk_a(int k, float s)

{

...

return wynik_a;

}



Wyszukiwarka

Podobne podstrony:
JS 11 Funkcje, Programowanie, instrukcje - teoria
JS 06 Funkcje matematyczne, Programowanie, instrukcje - teoria
JS 10 Instrukcja for, Programowanie, instrukcje - teoria
JS 06 Funkcje matematyczne, Programowanie, instrukcje - teoria
JS 15 Metody w JavaScript, Programowanie, instrukcje - teoria
JS 05 Operatory Logiczne, Programowanie, instrukcje - teoria
JS 09 Instrukcja switch, Programowanie, instrukcje - teoria
JS 03 Zmienne i Typy, Programowanie, instrukcje - teoria
JS 07 Sterowanie przebiegiem programu, Programowanie, instrukcje - teoria
JS 13 Interfejs użytkownika, Programowanie, instrukcje - teoria
JS 02 Podstawowe okienka, Programowanie, instrukcje - teoria
JS 01 Umieszczanie skryptu, Programowanie, instrukcje - teoria
JS 04 Operatory Artytmetyczne i Relacji, Programowanie, instrukcje - teoria
JS 08 Instrukcje while i do, Programowanie, instrukcje - teoria
JS 12 Tablice, Programowanie, instrukcje - teoria
23 - Funkcje, Programowanie, Klasa III
programowanie liniowe teoria
Program instruktażu ogólnego, BHP, Szkolenie
10 Funkcje wielu zmiennych

więcej podobnych podstron