wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

Podobne dokumenty
wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.

Język C++ wykład VIII

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Wstęp do Informatyki

Ilustracja metody Monte Carlo obliczania pola obszaru D zawartego w kwadracie [a,b]x[a,b]

Programowanie obiektowe w C++ Wykład 12

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

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

Programowanie 2. Język C++. Wykład 3.

TEMAT : KLASY POLIMORFIZM

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

Wstęp do programowania

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

dr inż. Jarosław Forenc

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Mechanizm dziedziczenia

Wstęp do programowania

Programowanie - wykład 4

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

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Programowanie Obiektowew języku C++ Zadania L4

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

PARADYGMATY PROGRAMOWANIA Wykład 4

Języki i paradygmaty programowania

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie obiektowe

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

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

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

PARADYGMATY PROGRAMOWANIA Wykład 3

Techniki Programowania wskaźniki

Podstawy Programowania Obiektowego

Zaawansowane programowanie w języku C++ Klasy w C++

Programowanie komputerowe. Zajęcia 7

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

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

Podstawy Programowania Obiektowego

Techniki Programowania wskaźniki 2

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

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Plik klasy. h deklaracje klas

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

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

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

Dziedziczenie & W slajdach są materiały zapożyczone z

Programowanie obiektowe w języku

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

Podstawy programowania obiektowego

Wykład 4: Klasy i Metody

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

#include "stdafx.h" #include <iostream> #include "windows.h" using namespace std;

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

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

Wstęp do programowania obiektowego. Wykład 2

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

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

Część 4 życie programu

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

Wstęp do Programowania 2

Wstęp do Programowania 2

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

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

Programowanie Obiektowew języku C++ Zadania L4

Programowanie w języku C++

PARADYGMATY PROGRAMOWANIA Wykład 2

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

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

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Technologie cyfrowe semestr letni 2018/2019

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

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

DYNAMICZNE PRZYDZIELANIE PAMIECI

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

Mechanizm dziedziczenia

Materiały do zajęć VII

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Technologie cyfrowe semestr letni 2018/2019

Programowanie obiektowe język C++

Programowanie i struktury danych

Ilustracja metody Monte Carlo do obliczania pola obszaru D zawartego w kwadracie [a, b] [a, b].

Do czego służą klasy?

EGZAMIN 2 (14 WRZEŚNIA 2015) JĘZYK C++

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

Programowanie 2. Język C++. Wykład Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Zwracanie obiektu. Funkcja może zwracać obiekty: #include"stdafx.h #include <iostream> using namespace std; class samp { inti; public:

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Liczby całkowite i rzeczywiste

Wstęp do programowania. Dariusz Wardecki, wyk. X

Projektowanie klas c.d. Projektowanie klas przykład

Transkrypt:

i obiekty Programowanie i obiekty uzupełnienie notatek: dr Jerzy Białkowski

i obiekty 1 2 3 4

i obiekty Obiektowość języka C++ Na tym wykładzie poznamy: ˆ Klasa (w języku C++ rozszerzenie struktury, typ ), obiekt (instancja, zmienna ), konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie, ukrywanie informacji (public, protected, private, friend) ˆ Polimorfizm i metody wirtualne ˆ Dziedziczenie

i obiekty class NazwaKlasy { public: typ1 zmienna1; typ2 zmienna2; metoda1... private: typ1 zmienna3; typ2 zmienna4; metoda2... }; Klasa, obiekt, dostęp do danych Instancją jest obiekt: NazwaKlasy obiekt;.

i obiekty 1 #include <i o s t r e a m > 2 # include <cmath> 3 using namespace std ; 4 5 class Punkt { 6 7 private : 8 double x ; 9 double y ; 10 11 public : 12 double z ; 13 14 void setx ( double xx ) { 15 x = xx ; 16 } 17 18 void sety ( double yy ) { 19 y = yy ; 20 } 21 22

