PROGRAMOWANIE NISKOPOZIOMOWE
|
|
- Bogna Urban
- 7 lat temu
- Przeglądów:
Transkrypt
1 PROGRAMOWANIE NISKOPOZIOMOWE PN.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
2 1 Asembler i C++ Struktury w C Konsekwencje przeciążania w C++ Referencje w C++ Funkcje inline w C++ Klasy w C++ Dziedziczenie Polimorfizm 2 Ćwiczenia laboratoryjne Zadania Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
3 Struktury w C Asembler i C++ Struktury w C służą do grupowania danych w ramach jednej zmiennej złożonej zwiększanie przejrzystości kodu łatwiejsze przekazywanie danych do funkcji poprawa lokalności kodu c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
4 Struktury w C Struktury w C służą do grupowania danych w ramach jednej zmiennej złożonej zwiększanie przejrzystości kodu łatwiejsze przekazywanie danych do funkcji poprawa lokalności kodu implementacja w asemblerze jako tablice o zmiennych rozmiarach elementy o różnych rozmiarach identyfikacja elementu przez nazwę (lub znacznik) adres startowy struktury offset elementu (wyznacza kompilator) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
5 Struktury w C Struktury w C służą do grupowania danych w ramach jednej zmiennej złożonej zwiększanie przejrzystości kodu łatwiejsze przekazywanie danych do funkcji poprawa lokalności kodu implementacja w asemblerze jako tablice o zmiennych rozmiarach elementy o różnych rozmiarach identyfikacja elementu przez nazwę (lub znacznik) adres startowy struktury offset elementu (wyznacza kompilator) do funkcji przekazywać można przez wartość (kopia na stos!) przez referencję (wskaźnik do struktury) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
6 Przykład struktury Asembler i C++ Struktury w C przykładowa struktura w języku C struct S { short int x; // 2 bajty int y; // 4 bajty double z; // 8 bajtów }; c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
7 Przykład struktury Asembler i C++ Struktury w C przykładowa struktura w języku C struct S { short int x; // 2 bajty int y; // 4 bajty double z; // 8 bajtów }; funkcja z parametrem wskazującym na strukturę S ; void zero_y(s * sp); %define y_offset 4 _zero_y: enter 0,0 mov eax,[ebp+8]; EAX = sp mov dword [eax+y_offset],0 ; sp->y = 0 leave ret c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
8 Zmienne w strukturze Asembler i C++ Struktury w C makro (w stddef.h) zwracające offset elementu, np. offsetof(s,y) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
9 Zmienne w strukturze Asembler i C++ Struktury w C makro (w stddef.h) zwracające offset elementu, np. offsetof(s,y) kompilator gcc układa zmienne w strukturze domyślnie na granicy podwójnego słowa można zdefiniować typ zmiennych umieszczanych na granicy bajtu (1), słowa (2) albo podwójnego słowa (4) jako parametr dla alligned typedef short int unaligned_int attribute ((alligned(1))); c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
10 Struktury w C Zmienne w strukturze makro (w stddef.h) zwracające offset elementu, np. offsetof(s,y) kompilator gcc układa zmienne w strukturze domyślnie na granicy podwójnego słowa można zdefiniować typ zmiennych umieszczanych na granicy bajtu (1), słowa (2) albo podwójnego słowa (4) jako parametr dla alligned typedef short int unaligned_int attribute ((alligned(1))); strukturę można pakować na minimum bajtów: struct S {... } attribute ((packed)); c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
11 Struktury w C Pola bitowe struktury w strukturze C można definiować pola bitowe, np. struct S { unsigned f1: 3; // 3 LSB unsigned f2:10; unsigned f3:11; unsigned f4: 8; // 8 MSB }; c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
12 Struktury w C Pola bitowe struktury w strukturze C można definiować pola bitowe, np. struct S { unsigned f1: 3; // 3 LSB unsigned f2:10; unsigned f3:11; unsigned f4: 8; // 8 MSB }; zmienna typu S (32-bitowa) będzie udostępniać pola bitowe, na których można wykonywać operacje c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
13 Struktury w C Pola bitowe struktury w strukturze C można definiować pola bitowe, np. struct S { unsigned f1: 3; // 3 LSB unsigned f2:10; unsigned f3:11; unsigned f4: 8; // 8 MSB }; zmienna typu S (32-bitowa) będzie udostępniać pola bitowe, na których można wykonywać operacje uwaga na układ bajtów zmiennej wielobajtowej w pamięci: big endian, little endian c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
14 Struktury w C Pola bitowe struktury w strukturze C można definiować pola bitowe, np. struct S { unsigned f1: 3; // 3 LSB unsigned f2:10; unsigned f3:11; unsigned f4: 8; // 8 MSB }; zmienna typu S (32-bitowa) będzie udostępniać pola bitowe, na których można wykonywać operacje uwaga na układ bajtów zmiennej wielobajtowej w pamięci: big endian, little endian częste zastosowanie: dane dla kontrolerów urządzeń c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
15 Konsekwencje przeciążania w C++ Przeciążanie funkcji w C++ funkcje w C++ mogą być przeciążone (overloaded): ta sama nazwa do identyfikacji różnych funkcji #include <stdio.h> void f(int x){ printf("%d\n",x);} void f(double x){ printf("%g\n",x);} c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
16 Konsekwencje przeciążania w C++ Przeciążanie funkcji w C++ funkcje w C++ mogą być przeciążone (overloaded): ta sama nazwa do identyfikacji różnych funkcji #include <stdio.h> void f(int x){ printf("%d\n",x);} void f(double x){ printf("%g\n",x);} DJGPP modyfikuje nazwy dodając przyrostek F z kodem typu argumentu: dla integer: _f Fi dla double : _f Fd c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
17 Konsekwencje przeciążania w C++ Jak kompilator C++ modyfikuje nazwy modyfikacja nazw (ang. mangling) gdy więcej argumentów funkcji, np. void f(int i, int y, double z) typy argumentów kodowane kolejno _f Fiid c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
18 Konsekwencje przeciążania w C++ Jak kompilator C++ modyfikuje nazwy modyfikacja nazw (ang. mangling) gdy więcej argumentów funkcji, np. void f(int i, int y, double z) typy argumentów kodowane kolejno _f Fiid identycznie modyfikowane są nazwy zmiennych globalnych c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
19 Konsekwencje przeciążania w C++ Jak kompilator C++ modyfikuje nazwy modyfikacja nazw (ang. mangling) gdy więcej argumentów funkcji, np. void f(int i, int y, double z) typy argumentów kodowane kolejno _f Fiid identycznie modyfikowane są nazwy zmiennych globalnych a także funkcje standardowe, np. prototyp int printf(const char *,...); c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
20 Konsekwencje przeciążania w C++ Jak kompilator C++ modyfikuje nazwy modyfikacja nazw (ang. mangling) gdy więcej argumentów funkcji, np. void f(int i, int y, double z) typy argumentów kodowane kolejno _f Fiid identycznie modyfikowane są nazwy zmiennych globalnych a także funkcje standardowe, np. prototyp int printf(const char *,...); po kompilacji nazwa funkcji: _printf FPCce c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
21 Konsekwencje przeciążania w C++ Jak kompilator C++ modyfikuje nazwy modyfikacja nazw (ang. mangling) gdy więcej argumentów funkcji, np. void f(int i, int y, double z) typy argumentów kodowane kolejno _f Fiid identycznie modyfikowane są nazwy zmiennych globalnych a także funkcje standardowe, np. prototyp int printf(const char *,...); po kompilacji nazwa funkcji: _printf FPCce gdzie kolejno: F funkcja, P pointer, C const, c character, e ellipsis c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
22 Konsekwencje przeciążania w C++ Jak kompilator C++ modyfikuje nazwy modyfikacja nazw (ang. mangling) gdy więcej argumentów funkcji, np. void f(int i, int y, double z) typy argumentów kodowane kolejno _f Fiid identycznie modyfikowane są nazwy zmiennych globalnych a także funkcje standardowe, np. prototyp int printf(const char *,...); po kompilacji nazwa funkcji: _printf FPCce gdzie kolejno: F funkcja, P pointer, C const, c character, e ellipsis gdy trzeba wołać funkcje z biblioteki C, to wskazać kompilatorowi: extern "C" int printf(const char *,...); c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
23 Referencje w C++ Asembler i C++ Referencje w C++ referencje służą do przekazywania parametrów do funkcji bez konieczności używania wskaźników explicite, np. void f(int &x){ x++;} int main(){ int y = 5; f(y); // kompilator użyje adresu y printf("%d\n", y); return 0; } c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
24 Referencje w C++ Asembler i C++ Referencje w C++ referencje służą do przekazywania parametrów do funkcji bez konieczności używania wskaźników explicite, np. void f(int &x){ x++;} int main(){ int y = 5; f(y); // kompilator użyje adresu y printf("%d\n", y); return 0; } odpowiednią funkcję f piszemy w asemblerze tak, jakby prototyp był: void f(int * xp); c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
25 Funkcje inline w C++ Asembler i C++ Funkcje inline w C++ inline eliminuje konieczność wywoływania funkcji realizującej prosty kod, np. inline int g(int x){ return x*x;} int main(){ int y, x = 5; y = g(x); printf("%d\n", y); return 0; } c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
26 Funkcje inline w C++ Asembler i C++ Funkcje inline w C++ inline eliminuje konieczność wywoływania funkcji realizującej prosty kod, np. inline int g(int x){ return x*x;} int main(){ int y, x = 5; y = g(x); printf("%d\n", y); return 0; } y = g(x) zostanie skompilowane bez korzystania z instrukcji call mov eax,[ebp-8] ; imul eax,eax mov [ebp-4],eax ; x y c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
27 Klasy w C++ Asembler i C++ Klasy w C++ opisują typ obiektu c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
28 Klasy w C++ Asembler i C++ Klasy w C++ opisują typ obiektu klasa jest specjalną strukturą zawierającą składniki dane metody (funkcje składowe) przechowywane w pamięci poza strukturą class Simple{ public: Simple(); // konstruktor obiektów ~Simple(); // destruktor int get_data() const; void set_data(int); private: int data; } c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
29 Klasy w C++ Asembler i C++ Klasy w C++ opisują typ obiektu klasa jest specjalną strukturą zawierającą składniki dane metody (funkcje składowe) przechowywane w pamięci poza strukturą class Simple{ public: Simple(); // konstruktor obiektów ~Simple(); // destruktor int get_data() const; void set_data(int); private: int data; } kompilator generuje kod w asemblerze służący do przekazania funkcji składowej niejawnego parametru wskaźnika this do obiektu danej klasy (tj. tego, na którym metoda ma operować) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
30 Funkcje składowe klasy Simple Klasy w C++ Simple::Simple(){ data = 0;} Simple::~Simple(){} int Simple::get_data() const { return data; } void Simple::set_data(int x) { data = x; } c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
31 Klasy w C++ Kod asemblera dla funkcji składowej funkcja składowa set_data(int x) w konwencji NASM _set_data 6Simplei: push ebp mov ebp, esp mov eax, [ebp+8]; EAX = this mov edx, [ebp+12]; EDX = x mov [eax], edx ; offset dla data jest zero leave ret offset = 0, bo tylko data w strukturze klasy Simple jako ostatni parametr wywołania tej funkcji na stos odkładany musi być adres obiektu, tj. this tak jakby prototyp w C był: void set_data(simple * this, int x); c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
32 Dziedziczenie B od A Asembler i C++ Dziedziczenie #include <cstddef> #include <iostream> using namespace std; class A { public: void cdecl m() { // Microsoft this przekazałby przez ECX cout << "A::m()" << endl;} int ad; }; class B : public A { public: void cdecl m() { cout << "B::m()" << endl;} int bd; }; c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
33 Dziedziczenie Funkcja otrzymująca wskaźnik do obiektu funkcja f void f(a *p) { p->ad = 5; p->m();} c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
34 Dziedziczenie Funkcja otrzymująca wskaźnik do obiektu funkcja f void f(a *p) { p->ad = 5; p->m();} w asemblerze zawiera sztywne wywołanie metody A::m() _f FP1A: push ebp mov ebp, esp mov eax, [ebp+8]; adres obiektu mov dword [eax], 5; mov eax, [ebp+8]; push eax ; adres obiektu na stos call _m 1A ; "sztywne" wywołanie A::m() add esp, 4 leave ret c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
35 Polimorfizm Asembler i C++ Polimorfizm aby funkcja f wywołała metodę B::m() gdy parametrem f jest wskaźnik do obiektu klasy B, trzeba wskazać kompilatorowi C++ by tworzył kod asemblera dla metod wirtualnych, np. #include <cstddef> #include <iostream> using namespace std; class A { public: virtual void cdecl m() { cout << "A::m()" << endl;} int ad; }; class B : public A { public: virtual void cdecl m() { cout << "B::m()" << endl;} int bd; }; c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
36 Polimorfizm Asembler i C++ Polimorfizm kompilator dla każdej klasy tworzy tablicę vtable, w której umieszcza adresy metod wirtualnych c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
37 Polimorfizm Polimorfizm kompilator dla każdej klasy tworzy tablicę vtable, w której umieszcza adresy metod wirtualnych jeśli metoda virtualna jest dostępna w B na zasadzie dziedziczenia z A, to w tablicy wirtualnej dla obiektów klasy B umieszczany jest adres metody zdefiniowanej w A c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
38 Polimorfizm Polimorfizm kompilator dla każdej klasy tworzy tablicę vtable, w której umieszcza adresy metod wirtualnych jeśli metoda virtualna jest dostępna w B na zasadzie dziedziczenia z A, to w tablicy wirtualnej dla obiektów klasy B umieszczany jest adres metody zdefiniowanej w A kompilator Windows, np. g++ umieszcza adres tablicy vtable w dodatkowym polu na początku struktury obiektu danej klasy (offset = 0) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
39 Polimorfizm Polimorfizm kompilator dla każdej klasy tworzy tablicę vtable, w której umieszcza adresy metod wirtualnych jeśli metoda virtualna jest dostępna w B na zasadzie dziedziczenia z A, to w tablicy wirtualnej dla obiektów klasy B umieszczany jest adres metody zdefiniowanej w A kompilator Windows, np. g++ umieszcza adres tablicy vtable w dodatkowym polu na początku struktury obiektu danej klasy (offset = 0) właściwa metoda wywoływana za pomocą instrukcji call z adresem metody wziętym z tablicy vtable c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
40 Polimorfizm Polimorfizm kompilator dla każdej klasy tworzy tablicę vtable, w której umieszcza adresy metod wirtualnych jeśli metoda virtualna jest dostępna w B na zasadzie dziedziczenia z A, to w tablicy wirtualnej dla obiektów klasy B umieszczany jest adres metody zdefiniowanej w A kompilator Windows, np. g++ umieszcza adres tablicy vtable w dodatkowym polu na początku struktury obiektu danej klasy (offset = 0) właściwa metoda wywoływana za pomocą instrukcji call z adresem metody wziętym z tablicy vtable jest to przykład późnego wiązania (ang. late binding) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
41 Polimorfizm Kod asemblera dla funkcji f wywołującej metody wirtualne?f@@yaxpava@@@z: push ebp mov ebp, esp mov eax, [ebp+8] mov dword [eax+4], 5 ; p->ad = 5; mov ecx, [ebp+8] ; ecx = p mov edx, [ecx] ; adres vtable pod offset = 0 obiektu push eax ; push "this" pointer call dword [edx] ; jest tylko jedna metoda wirtualna add esp, 4 pop ebp ret c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
42 Polimorfizm Budowanie programu z modułów C++ i asemblera > nasm -f coff big_math.asm > g++ -c big_int.cpp > g++ -c test_big_int.cpp > g++ -o test_big_int test_big_int.o big_int.o big_math.o c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
43 Ćwiczenia laboratoryjne 1 Asembler i C++ Struktury w C Konsekwencje przeciążania w C++ Referencje w C++ Funkcje inline w C++ Klasy w C++ Dziedziczenie Polimorfizm 2 Ćwiczenia laboratoryjne Zadania Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
44 Zadania Ćwiczenia laboratoryjne Zadania 1 Napisać obiektowy program wielomodułowy (moduł z funkcją main() w C++, poniższe funkcje składowe klas w modułach asemblera), taki że: funkcje napisane w asemblerze wykonują wskazane operacje bitowe na obiektach zawierających pole danych w postaci dwuwymiarowej tablicy danych typu całkowitego. Deklaracje klas i wejście/wyjście realizuje moduł w języku C++. operacja AND(A, B) operacja OR(A, B) operacja XOR(A, B) operacja NOT (A) operacja NAND(A, B) 2 Napisać program (funkcje w asemblerze), który będzie kodował wprowadzany ze standardowego wejścia łańcuch znaków ASCII w tablicy bajtów (np. pikseli obrazu) wykorzystując do tego celu 2 najmłodsze bity każdego elementu tablicy (zastosować strukturę z polami bitowymi). c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
45 Literatura Ćwiczenia laboratoryjne Literatura A. S. Tanenbaum, Strukturalna organizacja systemów komputerowych, Helion, J. Biernat, Architektura komputerów, OWPW, R. Hyde, Profesjonalne programowanie, Helion, R. Hyde, Asembler. Sztuka programowania, Helion, G. Mazur, Programowanie niskopoziomowe, P.A. Carter, PC Assembly Language, D.W. Lewis, Między asemblerem a językiem C. Podstawy oprogramowania wbudowanego, RM, c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/ / 22
PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad.
Bardziej szczegółowoPROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.04 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 3 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.04 Rok akad.
Bardziej szczegółowo4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
Bardziej szczegółowoPROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 4 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 c Dr
Bardziej szczegółowoPraktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu.
Krótki artykuł opisujący trzy podstawowe konwencje wywoływania funkcji C++ (a jest ich więcej). Konwencje wywoływania funkcji nie są tematem, na który można się szeroko rozpisać, jednak należy znać i odróżniać
Bardziej szczegółowo2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe komputerów ASK MP.02 c Dr inż. Ignacy Pardyka 1 UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach 2 Literatura Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka
Bardziej szczegółowoPROGRAMOWANIE NISKOPOZIOMOWE
PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 Wprowadzenie
Bardziej szczegółowoProgramowanie niskopoziomowe
Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym
Bardziej szczegółowoSkładnia C++ Programowanie Obiektowe Mateusz Cicheński
Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory
Bardziej szczegółowoIMIĘ 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ółowoPARADYGMATY 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ółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegółowoPrzeciąż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ółowoW2 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ółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoProgramowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,
Bardziej szczegółowoProgramowanie hybrydowe łączenie C/C++ z asemblerem
Programowanie hybrydowe łączenie C/C++ z asemblerem Konwencje Wywoływanie procedur asemblerowych w kodzie języka wysokiego poziomu wymaga: Ustalenia konwencji nazewniczej używanej w języku programowania
Bardziej szczegółowoPodczas 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ółowoSkładnia C++ Programowanie Obiektowe Mateusz Cicheński
Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Przeciążanie operatorów Słowo
Bardziej szczegółowoĆwiczenie nr 6. Programowanie mieszane
Ćwiczenie nr 6 Programowanie mieszane 6.1 Wstęp Współczesne języki programowania posiadają bardzo rozbudowane elementy językowe, co pozwala w większości przypadków na zdefiniowanie całego kodu programu
Bardziej szczegółowoWykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie
Bardziej szczegółowoWstę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ółowoAssembler w C++ Syntaksa AT&T oraz Intela
Ponownie dodaję artykuł zahaczający o temat assemblera. Na własnej skórze doświadczyłem dzisiaj problemów ze wstawką assemblerową w kodzie C++, dlatego postanowiłem stworzyć artykuł, w którym zbiorę w
Bardziej szczegółowo1. 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ółowoWykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,
Bardziej szczegółowo1. 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ółowoObszar 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ółowoZaawansowane 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ółowoLaboratorium 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ółowoWstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this
Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE
Bardziej szczegółowoDo czego służą klasy?
KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać
Bardziej szczegółowoProgramowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 14 Katarzyna Grzelak 3 czerwca 2019 K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27 Na ostatnim wykładzie: Konstruktor standardowy (domyślny) to taki, który nie ma żadnych argumentów
Bardziej szczegółowoKlasa 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ółowoProgramowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowoObsługa wyjątków. Język C++ WW12
Obsługa wyjątków Pozwala zarządzać błędami wykonania w uporządkowany sposób. Umożliwia automatyczne wywołanie części kodu, funkcji, metod klas, który trzeba wykonać przy powstaniu błędów. try //blok try
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowoWprowadzenie 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ółowoProgramowanie 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ółowodr 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ółowoPrzekazywanie 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ółowoMateriały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Bardziej szczegółowoStrona 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ółowoFunkcje. 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ółowoJę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ółowoDo czego służą klasy?
KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać
Bardziej szczegółowoJzyk 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ółowoKLASA 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ółowoC++ - 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ółowoJę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ółowoWstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:
Bardziej szczegółowoProgramowanie, 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ółowoJava - 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ółowowykł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ółowoWykł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ółowoKLASY 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ółowopublic: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje
Zbudujemy klasę Definicję klasy zapiszmy w pliku tstring.h #ifndef TSTRING_H #define TSTRING_H #include // w pliku nagłówkowym NIE // otwieramy przestrzeni std // interfejs private: // implementacja
Bardziej szczegółowoProgramowanie obiektowe w języku C++ dr inż. Jarosław Forenc
Rok akademicki 2016/2017, Wykład nr 4 2/45 Plan wykładu nr 4 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 7
Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może
Bardziej szczegółowoPodstawowe 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ółowoWstę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ółowoEGZAMIN 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ółowoPlik klasy. h deklaracje klas
Plik klasy. h deklaracje klas KLASY DLA PRZYKŁADÓW Z POLIMORFIZMEM enum dim r1 = 1, r2, r3; class figura public: static int const maxliczbafigur; = 100; static int liczbafigur; dim rn; rodzaj przestrzeni
Bardziej szczegółowoWstę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ółowoJę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ółowoProgramowanie obiektowe język C++
Programowanie obiektowe język C++ Dr inż. Sławomir Samolej D108A, tel: 865 1486, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Podziękowanie: Chcę podziękować dr inż.. Grzegorzowi Hałdasiowi
Bardziej szczegółowoWstę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ółowoPROE 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ółowoProgramowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie
Bardziej szczegółowoWykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład V - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Programowanie obiektowe Dziedziczenie (inheritance) - mechanizm
Bardziej szczegółowoC++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM
POLIMORFIZM Podstawowe pytanie, które nieustannie ma towarzyszyć autorowi programowi: czy gdyby nagle okazało się, że jest więcej... (danych na wejściu, typów danych, czynności, które program ma wykonać,
Bardziej szczegółowoLaboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Bardziej szczegółowoJę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.
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Bardziej szczegółowoDariusz 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ółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoProjektowanie 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ółowoProgramowanie, część I
Programowanie, część I Rafał J. Wysocki Instytut Fizyki Teoretycznej, Wydział Fizyki UW 22 lutego 2011 Rafał J. Wysocki (rwys@fuw.edu.pl) Programowanie, część I 22 lutego 2011 1 / 80 Wstęp Informacje organizacyjne
Bardziej szczegółowoTypy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Bardziej szczegółowoKurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33
Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoWstę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ółowoMETODY 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ółowoZaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce
Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Bardziej szczegółowo2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy
2.4 Dziedziczenie Poprzednie dwa rozdziały które dotyczyły zagadnienia automatów komórkowych na przykładach programów w C++. Mogłyby one sugerować że niekoniecznie trzeba programować obiektowo aby napisać
Bardziej szczegółowoC++ - 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ółowoInstrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji
Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej z przedmiotu Obiektowe programowanie aplikacji Kod przedmiotu: TS1C410201
Bardziej szczegółowoPodstawy 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ółowoWykł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ółowoJę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ółowoProgramowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard
Bardziej szczegółowoInformacje 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ółowoPodstawy 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ółowoProgramowanie 2. Język C++. Wykład 2.
2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...
Bardziej szczegółowoWstę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ółowoTEMAT : 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ółowoLaboratorium 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ółowoOperacje wejścia/wyjścia odsłona pierwsza
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Bardziej szczegółowoProgramowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35
Programowanie w C++ Wykład 3 Katarzyna Grzelak 12 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Zakres ważności obiektów K.Grzelak (Wykład 1) Programowanie w C++ 2 / 35 Zakres ważności obiektów
Bardziej szczegółowo