ALGORYTMY I STRUKTURY DANYCH

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

Download "ALGORYTMY I STRUKTURY DANYCH"

Transkrypt

1 Akademia Rolnicza im. Augusta Cieszkowskiego w Poznaniu - Instytut Inżynierii Rolniczej - ALGORYTMY I STRUKTURY DANYCH Prowadzący: dr inż. Radosław J. Kozłowski www:

2 Struktury podstawy Algorytmy i struktury danych Struktura jest zbiorem logicznie powiązanych ze sobą danych. Struktura to złożony typ danych zbudowany z elementów innych typów (mogą to być typy wbudowane w język jak i zdefiniowane przez programistę).

3 Struktury podstawy Algorytmy i struktury danych Definicję struktury rozpoczyna słowo struct po nim następuje nazwa struktury (w naszym przykładzie jest to słowo 'punkt'). struct punkt float x; float y; };

4 Struktury podstawy Algorytmy i struktury danych struct punkt float x; float y; }; Nazwa struktury wykorzystywana jest do deklarowania tzw. zmiennych strukturalnych. W nawiasach klamrowych deklaruje się poszczególne są składowe struktury którymi mogą być zarówno zmienne jak i funkcje.

5 Struktury podstawy Algorytmy i struktury danych Składowe struktury muszą mieć różne nazwy, co oznacza że nie możemy zdefiniować struktury w ten sposób : struct punkt float x; float x; };

6 Struktury podstawy Algorytmy i struktury danych Dwie różne struktury mogą mieć składowe o tych samych nazwach. struct punkt float x; float y; }; struct punkt3d float x; float y; float z; };

7 Struktury podstawy Algorytmy i struktury danych Zmienne strukturalne są tworzone dokładnie w taki sam sposób jak inne zmienne. Jeśli chcemy utworzyć egzemplarz struktury typu punkt piszemy : punkt A; Jeśli chcemy utworzyć całą tablicę punków deklarujemy ją w ten sposób : punkt Punkty[100];

8 Struktury podstawy Algorytmy i struktury danych Dostęp do zmiennych składowych uzyskujemy dzięki dwóm operatorom : operatorowi kropki oraz operatorowi ->('strzałki'). Kropką posługujemy się wówczas, gdy mamy zmienną lub referencję do struktury np. : punkt A; A.x=1.01; A.y=23.12; cout<<a.x<<' '<<A.y<<endl; &ARef=A; ARef.x=10; ARef.y=9; cout<<a.x<<' '<<A.y<<endl;

9 Struktury podstawy Deklarację struktury można połączyć z utworzeniem odpowiedniej zmiennej strukturalnej. W tym celu należy umieścić nazwę zmiennej pomiędzy zamykającym nawiasem klamrowym a następującym po nim średnikiem. struct punkt float x; float y; } góralewo, góraprawo;

10 Struktury - przykład wykorzystania Program obsługujący listy adresowe (Kent Reisdorph Borland C++ Builder 3 ) Rozwiązanie 1: Utworzyć szereg tablic dla imion, nazwisk i pozostałych elementów adresu. Rozwiązanie 2: Utworzyć pojedynczą strukturę grupującą wszystkie pola w jedną spójną całość.

11 Struktury - przykład wykorzystania Aby móc wykorzystać strukturę, trzeba wpierw zdefiniować jej postać, a następnie utworzyć zmienne, które przechowywać będą rzeczywiste dane. Definicję struktury rozpoczynamy słowem kluczowym struct. Następnie definiujemy poszczególne pola. struct mailinglistrecord char firstname[20]; char lastname[20]; char address[50]; char city[20]; char state[5]; int zip; bool afriend; };

12 Struktury - przykład wykorzystania Po opisaniu postaci struktury możemy już ją urzeczywistnić. Tworzymy zmienną strukturalną wpisując poniższą linię kodu wewnątrz funkcji main(). mailinglistrecord record; Powyższa deklaracja powoduje zarezerwowanie bloku pamięci oraz utworzenie zmiennej strukturalnej record. Zmienna ta zawiera wszystkie pola wchodzące w skład struktury.