i obiekty 23 double getx ( ) { 24 return x ; 25 } 26 27 double gety ( ) { 28 return y ; 29 } 30 } ; 31 32 33 int main ( ) { 34 35 Punkt p1 ; 36 37 p1. setx ( 3. 1 4 ) ; 38 p1. sety ( 1. 1 4 ) ; 39 p1. z =.0; 40 41 cout << p1. getx ( ) << endl ; 42 // cout << p1. x << e n d l ; Blad! 43 44 }

i obiekty this Wskaźnik this przechowuje adres do obiektu. void setx(double xx) { x = xx; }

i obiekty this Wskaźnik this przechowuje adres do obiektu. void setx(double xx) { x = xx; } void setx(double x) { this->x = x; }

i obiekty jest metodą wywoływaną w trakcie tworzenia każdego obiektu danej. ˆ ma identyczną nazwę jak nazwa, ˆ nie zwraca żadnej wartości, ˆ znajduje się w przestrzeni publicznej public:

i obiekty 1 #include <i o s t r e a m > 2 # include <cmath> 3 using namespace std ; 4 5 class Punkt { 6 7 private : 8 double x ; 9 double y ; 10 11 public : 12 13 Punkt ( ) { 14 this >x = 0 ; 15 this >y = 0 ; 16 } 17 18 Punkt ( double x, double y ) { 19 this >x = x ; 20 this >y = y ; 21 } 22

i obiekty 23 void setx ( double x ) { 24 this >x = x ; 25 } 26 void sety ( double y ) { 27 this >y = y ; 28 } 29 double getx ( ) { 30 return this >x ; 31 } 32 double gety ( ) { 33 return this >y ; 34 } 35 } ; 36 37 int main ( ) { 38 39 Punkt p1, p2 ( 3. 1 4, 5. 3 4 ) ; 40 41 cout << p1. getx ( ) << endl ; 42 cout << p2. getx ( ) << endl ; 43 44 }

i obiekty kopiujący 1 Punkt p1, p2 ( 3. 1 4, 5. 3 4 ) ; 2 Punkt kopia_p2 ( p2 ) ; 3 4 cout << p1. getx ( ) << endl ; 5 cout << p2. getx ( ) << endl ; 6 cout << kopia_p2. getx ( ) << endl ;

i obiekty kopiujący 1 Punkt p1, p2 ( 3. 1 4, 5. 3 4 ) ; 2 Punkt kopia_p2 ( p2 ) ; 3 4 cout << p1. getx ( ) << endl ; 5 cout << p2. getx ( ) << endl ; 6 cout << kopia_p2. getx ( ) << endl ; Wynik: 0 3.14 3.14

i obiekty Wykonuje się w celu zwolnienia pamięci; następuje niszczenie obiektu danej. 1 Punkt p1, p2 ( 3. 1 4, 5. 3 4 ) ; 2 Punkt *p3 = new Punkt ( 7. 2, 4. 4 ) ; 3 4 cout << p1. getx ( ) << endl ; 5 cout << p2. getx ( ) << endl ; 6 cout << p3 >getx ( ) << endl ; 7 delete p3 ; // wywołujemy d e s t r u k t o r

i obiekty Wykonuje się w celu zwolnienia pamięci; następuje niszczenie obiektu danej. 1 Punkt p1, p2 ( 3. 1 4, 5. 3 4 ) ; 2 Punkt *p3 = new Punkt ( 7. 2, 4. 4 ) ; 3 4 cout << p1. getx ( ) << endl ; 5 cout << p2. getx ( ) << endl ; 6 cout << p3 >getx ( ) << endl ; 7 delete p3 ; // wywołujemy d e s t r u k t o r Zasady tworzenia destruktora są podobne do konstruktora. Nazwa destruktora zaczyna się od ~ i nazwy.

i obiekty 1 #include <i o s t r e a m > 2 using namespace std ; 3 4 class Punkt { 5 6 private : 7 double x ; 8 double y ; 9 double * tab ; 10 11 public : 12 Punkt ( double x, double y ) { 13 this >x = x ; 14 this >y = y ; 15 tab = new double [ 1 0 ] ; 16 } 17 18 Punkt ( ) { 19 delete [ ] tab ; 20 cout << " " << this >x << endl ; 21 } 22 } ;

i obiekty 23 24 int main ( ) { 25 26 Punkt p2 ( 3. 1 4, 5. 3 4 ) ; 27 Punkt *p3 = new Punkt ( 7. 7, 4. 4 ) ; 28 29 delete p3 ; 30 31 }

i obiekty Metody Monte Carlo Stosowana do modelowania matematycznego procesów zbyt złożonych (obliczania całek, łańcuchów procesów statystycznych), aby można było przewidzieć ich wyniki za pomocą podejścia analitycznego. Istotną rolę w metodzie MC odgrywa losowanie (wybór przypadkowy) wielkości charakteryzujących proces, przy czym losowanie dokonywane jest zgodnie z rozkładem, który musi być znany. - Źródło: Wikipedia.

i obiekty ˆ Obliczenie liczby π - losowanie punktów z kwadratu [ 1, 1] [ 1, 1] i zliczenie punktów w kole jednostkowym o środku (0, 0). Prawdopodobieńswo wylosowania punktu z koła wynosi π 4.

i obiekty ˆ Obliczenie liczby π - losowanie punktów z kwadratu [ 1, 1] [ 1, 1] i zliczenie punktów w kole jednostkowym o środku (0, 0). Prawdopodobieńswo wylosowania punktu z koła wynosi π 4. ˆ Obliczenie całki b a f (x)dx (b a) Σn i=1 f (x i ) n, gdzie punkty x i są wylosowane z przedziału [a, b].

