Programowanie proceduralne w języku C++ Funkcje

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie proceduralne w języku C++ Funkcje"

Transkrypt

1 Programowanie proceduralne w języku C++ Funkcje Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki Stosowanej i Modelowania Marzec 2017 / Kwiecień 2018 Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

2 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

3 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

4 Pojęcie funkcji w języku C++ Dotychczas mieliśmy do czynienia z napisanym w języku C++ kodem programu zawartym w jednej tylko funkcji o nazwie main. Jest to obowiązkowa funkcja każdego takiego programu. Wykonanie programu zaczyna się od tej funkcji niezależnie od zastosowanego paradygmatu: imperatywnego czy obiektowo zorientowanego. W ogólnym przypadku funkcja jest fragmentem kodu programu: któremu nadano nazwę, dla którego określono listę parametrów formalnych (może być pusta) i który można wykonać poprzez podanie jego nazwy oraz listy parametrów. Dane przekazywane do funkcji w miejsce parametów - czyli argumenty funkcji - są to konkretne wartości parametrów. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

5 Budowa funkcji w języku C++ Ogólny schemat funkcji języka C++ jest następujący: typzwr nazwafun ( typpar1 nazwapar1,..., typparn nazwaparn ) {... // fragmentkodu return wartzwr; } Typ wartości zwracanej typzwr jest obowiązkowy poza przypadkiem gdy funkcja nic nie zwraca. Wtedy w miejsce typzwr należy użyć słowa void oraz usunąć instrukcję return Typ zmiennej wartzwr powinien być zgodny z typem typzwr. Chociaż lista parametrów może być pusta, to nawiasy ją ograniczające są obowiązkowe Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

6 Przykład definicji funkcji Funkcja, która posiada na liście jeden tylko parametr typu zmiennoprzecinkowego i zwraca jego kwadrat wygląda następująco: double kwadrat(double var){ return var*var; } Analogiczna funkcja zdefiniowana dla typu całkowitoliczbowego zwracająca kwadrat parametru wygląda następująco: int kwadrat(int var){ return var*var; } Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

7 Typ wartości zwracanej Przy obecnym zawansowaniu wykładu można stwierdzić, że typem wartości zwracanej musi być typ wbudowany jak (int, char,...) lub typu void. Jeśli typem zwracanym nie jest void, to funcję nazywamy funkcją rezultatową. Jeśli jest to void, to funkcja w ogóle nie zwraca żadnej wartości - taką funkcję nazywamy funkcją bezrezultatową. void wypisz(double var){ cout << "Kwadrat parametru = " << var*var << endl;} Kompilator C++ dopuszcza brak jakiegokolwiek specyfikatora typu zwracanej wartości - domniemywany jest wtedy typ int. Nie należy jednak z tej możliwości korzystać. Typ wartości zwracanej zwany jest też po prostu typem funkcji. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

8 Lista parametrów formalnych Lista parametrów formalnych jest ujętym w okrągłe nawiasy ciągiem oddzielonych przecinkami deklaracji pojedynczych parametrów funkcji w postaci: (typ1 nazwa1, typ2 nazwa2,..., typn nazwan) Nie wolno stosować deklaracji zbiorczych: (typ nazwa1, nazwa2) Zamiast tego należy napisać: (typ nazwa1, typ nazwa2) Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

9 Lista parametrów formalnych Lista parametrów może być pusta, jednak obejmujących ją nawiasów nie można pominąć. W takim przypadku zalecane choć niekonieczne jest jawne zaznaczenie tego faktu wewnątrz nawiasów słowem kluczowym void. int fun(void); Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

10 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

11 Deklaracje i definicje funkcji Zarówno definicja jak i deklaracja dostarcza kompilatorowi informacji o funkcji: jaki jest jej typ zwracany, jaka jest liczba parametrów, jaki jest typ parametrów itd. W ten sposób, za każdym razem, gdy w dalszej części tekstu programu pojawia się użycie tej funkcji, kompilator może sprawdzić: o którą z funkcji o tej samej nazwie chodzi (może być wiele funkcji o tej samej nazwie); czy wywołanie funkcji jest prawidłowe: czy liczba i typ argumentów odpowiada liczbie i typom parametrów, czy typ wartości zwracanej przez funkcje jest w danym miejscu programu akceptowalny, itd. W razie niezgodności kompilacja zostanie przerwana. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

12 Deklaracje i definicje funkcji Dlaczego definicja lub deklaracja i co to w ogóle jest deklaracja funkcji oraz do czego się przydaje? Wyobraźmy sobie następującą sytuację: void mojapierwsza(int mojint) { mojadruga(mojint); } void mojadruga(int twojint) { mojapierwsza(twojint); } W jakiej kolejności zdefiniować te funkcje? Jeśli zdefiniujemy je tak jak wyżej, to w linii drugiej kompilacja zostanie przerwana, bo nieznana jest w niej jeszcze funkcja mojadruga. Zamiana funkcji miejscami nic nie zmienia. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

13 Deklaracje i definicje funkcji I tu z pomocą przychodzi deklaracja funkcji. Uzupełnijmy nasz kod programu o jedną linię - dekrarację funkcji mojadruga : void mojadruga(int); void mojapierwsza(int mojint) { mojadruga(mojint); } void mojadruga(int twojint) { mojapierwsza(twojint); } Tym razem kod skompiluje się poprawnie. Do tego wystarczy prototyp funkcji podany w deklaracji. Zauważmy w deklaracji (linia 1) brak nazwy argumentu - jest to dopuszczalne - konieczny jest jego typ. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

14 Deklaracje i definicje funkcji Deklaracja ma formę nagłówka funkcji, po którym następuje średnik zamiast ciała (treści) funkcji. Na przykład poprawnymi deklaracjami funkcji są string funstr(char c1, char c2, bool); void fun2(int, double); static int funstat(int i, float f); Deklaracje stanowią podstawę prototypu funkcji i zawierają informacje o: nazwie, typie zwracanym, typie i liczbie parametrów Jest to wszystko, czego potrzebuje kompilator, aby sprawdzić formalną prawidłowość ich użycia. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

15 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

16 Używanie funkcji Mając zdefiniowanych szereg różnych funkcji można się nimi do woli posługiwać. Funkcje mogą być wywoływane praktycznie z dowolnego miejsca innych funkcji. Sposób użycia jest bardzo prosty - należy podać jej nazwę i listę argumentów. nazwafun(arg1,..., argn); Jeśli funkcja deklaruje konkretny typ zwracany typzwr to rezultat może (ale nie musi) zostać przypisany zmiennej: nazwazmiennej = nazwafun(arg1,..., argn); Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

17 Przykład użycia funkcji Stwórzmy funkcję sumującą liczby z pewnego zakresu: int suma(int from, int to){ int suma = 0; for (int i = from; i <= to; i++) suma += i; return suma; } Przykład użycia tej funkcji: int main(){ int min, max; cout << "Podaj zakres liczb: "; cin >> min >> max; cout << "Suma liczb od " << min << " do " << max << " wynosi " << suma(min, max) << endl; return 0; } Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

18 Wywołanie funkcji Wywołanie funkcji ma postać nazwy tej funkcji z podaną w nawiasach okrągłych listą oddzielonych przecinkami argumentów. Liczba argumentów wywołania musi być dokładnie taka jak liczba parametrów w deklaracji i definicji funkcji. Nawet jeśli funkcja jest bezparametrowa, nawiasy musimy podać. Rolę argumentów mogą pełnić dowolne wyrażenia, których wartość jest typu zgodnego z zadeklarowanym typem odpowiedniego parametru funkcji. int main(){ int nsr = 7; cout << "Suma = " << suma(nsr-3, 2*(nSr+3)) << endl; return 0; } Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

19 Wywołanie funkcji Typ argumentu nie musi być identyczny z typem parametru: wywołanie będzie prawidłowe, jeśli wartość argumentu można niejawnie przekształcić na wartość zadeklarowanego typu parametru. Jeśli przy takiej konwersji może być tracona informacja (konwersja zawężająca), to zazwyczaj podczas kompilacji otrzymamy ostrzeżenia. Jeśli funkcja zwraca rezultat, to ostatnią wykonywaną instrukcją musi być zawsze instrukcja return zwracająca: wartość typu, jaki został zadeklarowany jako typ funkcji, albo typu, który może być niejawnie przekształcony do typu funkcji. double fun(int x){return x*x;} int main(){ double arg = 3.; cout << fun(arg) << endl; return 0;} Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

20 Wywołanie funkcji Proces wywoływania możemy sobie wyobrażać tak: 1 Obliczane są wartości argumentów, po czym dokonywane są konwersje potrzebne do przekształcenia tych wartości w wartości typu odpowiedniego parametru funkcji 2 Tak uzyskane wartości kopiowane są na stos programu. 3 Jeśli argumentem była zmienna, to na stos kładziona jest kopia jej wartości - funkcja uzyskuje wtedy dostęp do tej kopii. 4 Sterowanie przechodzi do funkcji: kopie wartości argumentów na stosie są utożsamiane ze zmiennymi lokalnymi odpowiadającymi poszczególnym parametrom funkcji. 5 Zmienne lokalne (definiowane w funkcji) umieszczane są również na stosie. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

21 Wywołanie funkcji 6 Po zakończeniu wykonywania funkcji część stosu ze zmiennymi lokalnymi (również tymi odpowiadającymi parametrom funkcji), jest usuwana, tak aby stan stosu odpowiadał temu sprzed wywołania. 7 Jeśli funkcja jest rezultatowa, to wynik jest zwracany do funkcji wywołującej poprzez stos lub inną metodą. Wyjątek w przedstawionej procedurze stanowią zmienne definiowane z modyfikatorem static. Takie zmienne tworzone są raz: podczas pierwszego wywołania. Przy kolejnych wywołaniach funkcja ma dostęp do tej samej zmiennej statycznej - istnieje ona aż do zakończenia programu. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

22 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

23 Parametry domyślne funkcji W C++ istnieje możliwość definiowania funkcji o domyślnych (domniemanych) wartościach parametrów. Wywołując taką funkcję nie trzeba podawać wszystkich parametrów - dla niektórych przyjęta zostanie wartość domyślna w razie ich pominięcia. Aby skorzystać z tej możliwości, definiujemy funkcję, określając wartości domyślne dla parametrów funkcji bezpośrednio w nagłówku. Muszą to być końcowe parametry - jeśli któryś z parametrów ma wartość domyślną, to wszystkie parametry występujące na liście parametrów po nim też muszą mieć przypisane wartości domyślne. Wartości domyślne można przypisać tylko raz - jeśli zrobimy to w deklaracji, to nie powtarzamy tego ani w definicji, ani w innych ewentualnych deklaracjach. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

24 Parametry domyślne funkcji Przykładowo, albo: void poletrojkata(double a = 1., double h = 1.){ cout << "Pole trojkata = " << a * h / 2. << endl; } albo void poletrojkata(double = 1., double = 1.); void poletrojkata(double a, double h){ cout << "Pole trojkata = " << a * h / 2. << endl; } ale nie: void poletrojkata(double = 1., double = 1.); void poletrojkata(double a = 1., double h = 1.){ cout << "Pole trojkata = " << a * h / 2. << endl; } Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

25 Parametry domyślne funkcji A teraz zobaczmy jak działa idea parametrów domyślnych - program: void poletrojkata(double a = 1., double h = 1.){ cout << "Pole trojkata = " << a * h / 2. << endl; } int main(){ poletrojkata(); poletrojkata(3.7); poletrojkata(3.1, 4.25); return 0; } powoduje strumień wyjściowy: Pole trojkata = 0.5 Pole trojkata = 1.85 Pole trojkata = Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

26 Parametry domyślne funkcji Jeśli zmienimy kod programu: void poletrojkata(double a, double h){ cout << "Pole trojkata = " << a * h / 2. << endl; } int main(){ poletrojkata(1., 1.); poletrojkata(3.7, 1.); poletrojkata(3.1, 4.25); return 0; } to strumień wyjściowy będzie identyczny: Pole trojkata = 0.5 Pole trojkata = 1.85 Pole trojkata = Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

27 Parametry domyślne funkcji Parametry funkcji zadeklarowane jako obowiązkowe można przedeklarować tak, aby miały wartości domyślne - deklaracja: void kolor(int rd, int gr, int bl, int alf = 255); może zostać uzupełniona następną deklaracją (lub definicją): void kolor(int rd, int gr, int bl = 0, int alf); Każdy parametr domyślny może być w ten sposób deklarowany tylko raz i wszystkie parametry domyślne muszą kończyć listę. void kolor(int rd = 0, int gr, int bl, int alf); Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

28 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

29 Odnośniki (referencje) Referencja w swym działaniu przypomina wskaźniki - zawiera adres istniejącej uprzednio zmiennej. Różnica polega jednak na tym, że do referencji można przypisać adres tylko raz, a jej dalsze używanie niczym się nie różni od używania zwykłej zmiennej. Przypisanie referencji adresu jest obowiązkowe - referencje muszą być inicjalizowane. TypDanych & referencja = innazmienna; Można się pokusić o stwierdzenie, że: Referencja jest inną nazwą danej zmiennej. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

30 Odnośniki (referencje) Operacje jakie wykona się na referencji, zostaną odzwierciedlone na zmiennej zwykłej, z której pobrano adres. #include <iostream> using namespace std; int main(){ double dbl = 41.66; double &refdbl = dbl; refdbl = 1.345; cout << "dbl wynosi " << dbl << endl; return 0; } Wynikiem działania programu jest strumień wyjściowy: dbl wynosi Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

31 Parametry odnośnikowe Odnośniki mogą być parametrami i wartościami zwracanymi przez funkcje. Co to znaczy, jeśli parametr funkcji jest zadeklarowany jako odnośnik? Popatrzmy na funkcję: void funvar(int varint){ varint = varint + 2;} void funref(int& refint){ refint = refint + 2;} int main(){ int fi = 0; funvar(fi); int si = 0; funref(si); cout << "fi = " << fi << " si = " << si << endl; return 0; } Wynikiem działania tej funkcji jest strumień wyjściowy: fi = 0 si = 2 Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

32 Praca z parametrami odnośnikowymi Instrukcja: void funref(int& refint); oznacza, że argument typu int zostanie przesłany do funkcji przez odniesienie (referencję). Jeśli wywołamy tę funkcję podając jako argument pewną zmienną typu int, to w czasie wykonania funkcji nazwa parametru refint będzie inną nazwą dokładnie tej samej zmiennej. A więc nie będzie kopiowania wartości na stos - zmienna lokalna w funkcji w ogóle nie będzie tworzona. Nazwa refint będzie odnosić się do oryginału zmiennej będącej argumentem wywołania i funkcja będzie pracować na tym oryginale. Stąd też zmiany refint wewnątrz funkcji funref powodują zmiany zmiennej si w funkcji main. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

33 Argumenty a parametry odnośnikowe Mając powyższe na uwadze nie uda się kompilacja kodu programu: 1. void funref(int& refint){ 2. refint = refint + 2;} 3. int main(){ 4. funref(1); 5. int mi = 12; funref(3 * mi); 6. double md; funref(md); 7. return 0; } ze względu na brak możliwości zdefiniowania referencji do: literału (linia 4) wyrażenia (linia 5) czy zmiennej innego typu (linia 6) Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

34 Odnośnikowa wartość zwracana Odniesienie może nie tylko być parametrem, ale i wartością zwracaną przez funkcję. Następująca deklaracja: int& fun(int); oznacza, że funkcja zwraca pewną zmienną przez odniesienie (referencję). Stąd też wyrażenie fun(3) jest inną nazwą pewnej istniejącej zmiennej, która została podana w funkcji w instrukcji return. Zmienna taka musi istnieć po zakończeniu pracy funkcji. Czyli wywołanie funkcji - fun(int) - można potraktować jako wynik działania tej funkcji. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

35 Odnośnikowa wartość zwracana Wynika stąd ważny wniosek - jeśli wartością zwracaną jest odniesienie, to instrukcja return takiej funkcji nie może zwracać: literału wyrażenia zmiennej lokalnej, bo przestaje ona istnieć po zakończeniu funkcji. int& funref(int& refint){ int rint; refint = refint + 2; return 0; return 2*refInt+3; return rint; return refint; } Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

36 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

37 Wskaźniki Na początek musimy zdefiniować pojęcie wskaźnika do zmiennej. O ile zmienna jest w stanie przechowywać wartości danego typu, o tyle wskaźnik przechowuje: adres obszaru pamięci, gdzie dopiero jest zapisana wartość, informację o typie zmiennej zapisanej w tym obszarze. double zmdbl; double *wskdbl; // zmienna typu double // wskaźnik typu double Nowopowstały wskaźnik nie odwołuje się do żadnego konkretnego adresu Wymaga zatem inicjalizacji lub podstawienia z wykorzystaniem operatora pobrania adresu & double zmdbl = ; // inicjalizacja zmiennej double *wskdbl = &zmdbl; // inicjalizacja wskaźnika Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

38 Wskaźniki Pobranie wartości spod adresu przypisanego wskażnikowi następuje przy użyciu operatora wyłuskania * cout << "Wartosc: " << *wskdbl << endl; Bez użycia operatora wyłuskania, zostanie wyświetlona wartość zmiennej wskaźnikowej wskdbl czyli adres zmiennej zmdbl Bardzo ważne jest aby nie korzystać ze wskaźnika, który nie wskazuje na żadną zmienną. Prowadzi to zawsze do błędów i niesie ze sobą nieprzewidziane konsekwencje. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

39 Przykład użycia wskaźnika Przypadki użycia wskaźnika: int telefon = ; int *wsk = &telefon; cout << *wsk << endl; cout << wsk << endl; cout << &wsk << endl; // zmienna typu int // przypisanie wskaźnikowi // adresu zmiennej telefon // wyświetlenie wyłuskanej // wartości wskaźnika // ( ) // wyświetlenie adresu // zmiennej telefon // wyświetlenie adresu // wskaźnika cout << &telefon << endl; // wyświetlenie adresu // zmiennej telefon Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

40 Wskaźniki jako parametry funkcji Kiedy należy przekazać do funkcji odwołanie do obiektu zezwalające na jego modyfikację wewnątrz funkcji to mamy do wyboru dwie metody: posłużenie się referencją, posłużenie się wskaźnikiem. Pierwszą z metod omówiliśmy już wyczerpująco, a co jeśli chodzi o wskaźniki? Jeśli argument funkcji jest zadeklarowany jako wskaźnik czy też wartość zwracana przez funkcję jest wskaźnikiem, to zachowanie funkcji jest analogiczne do sytuacji, w której były to referencje. Różnica polega na fakcie, że w przeciwieństwie do referencji wskaźniki nie muszą (ale powinny) być inicjalizowane. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

41 Wskaźniki jako parametry funkcji Popatrzmy na funkcję: int* funpoint(int* wskint){ *wskint = *wskint + 2; return wskint; } int main(){ int x = -7., *p = &x; p = funpoint(p); cout << "*p= " << *p << endl; return 0; } Jak widać jej postać jest podobna do tej, używającej odniesień - składnia jest tylko nieco inna, ze względu na zastosowanie typu wskaźnikowego int* w miejsce typu int&. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

42 Arytmetyka wskaźników #include <iostream> using namespace std; int main(){ // deklaracja i inicjalizacja tablicy double waga[5] = { 55.3, 747.8, , 5.2, 6.4 }; double *wsk = waga; // nazwa tablicy jest wskaźnikiem cout << " wsk = " << wsk << endl; // adres cout << " *wsk = " << *wsk << endl; // 55.3 cout << " wsk[4] = " << wsk[4] << endl; // 6.4 cout << " *(wsk + 3) = " << *(wsk + 3) << endl; // 5.2 wsk += 1; cout << " *wsk = " << *wsk << endl; // cout << " *++wsk = " << *++wsk << endl; // cout << " rozmiar wsk = " << sizeof(wsk) << endl; // 4 cout << "rozmiar *wsk = " << sizeof(*wsk) << endl; // 8 return 0; } Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

43 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

44 Przekazywanie tablic do funkcji Popatrzmy na kod programu: double funsuma(double tbl[], int rozmtab){ double suma = 0.; for(int i = 0; i < rozmtab; i++) suma += tbl[i]; return suma; } int main(){ double tabdbl[10] = {1,2,3,4,5,6,7,8,9,10}; cout << "Suma elementow tablicy " << funsuma(tabdbl, 10) << endl; return 0; } Jak widać do funkcji przekazywana jest tylko nazwa tablicy - jej rozmiar musi być przekazany przy pomocy oddzielnego parametru. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

45 Przekazywanie tablic do funkcji Innym sposób przekazywania tablic do funkcji przedstawia kod programu, który tylko w niewikim stopniu różni się od poprzedniego: double funsuma(double* tbl, int rozmtab){ double suma = 0.; for(int i = 0; i < rozmtab; i++) suma += tbl[i]; return suma; } Tym razem parametrem funkcji jest wskaźnik, ponieważ nazwa tablicy jest stałym wskaźnikie do jej pierwszego elementu. Wewnątrz funkcji nazwą wskaźnika można się posługiwać tak jak każdą inną nazwą tablicy. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

46 Spis treści 1 Pojęcie funkcji 2 Deklaracje i definicje funkcji 3 Używanie funkcji 4 Parametry domyślne funkcji 5 Parametry odnośnikowe (referencje) 6 Wskaźniki jako parametry funkcji 7 Przekazywanie tablic do funkcji 8 Przeciążanie funkcji Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

47 Przeciążanie funkcji Funkcje można w C++ przeciążać (przeładowywać). Oznacza to sytuację, gdy w tym samym zakresie leksykalnym są widoczne różne definicje funkcji o tej samej nazwie. Wszystkie wersje funkcji muszą się wystarczająco różnić - na tyle, aby można było jednoznacznie wybrać jedną z nich na podstawie wywołania. Warunkiem koniecznym, choć niewystarczającym jest, aby funkcje o tej samej nazwie różniły się sygnaturą. Do sygnatury funkcji należy: jej nazwa oraz liczba i typ parametrów nie licząc tych z wartościami domyślnymi. Typ funkcji, czyli typ wartości zwracanej, do sygnatury nie należy. Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

48 Przeciążanie funkcji Sygnatury nie są jeszcze warunkiem dostatecznym na legalność przeciążenia. Widzimy to na przykładzie funkcji void fun(int i); void fun(int& i); Obie funkcje różnią się sygnaturą, ale wywołanie: int mint; fun(mint); może być traktowane jako wywołanie zarówno pierwszej, jak i drugiej z nich. Natomiast prawidłowe jest przeciążenie: int fun(int i); int fun(int* i); Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

49 Przeciążanie funkcji Argument typu T może być użyty przy wywołaniu funkcji z parametrem typu T, const T i volatile T, więc funkcje przeciążone nie mogą się różnić tylko modyfikatorem typu takiego parametru double fun(int mint); double fun(const int mint); double fun(volatile int mint); Natomiast typy parametrów T*, const T* i volatile T* (i analogicznie T&, const T& i volatile T& ) są wystarczająco różne, gdyż patrząc na wywołanie funkcji kompilator może stwierdzić, czy użyta tam zmienna była ustalona lub ulotna (typu volatile ) czy nie. double fun(int* pint); double fun(const int* pint); double fun(volatile int* pint); Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

50 Przeciążanie funkcji Do tej pory zwracaliśmy uwagę na jedynie typ parametrów funkcji. Wydaje się to oczywiste, ale trzeba zwrócić uwagę na fakt, że kompilator potrafi również rozróżnić sygnatury, gdy: różna jest liczba parametrów, liczba parametrów jest ta sama i są one parami tych samych typów, ale umieszczone są na liście w różnej kolejności Widać to na przykładzie poprawnych i błędnych przeciążeń funkcji: void fun(double d, int i, bool b); void fun(double, int, bool); void fun(double d, int i); void fun(int i, double d); void fun(int it, double dbl); void fun(int* i, double d); Mirosław Głowacki (AGH, UJK) Programowanie w języku C / / 50

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 11 Funkcje 1 Wstęp do informatyki- wykład 11 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 9 Funkcje 1 Wstęp do informatyki- wykład 9 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

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

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

Bardziej szczegółowo

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

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 > C++ wskaźniki Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017 >??? Co to jest WSKAŹNIK? ++ wskaźniki 2 / 20 >??? Co to jest WSKAŹNIK? To po prostu ADRES

Bardziej szczegółowo

Programowanie Obiektowew języku C++ Zadania L4

Programowanie Obiektowew języku C++ Zadania L4 Programowanie Obiektowew języku C++ Zadania L4 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

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

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie. Funkcje Deklaracja funkcji typ funkcji identyfikator_funkcji(lista parametrów formalnych); Typ funkcji określa typ wartości zwracanej przez funkcję (typ zdefiniowany pierwotnie jak int, typ zdefiniowany

Bardziej szczegółowo

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje 1 Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

Wstęp do programowania obiektowego, wykład 7

Wstęp do programowania obiektowego, wykład 7 Wstęp do programowania obiektowego, wykład 7 Klasy i funkcje abstrakcyjne Przeciążanie funkcji Definiowanie i interpretacja złożonych typów danych w C++ Wskaźniki do funkcji 1 KLASA ABSTRAKCYJNA 2 Klasa

Bardziej szczegółowo

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

Programowanie Obiektowew języku C++ Zadania L4

Programowanie Obiektowew języku C++ Zadania L4 Programowanie Obiektowew języku C++ Zadania L4 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

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

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami: Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Techniki Programowania wskaźniki

Techniki Programowania wskaźniki Techniki Programowania wskaźniki Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Wskaźniki Dla typu T zapis T* oznacza

Bardziej szczegółowo

Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody

Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

Język C++ zajęcia nr 2

Język C++ zajęcia nr 2 Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator

Bardziej szczegółowo

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

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

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka

Bardziej szczegółowo

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Podstawy algorytmiki i programowania - wykład 4 C-struktury 1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

C-struktury wykład. Dorota Pylak

C-struktury wykład. Dorota Pylak C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

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

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) 1 Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

Programowanie proceduralne w języku C++ Pętle, tablice

Programowanie proceduralne w języku C++ Pętle, tablice Programowanie proceduralne w języku C++ Pętle, tablice Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

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

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki

Bardziej szczegółowo

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

Język C, tablice i funkcje (laboratorium, EE1-DI) Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.

Bardziej szczegółowo

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

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37 Programowanie w C++ Wykład 4 Katarzyna Grzelak 19 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37 Funkcje cd K.Grzelak (Wykład 1) Programowanie w C++ 2 / 37 Funkcja powtórzenie Funkcje == podprogramy

Bardziej szczegółowo

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,

Bardziej szczegółowo

Przeciążenie (przeładowanie nazw) funkcji

Przeciążenie (przeładowanie nazw) funkcji Przeciążenie (przeładowanie nazw) funkcji dla większości języków (w tym C) zasada w programie może być tylko jedna funkcja o danej nazwie kompilator C++ - dopuszcza więcej niż jedną funkcję o tej samej

Bardziej szczegółowo

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

Bardziej szczegółowo

Struktury Struktura polami struct struct struct struct

Struktury Struktura polami struct struct struct struct Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli

Bardziej szczegółowo

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 7 1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

Bardziej szczegółowo

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,

Bardziej szczegółowo

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty

Bardziej szczegółowo

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

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

C-struktury wykład. Dorota Pylak

C-struktury wykład. Dorota Pylak C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

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

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne Przeciążenie funkcji polega na użyciu funkcji z tą samą nazwą, które mają różne listy argumentów(różne typy, różna ilość lub to i inne).

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 8 Wskaźniki 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania w C++ Wskaźniki 2 Podstawy Pojęcie wskaźnika Wskaźnik na zmienną danego

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

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

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty. Funkcje. Deklaracja funkcji: KURS C/C++ WYKŁAD 8 #include //deklaracje funkcji: printf(...), scanf(...) #include //double sqrt (double ) #include //void clrscr (void) void main

Bardziej szczegółowo

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

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych

Bardziej szczegółowo

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 5 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

Przekazywanie argumentów wskaźniki

Przekazywanie argumentów wskaźniki Przekazywanie argumentów wskaźniki klasyczne wywołanie wyliczenie i zwrotne przekazanie tylko jednej wielkości moŝliwość uŝycia zmiennych globalnych niebezpieczeństwa z tym związane wyjście wywołanie funkcji

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 4 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Pętle wykonujące się podaną liczbę razy Jeśli chcemy wykonać pewien fragment programu określoną liczbę razy, możemy użyć

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Techniki Programowania wskaźniki 2

Techniki Programowania wskaźniki 2 Techniki Programowania wskaźniki 2 Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Jeżeli wskaźnik pokazuje na element

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Język C++ Różnice między C a C++

Język C++ Różnice między C a C++ Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 5 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Zadanie o kotach z poprzedniego wykładu # include < iostream > using namespace std ; int main (){ int rozmiar_ rodzinki,

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

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

Wstęp do informatyki- wykład 10 Funkcje (przekazywanie parametrów przez wartość i zmienną) 1 Wstęp do informatyki- wykład 10 Funkcje (przekazywanie parametrów przez wartość i zmienną) Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

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

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale

Bardziej szczegółowo

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

Bardziej szczegółowo

Laboratorium nr 10. Temat: Funkcje cz.2.

Laboratorium nr 10. Temat: Funkcje cz.2. 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

Bardziej szczegółowo

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem. Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna

Bardziej szczegółowo

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Służą do łatwiejszej kontroli nad stałymi Ustawianie parametrów o ściśle określonym zbiorze wartości

Bardziej szczegółowo

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

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

Bardziej szczegółowo

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; } #include 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

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Funkcje w języku C Zasięg zmiennych Przekazywanie