13 Struktury - przykład wykorzystania Wypełnienie zmiennej możemy dokonać wykorzystując funkcję strcpy(). strcpy(record.firstname, Jan ); strcpy(record.lastname, Kowalski ); strcpy(record.address, Polna 22 ); strcpy(record.city, Poznan ); strcpy(record.state, Wielkopolska ); record.zip = 64444; record.afriend = true;

14 Struktury - przykład wykorzystania Lub bezpośrednio podczas deklaracji: mailinglistrecord rec = Jan, Kowalski, Polna 22, Poznan, Wielkopolska, 64444, true };

15 Struktury - przykład wykorzystania 01: #include <condefs.h> 02: #include <iostream.h> 03: #include <conio.h> 04: #pragma hdrstop 05: #include "structur.h" 06: void displayrecord(int, mailinglistrecord mlrec); 07: int main(int, char**) 08: // utwórz tablicę struktur typu mailinglistrecord 09: mailinglistrecord listarray[3]; 10: cout << endl; 11: int index = 0; // wprowadź trzy rekordy 12: do 13: cout << "Imię: "; 14: cin.getline(listarray[index].firstname,sizeof(listarray[index].firstname) - 1); 15: cout << "Nazwisko: "; 16: cin.getline(listarray[index].lastname,sizeof(listarray[index].lastname) - 1); 17: cout << "Ulica i nr domu: "; 18: cin.getline(listarray[index].address,sizeof(listarray[index].address) - 1); 19: cout << "Miasto: "; 20: cin.getline(listarray[index].city,sizeof(listarray[index].city) - 1); 21: cout << "Stan: "; 22: cin.getline(listarray[index].state,sizeof(listarray[index].state) - 1); 23: char buff[10]; 24: cout << "Kod pocztowy: "; 25: cin.getline(buff, sizeof(buff) - 1); 26: listarray[index].zip = atoi(buff); 27: index++; 28: cout << endl; 29: } 30: while (index < 3); 31: clrscr(); // wyczyść ekran 32: for (int i=0;i<3;i++) // wyświetl trzy rekordy 33: 34: displayrecord(i, listarray[i]); 35: } // zapytaj użytkownika o numer rekordu 36: cout << "Podaj numer rekordu: "; 37: int rec; // czy podano właściwy numer? 38: do 39: rec = getch(); 40: rec -= 49; 41: } while (rec < 0 rec > 2); // przepisz rekord do tymczasowej struktury 42: mailinglistrecord temp = listarray[rec]; 43: clrscr(); 44: cout << endl; // wyświetl rekord 45: displayrecord(rec, temp); 46: getch(); 47: return 0; 48: } 49: void displayrecord(int num, mailinglistrecord mlrec) 50: 51: cout << "Rekord " << (num + 1) << ":" << endl; 52: cout << "Nazwisko: " << mlrec.firstname << " "; 53: cout << mlrec.lastname; 54: cout << endl; 55: cout << "Adres: " << mlrec.address; 56: cout << endl << " "; 57: cout << mlrec.city << ", "; 58: cout << mlrec.state << " "; 59: cout << mlrec.zip; 60: cout << endl << endl; 61: }

16 Struktury - przykład wykorzystania Dołączony plik nagłówkowy z definicją struktury #ifndef _STRUCTUR_H #define _STRUCTUR_H struct mailinglistrecord char firstname[20]; char lastname[20]; char address[50]; char city[20]; char state[5]; int zip; }; fragment kodu (tzw. strażnik, sentry) mający na celu sprawdzenie czy dany plik został już włączony do programu. #endif

