Funkcje w C++(1), INFORMATYKA


Funkcje w C++

Składnia definicji funkcji:

typ_wyniku nazwa_funkcji (zestaw parametrów formalnych)

{

wnętrze funkcji;

}

Zestaw parametrów formalnych to nazwy obiektów przekazywanych do funkcji wraz z podaniem ich typów, oddzielone przecinkami, występujące w definicji funkcji.

Definicja funkcji obliczającej średnią arytmatyczną dwóch liczb rzeczywistych:

float srednia(float a, float b) //typ_wyniku nazwa( parametry)

{

return (a+b)/2; //wynik funkcji - srednia dwóch liczb

}

Pojawienie się jakiejkolwiek insrukcji return powoduje zakończenie działania funkcji i przejście do kolejnego etapu programu (najczęściej powrót do funcji main).

Jeśli powstanie zapis return zmienna to funkcja zakończy działanie i dodatkowo przyjmie wartość równą zmiennej. A więc zdefiniowana powyżej funkcja pobiera dwie liczby rzeczywiste przekazane do niej jako parametry formalne (aktualne) i otrzymuje wartość rzeczywistą jaką jest ich średnia arytmatyczna ,dzięki zapisowi return (a+b)/2 .

Typ wyniku w definicji funkcji musi być zgody z typem wartości jaki przyjmuje funkcja w momencie pojawienia się słowa return.

Wykorzystanie funkcji srednia, z wartościami podanymi jako parametry ,w programie:

#include<iostream>

#include<cstdio>

using namespace std;

float srednia(float a, float b) //definicja funkcji-zawsze przed pierwszym jej użyciem

{

return (a+b)/2;

}

int main()

{

cout<<”Średnia arytmatyczna liczb 2.5 i 5 jest równa:”<<endl;

cout<<srednia(2.5,5); //wywołanie funkcji srednia z argumentami(wartościami)

return 0;

}

Wykorzystanie funkcji srednia ,ze zmiennymi podanymi jako parametry, w programie:

int main()

{

float x,y; //zmienne lokalne funkcji main

cout<<”Podaj dwie liczby:”;

cin>>x>>y;

cout<<”Średnia arytmatyczna tych liczb jest równa:”<<endl;

cout<<srednia(x,y); //wywołanie funkcji srednia ze zmiennymi

return 0;

}

Zmienne lokalne funkcji - zmienne zadleklarowane we wnętrzu funkcji. Są one znane wewnątrz funkcji od momentu deklaracji aż do zamknięcia klamry funkcji.

Zmienne globalne - zmienne deklarowane poza funkcjami, dostępne dla wszystkich funkcji zdefiniowanych pod nimi.

using namespace std;

float a,b; //zmienne globalne

float srednia()

{

return (a+b)/2; //funkcja srednia ma dostęp do zmiennych a i b

}

int main()

{

cout<<”Podaj dwie liczby”<<endl;

cin>>a>>b; //funkcja main ma dostęp do zmiennyh a i b

cout<<”Średnia tych liczb wynosi:”<<srednia();

return 0;

}

Zamiana miejscami dwóch liczb:

Aby zamienić miejscami dwie liczby potrzebna jest zmienna pomocnicza:

int pomoc,a,b;

pomoc=a; //przypisanie zmiennej pomocniczej wartości a

a=b; //zmienna a przyjmuje wartość zmiennej b

b=pomoc; //zmienna b przyjmuje wartość zmiennej pomocniczej czyli wartość a

Zamień miejscami liczby a=3 i b=2:

pomoc=3;

a=2;

b=3;

Funkcje typu void:

Słowo void oznacz typ pusty. Funkcje typu void nie zwracają żadnej wartości a więc nie występuje w nich słowo return.

Funkcja rysująca szlaczek o podanej ,jako argument ,długości ze znaków „-„:

void szlaczek (int dlugosc)

{

for ( int i = 0; i<dlugosc; i++)

cout<<”-”;

}

Wywołanie w programie:

int main()

{ int k;

cout<<”rysuje szlaczek o dlugości 5:”<<szlaczek(5);

cout<<”rysuje szlaczek o długości podanej z klawiatury:”<<endl;

cout<<”podaj długość:”;

cin>>k;

cout<<”szlaczek:”<<szlaczek(k);

}

Przekazywanie argumentów funkcji przez wartość:

void zmien(int a)

{

a=a+3;

cout<<”wewnątrz funkcji zmienna a ma wartość:”<<a<<endl;

}

int main()

{

int a=3; //zmienna a przyjmuje wartość 3

cout<<”Przed wywołaniem funkcji zmienna ma wartość:”<<a<<endl;

zmien(a); //wywołanie funkcji zmien

cout<<”Po wyjściu z funkcji zmienna ma wartość:”<<a<<endl;

return 0;

}

