języki programowania z programowaniem obiektowym
TRANSCRIPT
Instytut Mechaniki i Inżynierii Obliczeniowejwww.imio.polsl.pl fb.com/imiopolsl @imiopolsl
Wydział Mechaniczny TechnologicznyPolitechnika Śląska
Języki programowaniaz programowaniem obiektowym
Laboratorium 7:Funkcje (cz.1), funkcje inline, funkcje bibliotekistandardowej C++
Opracowali:
dr hab. inż. Witold [email protected]
dr inż. Jacek [email protected]
Gliwice 2016
Języki programowania z programowaniem obiektowym. Laboratorium 7 1
1. Funkcje
Funkcja to podprogram realizujący jakieś zadanie, który najczęściej jako rezultat zwraca jakąś wartość,na przykład:
Funkcję wywołuje się poprzez podanie jej nazwy i umieszczonych w nawiasie argumentów, np.:
Podczas korzystania z funkcji trzeba pamiętać o następujących zasadach:— każda funkcja przed użyciem musi być zadeklarowana,— nie można definiować funkcji wewnątrz innej funkcji (również main),— funkcja może wywoływać inną funkcję.
Przykładowa deklaracja funkcji wygląda tak:
Przykład użycia funkcji:
Wyróżniamy argumenty funkcji:— formalne - występujące w definicji funkcji (w przykładzie: d),— aktualne – argumenty użyte w wywołaniu funkcji (w przykładzie: srednica).
Języki programowania z programowaniem obiektowym. Laboratorium 7 2
Definicja funkcji może być również jej deklaracją, zawierającą treść funkcji. Przykład:
Wywołanie funkcji zwracającej rezultat samo w sobie ma wartość, jaką ma rezultat zwracany przez tąfunkcję, można je więc użyć w dowolnym wyrażeniu, np.:
Poniżej przedstawiono przykłady samej deklaracji funkcji:
Jeśli funkcja nie zwraca żadnej wartości, to po słowie kluczowym return nie może stać żadna wartość(można też to słowo pominąć):
2. Funkcje inline
Krótkie funkcje można definiować jako inline („w linii”). Funkcje takie mają następujące właściwości:— jest to sugestia (która może być zignorowana) dla kompilatora, by w miejscu wywołania wstawić treść tej
funkcji,— korzystanie z takich funkcji skutkuje skróceniem czasu działania programu,— definicja (nie tylko deklaracja) występuje przed pierwszym wywołaniem tej funkcji (zwykle na początku
programu lub w pliku nagłówkowym).
Języki programowania z programowaniem obiektowym. Laboratorium 7 3
Przykład:
3. Przekazywanie danych do funkcji przez wartość
Przekazywanie argumentów do funkcji przez wartość powoduje, że funkcja pracuje na kopii przekazywa-nej zmiennej, więc nie ma możliwości jej modyfikowania. Z innymi metodami przekazywania argumentów,pozwalającymi na modysikowanie wartości przekazywanej zmiennej, zapoznasz się na dalszych laboratoriach.
Przykład:
Języki programowania z programowaniem obiektowym. Laboratorium 7 4
4. Biblioteka standardowa C++
Programy w C++ składają się z części zwanych klasami i funkcjami. Biblioteka standardowa C++ zawierabogaty zbiór funkcji:— do przeprowadzania operacji matematycznych,— do manipulacji napisami i znakami,— sterujących operacjami wejścia/wyjścia,— sprawdzania błędów i wielu innych użytecznych operacji.
Korzystanie z bibliotek bardzo ułatwia pracę programisty (brak konieczności "powtórnego wymyślaniakoła"). Programy w C++ są zazwyczaj tworzone przez łączenie nowych funkcji i klas, napisanych przezprogramistę, z funkcjami i klasami z biblioteki standardowej C++ oraz z innych niestandardowych bibliotekklas ("wielokrotne użycie oprogramowania").
Funkcje i klasy biblioteki standardowej są udostępniane jako część środowiska programistycznego C++(zwykle dostarczane przez dostawców kompilatorów).
Wiele bibliotek klas specjalnego przeznaczenia jest dostarczanych przez niezależnych dostawców oprogra-mowania.
5. Wybrane funkcje z biblioteki standardowej
5.1. Plik nagłówkowy <cmath>
Niektóre funkcje trygonometryczne:
Funkcje trygonometryczne przyjmują wartości argumentów wyrażone w radianach.
Niektóre funkcje wykładnicze i logarytmiczne:
Potęgi i pierwiastki:
Języki programowania z programowaniem obiektowym. Laboratorium 7 5
Inne przydatne funkcje:
Istotniejsze stałe matematyczne:
5.2. Plik nagłówkowy <cstdlib>
5.3. Plik nagłówkowy <cctype>
Czywiesz,że...
Wybierając specjalność ME8 możesz w ramach zajęćzajmować się budową i programowaniem urządzeniaz wykorzystaniem zestawów LEGO Mindstorms.Więcej:http://www.icme.polsl.pl/ME8_MSI.html