17 Struktury - przykład wykorzystania 01: #include <condefs.h> 02: #include <iostream.h> 03: #include <conio.h> 04: #pragma hdrstop 05: #include "structur.h" 06: void displayrecord(int, mailinglistrecord mlrec); 07: int main(int, char**) 08: // utwórz tablicę struktur typu mailinglistrecord 09: mailinglistrecord listarray[3]; 10: cout << endl; 11: int index = 0; // wprowadź trzy rekordy 12: do 13: cout << "Imię: "; 14: cin.getline(listarray[index].firstname,sizeof(listarray[index].firstname) - 1); 15: cout << "Nazwisko: "; 16: cin.getline(listarray[index].lastname,sizeof(listarray[index].lastname) - 1); 17: cout << "Ulica i nr domu: "; 18: cin.getline(listarray[index].address,sizeof(listarray[index].address) - 1); 19: cout << "Miasto: "; 20: cin.getline(listarray[index].city,sizeof(listarray[index].city) - 1); 21: cout << "Stan: "; 22: cin.getline(listarray[index].state,sizeof(listarray[index].state) - 1); 23: char buff[10]; 24: cout << "Kod pocztowy: "; 25: cin.getline(buff, sizeof(buff) - 1); 26: listarray[index].zip = atoi(buff); 27: index++; 28: cout << endl; 29: } 30: while (index < 3); 31: clrscr(); // wyczyść ekran funkcja getline() pobierająca całą linię z dowolnego urządzenia wejściowego funkcja atoi() konwertująca char na int

18 Struktury - przykład wykorzystania Fragment kodu określający numer rekordu wybranego przez użytkownika. Ponieważ rekordy w tablicy numeruje się od 0, instrukcja cyklu do-while pobiera kod danego klawisza 1-3 a następnie odejmuje kod ASCII znaku 1 czyli : for (int i=0;i<3;i++) // wyświetl trzy rekordy 33: 34: displayrecord(i, listarray[i]); 35: } // zapytaj użytkownika o numer rekordu 36: cout << "Podaj numer rekordu: "; 37: int rec; // czy podano właściwy numer? 38: do 39: rec = getch(); 40: rec -= 49; 41: } while (rec < 0 rec > 2); // przepisz rekord do tymczasowej struktury 42: mailinglistrecord temp = listarray[rec]; 43: clrscr(); 44: cout << endl; // wyświetl rekord 45: displayrecord(rec, temp); 46: getch(); 47: return 0; 48: } 49: void displayrecord(int num, mailinglistrecord mlrec) 50: 51: cout << "Rekord " << (num + 1) << ":" << endl; 52: cout << "Nazwisko: " << mlrec.firstname << " "; 53: cout << mlrec.lastname; 54: cout << endl; 55: cout << "Adres: " << mlrec.address; 56: cout << endl << " "; 57: cout << mlrec.city << ", "; 58: cout << mlrec.state << " "; 59: cout << mlrec.zip; 60: cout << endl << endl; 61: }

19 Struktury - przykład wykorzystania zmiennej temp przypisanie zawartości jednej ze struktur z tablicy listarray 32: for (int i=0;i<3;i++) // wyświetl trzy rekordy 33: 34: displayrecord(i, listarray[i]); 35: } // zapytaj użytkownika o numer rekordu 36: cout << "Podaj numer rekordu: "; 37: int rec; // czy podano właściwy numer? 38: do 39: rec = getch(); 40: rec -= 49; 41: } while (rec < 0 rec > 2); // przepisz rekord do tymczasowej struktury 42: mailinglistrecord temp = listarray[rec]; 43: clrscr(); 44: cout << endl; // wyświetl rekord 45: displayrecord(rec, temp); 46: getch(); 47: return 0; 48: } 49: void displayrecord(int num, mailinglistrecord mlrec) 50: 51: cout << "Rekord " << (num + 1) << ":" << endl; 52: cout << "Nazwisko: " << mlrec.firstname << " "; 53: cout << mlrec.lastname; 54: cout << endl; 55: cout << "Adres: " << mlrec.address; 56: cout << endl << " "; 57: cout << mlrec.city << ", "; 58: cout << mlrec.state << " "; 59: cout << mlrec.zip; 60: cout << endl << endl; 61: }