Wynik:

Przed wywołaniem funkcji zmienna ma wartość:3

wewnątrz funkcji zmienna a ma wartość:6

Po wyjściu z funkcji zmienna ma wartość:3

Ponieważ: W momencie wywołania funkcji tworzona zostaje zmienna lokalna, do której kopiowana jest nowa wartość (czyli a=a+3). Po zakończeniu działania funkcji zmienna ta przestaje istnieć i odwołanie następuje do pierwotnej zmiennej (czyli a=3).

Przekazywanie argumentów funkcji przez referencje:

Aby zmiany zostały zachowane nawet po wyjściu z funkcji należy przy argumencie w funkcji postawić znaczek &.Dzięki niemu odwołujemy się do adresu w pamięci gdzie znajduje się zmienna lokalna utworzona w momencie wywołania funkcji.

void zmien(int &a)

{a=a+3;

cout<<”wewnątrz funkcji zmienna a ma wartość:”<<a<<endl;

}

int main()

{int a=3;

cout<<”Przed wywołaniem funkcji zmienna ma wartość:”<<a<<endl;

zmien(a);

cout<<”Po wyjściu z funkcji zmienna ma wartość:”<<a<<endl;

return 0;

}

Wynik:

Przed wywołaniem funkcji zmienna ma wartość:3

wewnątrz funkcji zmienna a ma wartość:6

Po wyjściu z funkcji zmienna ma wartość:6

Zadania:

Napisz funkcję:

  1. której argumentami są liczby oznaczające długość, szerokość i wysokość prostopadłośćianu a wynikiem jest pole powierzchni bocznej.

  2. której argumentami są dwie liczby rzeczywiste a wynikiem najmniejsza z nich

  3. której argumentami są trzy liczby rzeczywiste a wynikiem najmniejsza z nich

  4. której argumentami są trzy liczby rzeczywiste a wynikiem ich mediana( czyli środkowa wartość, np.1,2,3 mediana=2 lub 3,2, 1 mediana=2)

  5. potęga, która oblicza potęgę danej liczby (podane jako argumenty funkcji) metodą podnoszenia do kwadratu (2*2=22, 2*22=23, itp.)

  6. która dla zadanych liczb rzeczywistych a,b,c zwraca -1 jeśłi nie mogą one być długościami boków trójkąta lub pole trójkąta o bokach a,b,c( ze sprawdzeniem warunku trójkąta i korzystając ze wzoru Herona).

  7. która ma trzy parametry formalne a,b,c będące liczbami całkowitymi. Wartością funkcji jest liczba 1 gdy zadane liczby są liczbami pitagorejskimi(spałniają warunek a2+b2=c2 np. 32+42=52)

  8. która sortuje dwie liczby rzeczwiste a,b i wyświetla je w sposób rosnący.

  9. która sortuje trzy liczby rzeczywiste a,b,c i wyświetla je w sposób rosnący-Sortowanie bąbelkowe. Wykorzystaj funkcje z poprzedniego zadania w celu posortowania kolenych par liczb(a i b,b i c, a i c)

  10. która wczytuje trzy liczby rzeczywiste i zwraca wartośc true gdy są one dodatnie oraz wartośc false w przeciwnym wypadku.

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Funkcje Informacyjne Komputera Pokładowego Vectra B [D], Motoryzacja
Funkcje Informacyjne Komputera Pokładowego Vectra B [ENG], Motoryzacja
Funkcje, Informatyka HELP
Funkcje 1, Informatyka
Funkcje 2, Informatyka
opis funkcje c++, Informatyka, C++
W 2 Granica i ciągłość funkcji, Informatyka ns 2009-2013, Semestr I, Analiza Matematyczna
Klasyfikacja oprogramowania ze względu na jego funkcje, edukacja i nauka, Informatyka
13a funkcje zarzadzania w aspekcie zasobów inf, Procesy informacyjne w zarządzaniu, materiały studen
Funkcjonalny Życiorys-przykł, ► Różne, » Informatyczne, Szablony Offica
Funkcje mat i operatory, Elektronika i Telekomunikacja, informatyka
04 Funkcje, wisisz, wydzial informatyki, studia zaoczne inzynierskie, jezyk java
C & C++ Wyklady Politechnika Wroclawska 1 rok informatyki, W10 wskazniki na tablice wielowymiarowe i
C & C++ Wyklady Politechnika Wroclawska 1 rok informatyki, W07 lancuchy, Funkcje operujace na pamięc
Podstawy informatyki, C++1, Przeładowanie nazw funkcji
funkcjonowania kancelarii tajnych oraz sposobu i trybu przetwarzania informacji niejawnych
Sem II Transport, Podstawy Informatyki Wykład XIV i XV Object Pascal Funkcje i procedury

więcej podobnych podstron