To tylko jedna z 8 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Funkcja → wysoce niezaleŜny blok definicji i instrukcji programu (podprogram)
KaŜdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję
o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje się równieŜ wiele
innych predefiniowanych funkcji np. printf(...), scanf(...), abs(...), sin(...), itp.
MoŜna równieŜ definiować nowe−własne funkcje.
Składnia definicji funkcji:
zwracany_typ NAZWA_FUNKCJI ( lista parametrów )
{
instrukcja lub sekwencja instrukcji ;
}
przykład:
int MAX ( int liczba_1 , int liczba_2 )
{
if( liczba_1 liczba_2 )
return liczba_1 ;
else
return liczba_2 ;
}
⇒
lista parametrów moŜe być pusta
lub zawierać opisy kolejnych parametrów (pooddzielane przecinkami):
main( )
⇒
main( void )
main( int argc , char∗ argv[ ] )
parametry definiowane są tak jak zmienne.
Uwaga: nie moŜna grupować sekwencji parametrów tego samego typu:
← źle !
int MAX ( int liczba_1, liczba_2, liczba_3 )
⇒
„ciało” funkcji jest zawarte pomiędzy nawiasami: { ... }
(bez średnika na końcu)
⇒
działanie funkcji kończy się po napotkaniu polecenia return
lub po wykonaniu sekwencji wszystkich instrukcji zawartych w ciele funkcji,
⇒
jeŜeli funkcja jest typu void, to uŜywamy samego słowa return,
bez Ŝadnego wyraŜenia po nim,
⇒
jeŜeli funkcja jest typu innego niŜ void to po poleceniu return musi się pojawić
wyraŜenie odpowiedniego typu (moŜe być w nawiasach), np.:
return liczba_1;
M.Piasecki: JĘZYKI PROGRAMOWANIA 1
lub
−1−
return( liczba_1 ) ;
(W6) Definiowanie własnych funkcji
1) program bez pod-funkcji
2) funkcje bezparametrowe
3) funkcje z jawnymi parmetrami
#include
#include
#include
int a,b,c,suma;
float srednia;
int a,b,c,suma;
float srednia;
void main(void)
{
void WCZYTAJ(void)
{
coutabc;
}
void WCZYTAJ(int& x, int& y, int&z)
{
coutxyz;
}
//--- wczytaj dane --coutabc;
//--- policz wartości --suma = a+b+c;
srednia = suma/3.0;
//--- wyświetl wyniki --cout
(…)
… C++ parametry mogą być przekazywane przez wartość lub przez referencję
Typ referencyjny →
zmienne tego typu nie zajmują nowego miejsca w pamięci,
słuŜą do reprezentacji innych zmiennych w programie.
nazwa_typu nazwa_zmiennej;
←
utworzenie zwykłej zmiennej
nazwa_typu & nazwa_zmiennej_referencyjnej = nazwa_zmiennej;
(jest to zdefiniowanie aliasu − innej nazwy dla tej samej zmiennej)
przykład
int wzrost;
int sredni_wzrost = wzrost;
int& wysokosc = wzrost;
wysokosc = wysokosc + 1;
// utworzenie zmiennej referencyjnej
// związanej z tym samym obszarem
// pamięci co wzrost
// równowaŜne: wzrost = wzrost + 1
przykład e)
void posortuj_3 ( double & a, double & b )
{
double buf;
// przekazywanie parametrów
if( a > b)
// przez referencję
{
buf = a;
// a i b są referencyjnymi nazwami x i y
a = b;
b = buf…
…( &i , 0, sizeof( i ) );
memset( &i , 1, sizeof( i ) );
memset( tab , 0, sizeof( tab ) );
// równowaŜne: i = 0
// równowaŜne: i = 257 = 1∗256 + 1
// wypełnienie tablicy zerami
void ∗memcpy ( void ∗wsk_dokąd, void ∗wsk_skąd, size_t dlugosc )
( „memory copy” → skopiowanie dlugosc bajtów spod adresu wsk skąd pod adres wsk dokąd)
np.
int i, j=10, tab1[1000], tab2[1000];
memcpy( &i , &j, sizeof( i ) );
memcpy…
... zobacz całą notatkę
Komentarze użytkowników (0)