20 Funkcje jako elementy struktury struct Data int dzien, miesiac, rok; void Fdrukuj(); Data(); }; //Definicja struktury //Prototyp funkcji //Konstruktor struktury void Data::Fdrukuj() //Definicja funkcji char *mon[] =... }; cout << dzien << ". " << mon[miesiac-1] << ". " << rok; } Data::Data(void) //Początkowa data - Konstruktor dzien = 3; miesiac = 11; rok = 1979; } int main() Data NStruktura; //Inicjujemy strukturę cout << "\n Sprawdzamy: "; NStruktura.Fdrukuj(); //Wywołanie funkcji cout << " = "; cout << NStruktura.dzien << ". " << NStruktura.miesiac << ". " << NStruktura.rok; (...) return 0; }

21 Konstruktory (1/6) Algorytmy i struktury danych W C++ stosuje się praktykę inicjowania zmiennych, a nie tylko ich alokowania. Do inicjacji zmiennych służą konstruktory. Konstruktor to związana automatycznie z daną strukturą funkcja o nazwie identycznej z nazwą struktury. Konstruktory uruchamiane są automatycznie w chwili tworzenia egzemplarza struktury (zmiennej strukturalnej). Konstruktory pomagają unikać błędów związanych z niezainicjowanymi danymi.

22 Konstruktory (2/6) #include <iostream.h> #include <assert.h> struct punkt float x; float y; punkt (float xx, float yy) x=xx; y=yy; } }; int main() punkt *aptr=new punkt(10,20); assert(aptr!=0); cout<<aptr->x<<' '<<aptr->y<<endl; delete aptr; aptr=0; return 0; }

23 Konstruktory (3/6) Linie : punkt (float xx, float yy) x=xx; y=yy; } to konstruktor struktury. Składowym x i y struktury przypisujemy wartości podane w momencie tworzenia struktury.

24 Konstruktory (4/6) (operatory new i delete) #include <iostream.h> #include <assert.h> struct punkt float x; float y; punkt (float xx, float yy) x=xx; y=yy; } }; int main() } punkt *aptr=new punkt(10,20); assert(aptr!=0); cout<<aptr->x<<' '<<aptr->y<<endl; delete aptr; aptr=0; return 0;

25 Konstruktory (5/6) (operatory new i delete) W powyższym programie użyte zostały dwa operatory new i delete. punkt *aptr=new punkt(10,20); Operator new tworzy automatycznie obiekt o odpowiedniej wielkości*, wywołuje odpowiedni konstruktor i zwraca wskaźnik właściwego typu**. * w powyższym przykładzie jest to obiekt wielkości struktury point ** w powyższym przykładzie jest to wskaźnik do struktury typu point Jeśli z jakiś powodów nie można zaalokować wystarczającej ilości pamięci to (w zależności od wieku kompilatora) albo zwracany jest wskaźnik o wartości 0 (NULL), albo generowany jest wyjątek bad_alloc [1].

26 Konstruktory (6/6) (operatory new i delete) Jeśli nie potrzebujemy już pamięci zarezerwowanej za pomocą operatora new możemy ją zwrócić systemowi operacyjnemu za pomocą operatora delete. Bardzo ważne jest właściwe korzystanie z tych operatorów. Jeśli alokujemy pamięć dla tablicy np.: int *intptr=new int [100]; należy ją zwolnić korzystając z operatora delete w ten sposób : delete [] intptr;

27 Destruktory (1/2) Destruktor jest funkcją wywoływaną w czasie likwidacji zmiennej strukturalnej. Destruktor jest funkcjonalnym przeciwieństwem konstruktora. Do jego zadań należy najczęściej zwalnianie zasobów wykorzystywanych przez zmienną strukturalną. Deklarowanie Destruktora nie jest konieczne (zostanie on utworzony automatycznie), jednak definiować można go tylko raz. Destruktor jest funkcją bezparametrową i nie zwracającą wartości.

28 Destruktory (2/2) struct Rect int wysokosc=5, szerokosc=5; Rect(); //konstruktor ~Rect(); //destruktor }; Rect()::~Rect() cout << Teraz działa destruktor } main() Rect A; delete A; } deklaracja Destruktora definicja Destruktora wywołane Destruktora

