#include <iostream> using namespace std; Prototypy funkcji Funkcja 1 void ela(int); double info (double); int main( ); return 0; Funkcja 2 void ela(int); Funkcja 3 double info(double); return 4*t; jeszcze raz o budowie funkcji: cos1 nazwa (cos 2, cos3); Typ wartość funkcji parametry (argumenty) wraz z typem
Typ wartości funkcji, oznacza jaki typ można przypisać do wyniku funkcji. Funkcja może nie zwracać żadnego typu, wtedy jej typem jest void. Do zwracania danej wartości przez funkcję odpowiada słowo kluczowe return. Nazwa służy do identyfikowania funkcji w programie. Argumenty określają, jakiego typu zmienne należy przekazać do funkcji przy jej wywoływaniu. Argumenty funkcji mogą przyjmować wartości domyślne. Należy w takim przypadku po nazwie argumentu dodać znak równości i wartość domyślną. Ciało funkcji jest to kod, który zostanie wykonany po wywołaniu funkcji. Wywoływanie funkcji Aby wywołać w programie zadeklarowaną wcześniej funkcję, należy wpisać w odpowiednim miejscu jej nazwę, a w nawiasach okrągłych argumenty tej funkcji. Wywoływana funkcja musi zawsze być zadeklarowana przed miejscem, gdzie została wywołana. Można przed wywołaniem funkcji napisać tylko jej deklarację, zaś definicję (ciało) w dowolnym miejscu programu. Przykłady 1. Funkcja nie zwracająca wyniku, nie przyjmująca argumentów (typu void): void elo() cout << "tekst\n"; 2. Funkcja nie zwracająca wyniku, przyjmująca parametr bez wartości domyślnych: void eloo(char tekst) cout << tekst; 3. Funkcje zwracająca wynik, przyjmująca parametry bez wartości domyślnych:
int eloo(int a, int b) int eloo2(int a, int b) int c = a + b; return c; 4. Funkcja zwracająca wynik, przyjmująca parametry z wartością domyślną: int foo(int a, int b = 0) Ciekawostka Funkcje inline to mechanizm występujący w C++. Polega on na tym, że funkcja nie jest wywoływana, tylko jej zawartość jest "wklejana" w określone miejsce programu. Jest to korzystne dla bardzo małych funkcji - objętość kodu zwiększa się, ale zaoszczędza się czas związany z wywołaniem funkcji. inline int dodaj(int a, int b) Trzeba umieć 1. Jak nazywają się moduły, z których zbudowane są programy w C++? Są to funkcje 2. Co oznacza dyrektywa preprocesora # include <iostream> Deklaracja bibliotek (czyli plików nagłówkowych) biblioteka iostream zawiera definicje strumieni wejścia cin i wyjścia cout 3. Co robi poniższa instrukcja? using namespace std; Udostępnia programowi definicje znajdujące się w przestrzeni nazw std 4. Jakich instrukcji trzeba użyć, aby wypisać witajcie w innej bajce i przejść do nowego wiersza? cout << witajcie w innej bajce <<endl; lub cout << witajcie w innej bajce\n ; 5. Za pomocą jakiej instrukcji można stworzyć całkowitoliczbową zmienną sery? int sery; 6. Jaka instrukcja spowoduje przypisanie zmiennej sery wartości 32? sery=32; 7. Jaka instrukcja spowoduje odczytanie z klawiatury wartości zmiennej sery?
cin>>sery 8. Jakimi instrukcjami można wypisać zdanie Mamy X odmian sera", gdzie X zastępowane jest przez aktualną wartość zmiennej sery? cout<< Mamy <<sery<< odmian sera\n ; 9. Co poniższe prototypy mówią o reprezentowanych funkcjach? int troop (double t);zwraca wartość int jest wywołana z jednym argumentem typu double void rattle(int n); nie ma typu zwracanego i oczekuje argumentu typu int int prune(void);zwraca wartość typu int i nie pobiera żadnych argumentów 10. Kiedy w definicji funkcji trzeba użyć słowa kluczowego return? Instrukcji return nie trzeba używać gdy typem zwracanym void, można jednak napisać dla szpanu tak: return; 11. Załóżmy, że w funkcji main ( ) występuje taki wiersz: cout «"Podaj swój PIN: "; a kompilator zgłasza, że cout jest nieznanym identyfikatorem. Jaka jest prawdopodobna przyczyna błędu kompilacji i jak można ją wyeliminować? Prawdopodobnie Kuba nie włączył do programu nagłówka iostream, lub brak jest dyrektywy using, która wciągnęłaby nazwę cout do bieżącegozasięgu. Sprawdź czy potrafisz 1 Napisz program C++ wypisujący nazwisko i adres autora (nie musi być prawdziwe). 2. Napisz program w C++, który prosi o podanie odległości w milach morskich i zamienia ją na metry (jedna mila morska to 1852 metry). 3. Napisz program w C++ wykorzystujący trzy funkcje (jedną z nich będzie main ( ) ), dający następujące wyniki: Entliczek pentliczek Entliczek pentliczek Czerwony stoliczek Czerwony stoliczek Pierwsze dwa wiersze ma wygenerować pierwsza funkcja (wywołana dwukrotnie), następne dwa druga funkcja także wywołana dwukrotnie. 4. Napisz program, który prosi użytkownika o wprowadzenie wieku, a następnie wyświetla wiek użytkownika wyrażony w miesiącach, jak tutaj: Podaj swój wiek: 29 Twój wiek w miesiącach wynosi 384. 5. Napisz program, w którym w funkcji mai n() zostanie wywołana funkcja użytkownika otrzymująca temperaturę w stopniach Celsjusza i zwracająca odpowiadającą jej temperaturęw skali Fahrenheita. Program ma poprosić użytkownika o podanie wartości z klawiatury i pokazać wynik jak poniżej: Podaj temperaturę w stopniach Celsjusza: 20 20 stopnie Celsjusza to 68 stopnie Farhrenheita. Zamianę temperatury przeprowadź zgodnie ze wzorem: Fahrenheit = 1,8 stopnie Celsjusza + 32,0
6. Napisz program, w którym funkcja main ( ) wywoła funkcję użytkownika pobierającą jako parametr odległość w latach świetlnych i zwracającą odległość w jednostkach astronomicznych. Program powinien prosić o liczbę lat świetlnych, odczytywać ją i przeliczać, a wynik pokazywać. Przykładowe wywołanie pokazano poniżej: Podaj liczbę lat świetlnych: 4.2 4.2 lat świetlnych = 265608 jednostek astronomicznych. Jednostka astronomiczna to średnia odległość od Ziemi do Słońca (około 150 000 000 km), a rok świetlny to odległość, jaką światło pokona w ciągu roku (około 10 bilionów kilometrów). Najbliższa Słońcu gwiazda jest od nas oddalona o 4,2 roku świetlnego. Współczynnik przeliczenia niech będzie liczbą typu double (jak wczoraj). Jeden rok świetlny = 63 240 jednostek astronomicznych 7. Napisz program, który poprosi użytkownika o podanie liczby godzin i minut. Funkcja main() ma przekazać obie te wartości do funkcji typu void, która je wyświetli w formacie jak poniżej: Podaj liczbę godzin: 9 Podaj liczbę minut: 28 Czas: 9:28 8. Utwórz i uruchom program do obliczania długości przekątnej kwadratu dla danej długości boku a (p=a*sqrt (2)). 9. Utwórz i uruchom program do obliczania długości przekątnej prostokąta dla danych długości boków a, b. 10. Utwórz i uruchom program do obliczania pola trójkąta prostokątnego o podanej przyprostokątnej a i przyległym kącie β. Kąt podany jest w stopniach. Należy wykonać zamianę stopni na radiany. cout<< M_PI; system("pause"); 11. Napisz i uruchom program do obliczania pola trójkąta o podanej długości boku c i danych miarach przyległych kątów a,b wyrażonych w stopniach. double tg_alfa=tan(alfa*m_pi/180);