i obiekty 1 #include <i o s t r e a m > 2 #include <c s t d l i b > 3 # include <cmath> 4 using namespace std ; 5 6 class Punkt { 7 8 private : 9 double x, y ; 10 11 public : 12 13 Punkt ( ) ; 14 Punkt ( double x, double y ) ; 15 void losuj_wsp ( double a, double b, double c, double d ) ; 16 double dlugosc_wek ( ) ; 17 18 } ; 19 double losuj ( ) ; 20 double losuj ( double a, double b ) ; 21

i obiekty 22 int main ( ) { 23 24 srand ( time ( 0 ) ) ; 25 26 Punkt p ; 27 long n ; 28 cin >> n ; 29 long licznik =0; 30 31 for ( long i=0; i<n ; i++){ 32 p. losuj_wsp ( 1,1, 1,1) ; 33 if ( p. dlugosc_wek ( ) <= 1 ) 34 licznik++; 35 } 36 37 cout << "Wynik "<< 4* double ( licznik ) /double ( n ) << "\n" ; 38 cout << " Pi "<< M_PI << "\n" ; 39 40 }// main 41 42

i obiekty 43 Punkt : : Punkt ( ) { 44 this >x = 0 ; 45 this >y = 0 ; 46 } 47 48 Punkt : : Punkt ( double x, double y ) { 49 this >x = x ; 50 this >y = y ; 51 } 52 53 void Punkt : : losuj_wsp ( double a, double b, double c, double d ) { 54 this >x = losuj ( a, b ) ; 55 this >y = losuj ( c, d ) ; 56 } 57 58 double Punkt : : dlugosc_wek ( ) { 59 return sqrt ( this >x* this >x + this >y* this >y ) ; 60 } 61 62

i obiekty 63 double losuj ( ) { 64 return rand ( ) /double ( RAND_MAX ) ; 65 } 66 double losuj ( double a, double b ) { 67 return ( b a ) *losuj ( ) +a ; 68 }

i obiekty Igła Buffona Rzucamy igłę długości 1 na podłogę pomalowaną w cienkie paski oddalone od siebie o 1. Jakie jest prawdopodobieństwo, że igła przetnie pasek na podłodze?

i obiekty 1 #include <i o s t r e a m > 2 #include <c s t d l i b > 3 # include <cmath> 4 using namespace std ; 5 6 class Punkt { 7 8 private : 9 double x, y ; 10 11 public : 12 Punkt ( ) ; 13 Punkt ( double x, double y ) ; 14 double getx ( ) ; 15 double gety ( ) ; 16 void losuj_wsp ( double a, double b, 17 double c, double d ) ; 18 double dlugosc_wek ( ) ; 19 } ; 20 21 double losuj ( ) ; 22 double losuj ( double a, double b ) ;

i obiekty 23 24 int main ( ) { 25 26 srand ( time ( 0 ) ) ; 27 28 Punkt p ; 29 long n ; 30 cin >> n ; 31 long licznik =0; 32 33 for ( long i=0; i<n ; i++){ 34 p. losuj_wsp ( 0, 1, 0, 2 * M_PI ) ; 35 if ( floor ( p. getx ( ) ) 36!= floor ( p. getx ( )+cos ( p. gety ( ) ) ) ) 37 licznik++; 38 } 39 40 cout << " Wynik " 41 << double ( licznik ) /double ( n ) << "\n" ; 42 43 }// main 44

i obiekty 45 Punkt : : Punkt ( ) { 46 this >x = 0 ; 47 this >y = 0 ; 48 } 49 50 Punkt : : Punkt ( double x, double y ) { 51 this >x = x ; 52 this >y = y ; 53 } 54 55 double Punkt : : getx ( ) { 56 return this >x ; 57 } 58 double Punkt : : gety ( ) { 59 return this >y ; 60 } 61 62 void Punkt : : losuj_wsp ( double a, double b, 63 double c, double d ) { 64 this >x = losuj ( a, b ) ; 65 this >y = losuj ( c, d ) ; 66 }

i obiekty 67 68 double Punkt : : dlugosc_wek ( ) { 69 return sqrt ( this >x* this >x 70 + this >y* this >y ) ; 71 } 72 73 74 double losuj ( ) { 75 return rand ( ) /double ( RAND_MAX ) ; 76 } 77 78 double losuj ( double a, double b ) { 79 return ( b a ) *losuj ( ) +a ; 80 }

i obiekty Igła Buffona - wynik Wykonując 1000 000 000 pętli otrzymujemy wynik 0.636608. Ciąg liczb 6, 3, 6, 6, 1 sprawdzamy w Encyklopedii ciągów liczb całkowitych: http://www.research.att.com/~njas/sequences/