29 Hermetyzacja (1) Hermetyzacja mechanizm pozwalający na ochronę danych zawartych w elementach składowych struktury przed dostępem funkcji z zewnątrz struktury. Zasady dostępu określa się w C++ przy pomocy słów: public - publiczny, dostępny, protected - chroniony, dostępny z ograniczeniami, private - niedostępny spoza struktury.

30 Hermetyzacja (2) #include "iostream.h" struct Zwierzak private: int schowek; //DANE PRYWATNE - niedostępne public: void SCHOWAJ(int Xwe);//Funkcje dostępne z zewnątrz int ODDAJ(void); }; void Zwierzak::SCHOWAJ(int Xwe) //definicja funkcji schowek = Xwe; } int Zwierzak::ODDAJ(void) return (schowek); } main() Zwierzak Ciapek, Azor, Kotek; // Struktury "Zwierzak" int Piggy; // zwykla zmienna Ciapek.SCHOWAJ(1); Azor.SCHOWAJ(22); Kotek.SCHOWAJ(-333); Piggy = -4444; cout << "Ciapek ma: " << Ciapek.ODDAJ() << "\n"; cout << "Azor ma: " << Azor.ODDAJ() << "\n"; cout << "Kotek ma: " << Kotek.ODDAJ() << "\n"; cout << "Panna Piggy ma: " << Piggy << "\n"; return 0; }

31 Hermetyzacja (3) Próba nieautoryzowanego dostępu do danych prywatnych zmiennej: cout << Ciapek.schowek; printf("%d", Ciapek.schowek); nie powiedzie się, kompilator wyświetli komunikat o błędzie: Error: 'Zwierzak::schowek' is not accessible in function main() atrybut schowek zmiennej strukturalnej typu Zwierzak (np. Ciapek) nie jest dostępne z wnętrza funkcji main().

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

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

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Zmienne i struktury dynamiczne

Zmienne i struktury dynamiczne Zmienne i struktury dynamiczne Zmienne dynamiczne są to zmienne, które tworzymy w trakcie działania programu za pomocą operatora new. Usuwa się je operatorem delete. Czas ich występowania w programie jest

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

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

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Szablony klas, zastosowanie szablonów w programach

Szablony klas, zastosowanie szablonów w programach Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do

Bardziej szczegółowo

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

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

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

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Pojęcie struktury i klasy. Konstruktor i destruktor. Spotkanie 08 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Spotkanie 08 Klasy: definicja a deklaracja klasy dane składowe

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 OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu

Bardziej szczegółowo

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

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d. Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 7 Przegląd typów strukturalnych - klasy i obiekty - c.d. Klasa - powtórzenie

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

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.

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

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

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

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)

Bardziej szczegółowo

Wskaźniki. Informatyka

Wskaźniki. Informatyka Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą

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

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

Wstęp do programowania obiektowego. Wykład 2

Wstęp do programowania obiektowego. Wykład 2 Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Programowanie, część I

Programowanie, część I 11 marca 2010 Kontakt Wstęp Informacje organizacyjne Materiał na ćwiczenia Plan wykładu http://www.fuw.edu.pl/~rwys/prog rwys@fuw.edu.pl tel. 22 55 32 263 Materiał na ćwiczenia Informacje organizacyjne

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

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst

Bardziej szczegółowo

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

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006) Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006) Część 1. Teoria Wyjaśnij pojęcia, podaj przykład: klasa obiekt konstruktor destruktor kapsułkowanie (hermetyzacja) wskaźnik this

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

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

Tbli Tablice obiektów biktó są tworzone dokładnie d tak samo, jak i tablice, składające się z elementów innego typu Tablice, wskaźniki, referencje Tbli Tablice obiektów biktó są tworzone dokładnie d tak samo, jak i tablice, składające się z elementów innego typu #include using namespace std; class cl int

Bardziej szczegółowo

Zofia Kruczkiewicz, ETE8305_2 1

Zofia Kruczkiewicz, ETE8305_2 1 Wprowadzenie do programowania obiektowego w C++ 1. Główne zasady programowania obiektowego: hermetyzacja, dziedziczenie, polimorfizm 2. Pojęcie klasy: sposoby deklarowania i definiowania składowych klasy,

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

