Laboratorium nr 10. Temat: Funkcje cz.2.

Podobne dokumenty
Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Wykład 5: Klasy cz. 3

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Wykład 3 Składnia języka C# (cz. 2)

Lab 9 Podstawy Programowania

Wstęp do programowania

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Przeciążenie operatorów

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Język C++ zajęcia nr 2

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Funkcja (podprogram) void

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Język C, tablice i funkcje (laboratorium, EE1-DI)

Wskaźniki w C. Anna Gogolińska

Podstawy Programowania

Wykład 8: klasy cz. 4

Szablony. Szablony funkcji

Rozdział 4 KLASY, OBIEKTY, METODY

Język C, tablice i funkcje (laboratorium)

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Wstęp do programowania obiektowego, wykład 7

Funkcja, argumenty funkcji

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

TEMAT : KLASY DZIEDZICZENIE

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Przeciążanie operatorów

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

Funkcje wirtualne. Wskaźniki do klas pochodnych są podstawą dla funkcji wirtualnych i polimorfizmu dynamicznego.

Część 4 życie programu

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Wykład 4: Klasy i Metody

Wartości domyślne, przeciażenia funkcji

Referencje do zmiennych i obiektów

Przekazywanie argumentów wskaźniki

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Szablony funkcji i klas (templates)

Wskaźniki. Informatyka

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie strukturalne i obiektowe. Funkcje

Konstruktor kopiujacy

Wstęp do programowania

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

6 Przygotował: mgr inż. Maciej Lasota

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Definicje klas i obiektów. Tomasz Borzyszkowski

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 9 Funkcje

W dowolnym momencie można zmienić typ wskaźnika.

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm

PARADYGMATY PROGRAMOWANIA Wykład 3

Programowanie obiektowe 2005/2006. Laboratorium 1. Przeciążanie funkcji

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Automatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { zdefiniuje. Integer::operator=(ri);

Pola i metody statyczne

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

Programowanie proceduralne w języku C++ Funkcje

Języki i techniki programowania Ćwiczenia 2

C++ Przeładowanie operatorów i wzorce w klasach

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

Programowanie komputerowe. Zajęcia 3

Tablice, funkcje - wprowadzenie

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Podstawy Programowania Obiektowego

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Wartości domyślne, przeciażenia funkcji

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Tbli Tablice obiektów biktó są tworzone dokładnie d tak samo, jak i tablice, składające się z elementów innego typu


Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Transkrypt:

Zakres laboratorium: Laboratorium nr 10 Temat: Funkcje cz.2. przeciążanie nazw funkcji argumenty domyślne funkcji przekazywanie danych do funkcji przez wartość, wskaźnik i referencję przekazywanie tablic do funkcji zadania laboratoryjne

Przeciążanie nazw funkcji

Przeciążanie nazw funkcji Przeciążenie funkcji sytuacja, gdy zdefiniowanych jest kilka funkcji o takiej samej nazwie, różniących się zestawem parametrów (argumentów). Przeciążanie funkcji jest często stosowane do tworzenia różnych funkcji o takiej samej nazwie, które przeprowadzają podobne zadania, ale na różnych typach danych. Przykład: int kwadrat(int x) return x*x; double kwadrat(double x) return x*x; UWAGA: Możliwe jest przeciążanie operatorów, tak aby operowały na obiektach typów danych zdefiniowanych przez użytkownika.

Argumenty domyślne funkcji

Argumenty domyślne funkcji Programista może określić, że dany argument funkcji jest argumentem domyślnym i dostarczyć dla niego wartość domyślną. Argumenty domyślne muszą być położone najdalej z prawej strony na liście parametrów funkcji. Argumenty domyślne powinny być określone wraz z pierwszym wystąpieniem nazwy funkcji zazwyczaj w jej prototypie (czyli deklaracji) (w definicji funkcji już nie!!!). Przykład: int Objetosc_Pudelka(int dlug=1,int szer=1,int wys=1); //prototyp funkcji main() //przykładowe wywołania funkcji Objetosc_Pudelka Objetosc_Pudelka(); //dlug=1,szer=1,wys=1 objetosc=1 Objetosc_Pudelka(10); //dlug=10,szer=1,wys=1 objetosc=10 Objetosc_Pudelka(10,5); //dlug=10,szer=5,wys=1 objetosc=50 Objetosc_Pudelka(10,5,2); //dlug=10,szer=5,wys=2 objetosc=100 int Objetosc_Pudelka(int dlug,int szer,int wys) return dlug*szer*wys; //definicja funkcji

Przekazywanie danych do funkcji przez wartość, wskaźnik i referencję

Przekazywanie argumentów do funkcji (wywoływanie funkcji): przez wartość (funkcja pracuje na kopii przekazywanej zmiennej, więc NIE MA możliwości jej modyfikowania) przez wskaźnik (funkcja pracuje na oryginale przekazywanej zmiennej, więc MA możliwość jej modyfikowania) przez referencję (funkcja pracuje na oryginale przekazywanej zmiennej, więc MA możliwość jej modyfikowania) Domyślnie, zwykłe obiekty (zmienne) przekazywane są do funkcji przez wartość. Ponieważ każda funkcja za pomocą instrukcji return zwraca tylko jedną wartość, więc funkcja otrzymująca argumenty przez wartość może zmodyfikować co najwyżej wartość jakiegoś jednego obiektu. Chcąc, aby funkcja mogła zmienić więcej obiektów, należy ją wywołać z argumentami przekazanymi przez wskaźnik lub referencję.

Przykład: int zmien_wartosc(int aa, int *bb, int &cc) //definicja funkcji aa=aa+100; *bb=*bb+100; cc=cc+100; przez referencję przez wskaźnik przez wartość return aa; main() int a=5, b=10, c=15, d; //definicja funkcji main //definicje zmiennych cout<<a<<b<<c<<d; d=zmien_wartosc(a,&b,c); //wywołanie funkcji cout<<a<<b<<c<<d; Przed wywołaniem funkcji: a=5, b=10, c=15, d=? (śmieć) Po wywołaniu funkcji: a=5, b=110, c=115, d=105

Przekazywanie tablic do funkcji

Przekazywanie tablic do funkcji C++ automatycznie (domyślnie) przekazuje całe tablice do funkcji używając wywołania przez referencję, tj. wywołana funkcja może modyfikować wartości elementów w oryginalnych tablicach. Pojedyncze elementy tablicy automatycznie są przekazywane przez wartość. Tablicę w funkcji można odebrać na 2 sposoby: 1) jako tablicę, b) jako wskaźnik. Przykład: int tablica[24]; void modyfikuj_tablice_ref(int tab[],int rozmiar); void modyfikuj_tablice_wsk(int *tab,int rozmiar); void modyfikuj_element(int element); //odbieramy tablicę jako tablicę //odbieramy tablicę jako wskaźnik main() modyfikuj_tablice_ref(tablica,24); modyfikuj_tablice_wsk(tablica,24); modyfikuj_element(tablica[5]); //wywołanie przez referencję //wywołanie przez wskaźnik //wywołanie przez wartość void modyfikuj_tablice_ref(int tab[],int rozmiar) tab[5]=tab[5]+2; //modyfikacja oryginalnej tablicy!!! void modyfikuj_tablice_wsk(int *tab,int rozmiar) tab[5]=tab[5]+2; //modyfikacja oryginalnej tablicy!!! *(tab+5)+=2; //modyfikacja oryginalnej tablicy!!! void modyfikuj_element(int element) element=element+2; //modyfikacja kopii przekazanego elementu!!!

Zadania laboratoryjne