i obiekty Igła Buffona - wynik Wykonując 1000 000 000 pętli otrzymujemy wynik 0.636608. Ciąg liczb 6, 3, 6, 6, 1 sprawdzamy w Encyklopedii ciągów liczb całkowitych: http://www.research.att.com/~njas/sequences/ wynik 2 π.

i obiekty Zadania Zadanie Napisz program, który oblicza średnią odległość pomiędzy dwoma wylosowanymi punktami kwadratu [0, 1] [0, 1].

i obiekty Zadania Zadanie Napisz program, który oblicza średnią odległość pomiędzy dwoma wylosowanymi punktami kwadratu [0, 1] [0, 1]. Zadanie Napisz program, który dla danej wejściowej n oblicza sumę Ile wynosi Σ k=1 1 k 2? Σ n k=1 1 k 2.

i obiekty Zadania Zadanie Napisz program, który oblicza średnią odległość pomiędzy dwoma wylosowanymi punktami kwadratu [0, 1] [0, 1]. Zadanie Napisz program, który dla danej wejściowej n oblicza sumę Ile wynosi Σ k=1 1 k 2? Σ n k=1 1 k 2. Skorzystaj z Encyklopedii ciągów liczb całkowitych i postaw odpowiednie hipotezy.

i obiekty Uwaga Nie zawsze użycie metody Monte Carlo jest korzystne pod względem czasu działania lub dokładności wyniku. Zadanie Napisz trzy programy, który obliczają całkę oznaczoną 1 gdzie punkty x i odpowiednio 0 Σn 4 dx 1 + x 2 1 są wylosowane z przedziału [0, 1], 4 i=1 1+xi 2 n 2 są wylosowane z przedziału [ i 1 n, i n ], 3 przyjmują wartość 2i 1 2n. Porównaj wyniki otrzymane przez te programy i czas działania tych programów.,

i obiekty 1 #include <i o s t r e a m > 2 #include <c s t d l i b > 3 # include <cmath> 4 #include <ctime> 5 using namespace std ; 6 7 class Losuj { 8 public : 9 Losuj ( ) { srand ( time ( 0 ) ) ; } 10 static double Wartosc ( ) { 11 return rand ( ) /double ( RAND_MAX ) ; 12 } 13 static double Wartosc ( double pocz, 14 double koniec ) { 15 return ( koniec pocz ) * Wartosc ( ) + pocz ; 16 } 17 } ; 18 19 class Funkcja { 20 private : 21 long iloscprobek ; 22 double dlugoscprzedzialu ;

i obiekty 23 24 public : 25 Funkcja ( ) { 26 iloscprobek = 1 ; 27 dlugoscprzedzialu = 1. 0 / iloscprobek ; 28 } 29 30 Funkcja ( long iloscprobek ) { 31 this >iloscprobek = iloscprobek ; 32 dlugoscprzedzialu = 1. 0 / iloscprobek ; 33 } 34 35 double Calka1 ( ) { 36 double t, pi =0.0; 37 for ( long i=0; i < iloscprobek ; i++) { 38 t = Losuj : : Wartosc ( ) ; 39 pi = pi + 4. 0 / ( 1. 0 + t*t ) ; 40 } 41 return pi* dlugoscprzedzialu ; 42 } 43 44

i obiekty 45 double Calka2 ( ) { 46 double t, pi =0.0; 47 for ( long i=0; i < iloscprobek ; i++) { 48 t = Losuj : : Wartosc ( dlugoscprzedzialu *i, 49 dlugoscprzedzialu *( i+1) ) ; 50 pi = pi + 4. 0 / ( 1. 0 + t*t ) ; 51 } 52 return pi* dlugoscprzedzialu ; 53 } 54 55 double Calka3 ( ) { 56 double t, pi =0.0, w ; 57 w = 1. 0 / iloscprobek ; 58 for ( long i=0; i < iloscprobek ; i++) { 59 t = ( i + 0. 5 ) * w ; 60 pi = pi + 4. 0 / ( 1. 0 + t*t ) ; 61 } 62 return pi* w ; 63 } 64 } ; 65 66

i obiekty 67 int main ( int argc, char * argv [ ] ) { 68 Funkcja f = Funkcja (1000) ; 69 70 cout << " Calka liczona pierwsza metoda " 71 << f. Calka1 ( ) << endl ; 72 cout << " Calka liczona druga metoda " 73 << f. Calka2 ( ) << endl ; 74 cout << " Calka liczona trzecia metoda " 75 << f. Calka3 ( ) << endl ; 76 }

i obiekty Dziękuję za uwagę.