DYNAMICZNE PRZYDZIELANIE PAMIECI

DYNAMICZNE PRZYDZIELANIE PAMIECI DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

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

Programowanie w języku C++

Programowanie w języku C++ INE 2022 JĘZYKI PROGRAMOWANIA 1 INE 0050 WSTĘP DO PROGRAMOWANIA Programowanie w języku C++ ( wykł. dr Marek Piasecki ) Literatura: do wykładu dowolny podręcznik do języka C++ na laboratoriach Borland C++

Bardziej szczegółowo

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

Zaawansowane programowanie w języku C++ Klasy w C++ Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

tablica: dane_liczbowe

tablica: dane_liczbowe TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica

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

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

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

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

Bardziej szczegółowo

Algorytmy i język C++

Algorytmy i język C++ Wykład 6 Wskaźniki Wskaźnik nie przechowuje wartości zmiennej ale, podobnie jak tablica, wskazuje miejsce w pamięci, w którym znajduje się zmienna danego typu. W poniższym przykładzie symbol * pomiędzy

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi 1. Napisz wskaźnik do funkcji fun tak zdeklarowanej: T* fun( int, double const& ) const; definicja wskaźnika musi być precyzyjna, inaczej

Bardziej szczegółowo

Definicje klas i obiektów. Tomasz Borzyszkowski

Definicje klas i obiektów. Tomasz Borzyszkowski Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy

Bardziej szczegółowo

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

Operator przypisania. Jest czym innym niż konstruktor kopiujący! Operator przypisania Jest czym innym niż konstruktor kopiujący! Domyślnie jest zdefiniowany jako przypisanie składowa po składowej (zatem niekoniecznie bajt po bajcie). Dla klasy X definiuje się jako X&

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Zaawansowane programowanie w języku C++ Programowanie obiektowe Zaawansowane programowanie w języku C++ Programowanie obiektowe Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

Zadania z podstaw programowania obiektowego

Zadania z podstaw programowania obiektowego Zadania z podstaw programowania obiektowego 1. Napisać klasę Lista, której zadaniem będzie przechowywanie listy liczb całkowitych. Klasa ta ma mieć następujące pola prywatne: int* liczby; tablica, w której

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Programowanie obiektowe i C++ dla matematyków

Programowanie obiektowe i C++ dla matematyków Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 22 XI 2011 Uwaga! Ponieważ już sobie powiedzieliśmy np. o wskaźnikach i referencjach, przez które nie chcemy przegrzebywać

Bardziej szczegółowo

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

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013 Wykład nr 6 (07.12.2012) dr inż. Jarosław Forenc Rok

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto.

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

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg Programowanie obiektowe Materiały przygotował: mgr inż. Wojciech Frohmberg Konstruktor Konstruktor w językach zorientowanych obiektowo pełni podwójną rolę: przydziela pamięć na obiekt, zdefiniowany klasą

Bardziej szczegółowo

INSTRUKCJE REPETYCYJNE PĘTLE

INSTRUKCJE REPETYCYJNE PĘTLE INSTRUKCJE REPETYCYJNE PĘTLE Pętla while( ) while ( wyrażenie ) instrukcja; while ( wyrażenie ) instrukcja_1; instrukcja_2;... instrukcja_n; Pętla wykonywana jest tak długo jak wartość wyrażenie jest różna

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Operatory na rzecz typu TString