Bardziej szczegółowo

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Informatyka I: Instrukcja 4.2

Informatyka I: Instrukcja 4.2 Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże

Bardziej szczegółowo

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE 1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

1 Wskaźniki. 1.1 Główne zastosowania wskaźników 1 Wskaźniki Wskaźnik (ang. pointer) jest obiektem (zmienną) przechowującym adres pamięci. Definiowanie wskaźników: typ *nazwa wskaznika; np.: int *wsk na x;, double *xxx;, char *znak;. Aby można było pracować

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Projektowanie klas c.d. Projektowanie klas przykład

Projektowanie klas c.d. Projektowanie klas przykład Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej

Bardziej szczegółowo

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

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE WSKAŹNIKI KLASOWE Wskaźniki klasowe Każdy obiekt zajmuje fragment pamięci i wszystkie obiekty tego samego typu zajmują fragmenty pamięci tej samej długości początek miejsca w pamięci zajmowanego przez

Bardziej szczegółowo

KLASY cz.1. Dorota Pylak

KLASY cz.1. Dorota Pylak KLASY cz.1 Dorota Pylak Do czego służą klasy? 2 W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można

Bardziej szczegółowo

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd. 1 Podstawy algorytmiki i programowania - wykład 5 C-struktury cd. Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com

Bardziej szczegółowo

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy: Kurs C++ częśd II Podstawowa obsługa konsoli + zmienne. Autor: Dawid Chróścielski. Wprowadzanie i wyprowadzanie danych z/do konsoli. Jak wyprowadzad dane dowiedzieliśmy się już wcześniej (metoda cout z

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

Bardziej szczegółowo