Operatory na rzecz typu TString Operatory na rzecz typu TString Dopiszmy w definicji klasy operator[], dzięki któremu potraktujemy obiekt jak tablicę class TString { public: char& operator[]( size_t n ); const char& operator[]( size_t

Bardziej szczegółowo

struct Student { char nazwisko[30]; int wiek; float ocena; }; #define MAX_ROZMIAR 3 Student lista_studentow[max_rozmiar];

struct Student { char nazwisko[30]; int wiek; float ocena; }; #define MAX_ROZMIAR 3 Student lista_studentow[max_rozmiar]; PRZYKLAD p_30.cpp Przykladowa implementacja "listy studentów" z porzadkowaniem wedlug róznych kryteriów zaimplementowanym poprzez "fizyczne" sortowanie danych oraz poprzez sortowanie "logiczne" za pomoca

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykład 12

Programowanie obiektowe w C++ Wykład 12 Programowanie obiektowe w C++ Wykład 12 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) 1 / 22 Zakresowe pętle for double tab[5] {1.12,2.23,3.33,4.12,5.22 for(double x: tab)

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

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 9 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 9 1 Ogłoszenia 17 stycznia 2017 planowany jest termin 0 egzaminu. o Do terminu 0 mogą przystąpić wszystkie osoby które mają zaliczone sprawozdania

Bardziej szczegółowo

Programowanie obiektowe W3

Programowanie obiektowe W3 Programowanie obiektowe W3 Przegląd typów strukturalnych w C++ : tablice statyczne i dynamiczne Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Typy złożone: tablice

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

Programowanie obiektowe w języku

Programowanie obiektowe w języku Programowanie obiektowe w języku C++ Stanisław Gepner sgepner@meil.pw.edu.pl Dziedziczenie Wstęp Zacznijmy od przykładu Przykład rolniczy Każde zwierzątko wydaje dźwięk Każde się tak samo porusza Musimy

Bardziej szczegółowo

Ada-95. Dariusz Wawrzyniak

Ada-95. Dariusz Wawrzyniak Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki

Bardziej szczegółowo

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) Języki i Paradygmaty Programowania Laboratorium 1 Obiekty i klasy C++ Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) UWAGA! Umiejętność tworzenia

Bardziej szczegółowo

int suma; pralka czerwona; // definicja egzemplarza obiektu pralka * wskaŝ; // definicja wskaźnika pralka & ruda = czerwona; // definicja referencji

int suma; pralka czerwona; // definicja egzemplarza obiektu pralka * wskaŝ; // definicja wskaźnika pralka & ruda = czerwona; // definicja referencji Pojęcie klasy Typ zmiennych informuje: o ich rozmiarze w pamięci, jaki rodzaj informacji mogą zawierać, jakie działania moŝna na nich wykonywać. W C++ dane mogą zostać powiązane z funkcjami - znaczy to,

Bardziej szczegółowo

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Program 6 Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Funkcja pobierz_osobe wczytuje dane osoby podanej jako argument. Funkcja wypisz_osobe

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

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

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

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

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 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Historia C++ został zaprojektowany w 1979 przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i

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

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO Wstęp do programowania obiektowego Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO 1 Cele przedmiotu Zapoznanie z podstawowymi pojęciami oraz technikami programowania obiektowego na przykładzie

Bardziej szczegółowo

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Struktury typ definiowany przez uŝytkownika.

Struktury typ definiowany przez uŝytkownika. Struktury typ definiowany przez uŝytkownika. Na tej lekcji nauczymy się, jak grupować dane róŝnych typów, umieszczając je w pojedynczej zmiennej. Nauczymy się tworzyć nowe, zdefiniowane przez siebie typy

Bardziej szczegółowo

Języki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 Materiały do wykładu

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Zadanie 1. Napisz, skompiluj i uruchom program, który wyświetla komunikat: "Mam na imie...".

Zadanie 1. Napisz, skompiluj i uruchom program, który wyświetla komunikat: Mam na imie.... Laboratorium 1. Zadanie 1. Napisz, skompiluj i uruchom program, który wyświetla komunikat: "Mam na imie...". int main() cout

Bardziej szczegółowo

Nowe słowa kluczowe. Komentarze. Wskaźniki typu void. class, delete, new, friend,... /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza)

Nowe słowa kluczowe. Komentarze. Wskaźniki typu void. class, delete, new, friend,... /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza) Różnice między C i C++ (Rozszerzenia C++) Nowe słowa kluczowe class, delete, new, friend,... Komentarze /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza) Wskaźniki typu void W C wskaźniki

Bardziej szczegółowo