Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)

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

Download "Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)"

Transkrypt

1 Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Jacek Cichosz Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska

2 Dziedziczenie 221 Dziedziczenie Dziedziczenie to technika pozwalająca na definiowanie nowej klasy (klasy pochodnej) przy wykorzystaniu klasy już istniejącej klasy podstawowej. W klasie pochodnej możemy: zdefiniować dodatkowe pola składowe (wyposażanie klasy pochodnej w dodatkowe atrybuty), zdefiniować dodatkowe funkcje składowe (wzbogacanie klasy pochodnej w nowe zachowania). przedefiniowywać składowe dane i operacje, które istnieją w klasie podstawowej.

3 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą.

4 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą.

5 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą. 3. mucha, motyl, konik polny są wszystkie owadami.

6 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą. 3. mucha, motyl, konik polny są wszystkie owadami. 4. samochód osobowy, ciężarówka, autobus to pojazdy.

7 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą. 3. mucha, motyl, konik polny są wszystkie owadami. 4. samochód osobowy, ciężarówka, autobus to pojazdy. Klasa pochodna może być większa od swojej klasy podstawowej w tym sensie, że zawiera więcej danych i dostarcza więcej funkcji.

8 Dziedziczenie 223 Jak reprezentujemy dziedziczenie w języku UML? Osoba Student ZWIĄZEK DZIEDZICZENIA (UOGÓLNIENIE) W języku UML relację dziedziczenia nazywa się uogólnieniem. Za pomocą uogólnienia modelujemy związki hierarchiczne między pojęciami, a tym samym między klasami. Jeśli klasa pochodna ma jednego przodka, to takie dziedziczenie nazywamy pojedynczym.

9 Dziedziczenie 223 Jak reprezentujemy dziedziczenie w języku UML? Osoba Student KLASA PODSTAWOWA (PRZODEK) ZWIĄZEK DZIEDZICZENIA (UOGÓLNIENIE) W języku UML relację dziedziczenia nazywa się uogólnieniem. Za pomocą uogólnienia modelujemy związki hierarchiczne między pojęciami, a tym samym między klasami. Jeśli klasa pochodna ma jednego przodka, to takie dziedziczenie nazywamy pojedynczym.

10 Dziedziczenie 223 Jak reprezentujemy dziedziczenie w języku UML? Osoba KLASA PODSTAWOWA (PRZODEK) ZWIĄZEK DZIEDZICZENIA (UOGÓLNIENIE) Student KLASA POCHODNA (POTOMEK) W języku UML relację dziedziczenia nazywa się uogólnieniem. Za pomocą uogólnienia modelujemy związki hierarchiczne między pojęciami, a tym samym między klasami. Jeśli klasa pochodna ma jednego przodka, to takie dziedziczenie nazywamy pojedynczym.

11 Dziedziczenie 224 Dziedziczenie kilkupokoleniowe Klasa pochodna może być równocześnie klasą podstawową dla innej klasy pochodnej. Osoba Student Pracownik Wykładowca Hierarchia klas ma najczęściej strukturę drzewa, którego korzeń stanowi klasa podstawowa nie mająca przodków.

12 Dziedziczenie 225 Modelowanie związków hierarchicznych Figura Elipsa Wielokąt Okrąg Trójkąt Prostokąt Kwadrat Dzięki dziedziczeniu możemy modelować skomplikowane hierarchiczne związki pojęciowe.

13 Dziedziczenie 226 Wyodrębnianie wspólnych cech pojęć Pojazd Jednoślad Osobowy Ciężarowy Rower Motocykl Autobus Wywrotka Dzięki dziedziczeniu nie musimy powielać tych cech (właściwości) i zachowań, które są wspólne dla wielu pojęć.

14 Dziedziczenie 227 Podejście bez dziedziczenia class Osoba{ char nazw[32]; class Wykladowca{ char nazw[32]; float pensja; short wydzial; class Student{ char nazw[32]; short grupa; class Pracownik{ char nazw[32]; float pensja;

15 Dziedziczenie 227 Podejście bez dziedziczenia class Osoba{ char nazw[32]; class Wykladowca{ char nazw[32]; float pensja; short wydzial; class Student{ char nazw[32]; short grupa; class Pracownik{ char nazw[32]; float pensja; Pojęcia: Osoba, Student, Wykladowca są reprezentowane jako osobne klasy.

16 Dziedziczenie 227 Podejście bez dziedziczenia class Osoba{ char nazw[32]; class Wykladowca{ char nazw[32]; float pensja; short wydzial; class Student{ char nazw[32]; short grupa; class Pracownik{ char nazw[32]; float pensja; Pojęcia: Osoba, Student, Wykladowca są reprezentowane jako osobne klasy. Zauważamy wspólne atrybuty pojęć: np. nazwisko.

17 Dziedziczenie 228 Podejście z dziedziczeniem class Osoba{ // Klasa podstawowa char nazw[32]; class Student : public Osoba{ // Student jest osobą short grupa; class Pracownik : public Osoba{ // Pracownik jest osobą float pensja; class Wykladowca : public Pracownik{ // Wykładowca jest pracownikiem short wydzial; Dzięki dziedziczeniu reprezentujemy pojęcia bez gubienia ich wspólnych cech.

18 Dziedziczenie 229 Odwołania do składowych klas void f(){ Wykladowca w; Student s; strcpy (w.nazw, "Kowalski"); w.pensja = ; w.wydzial = 4; strcpy( s.nazw, "Nowak" ); s.grupa = 16; } Obiekt klasy podstawowej jest podobiektem obiektu klasy pochodnej. Klasa pochodna dziedziczy wszystkie składniki klasy podstawowej, do których możemy się odwoływać tak, jakby były one zdefiniowane w klasie pochodnej.

19 Dziedziczenie 230 Niejawne konwersje typów Osoba o, * op; Pracownik p, * pp; Student s, * sp; Wykladowca w, *wp; op = &o; // O.K. op = &s; // O.K. student jest osobą op = &w; // O.K. wykładowca jest osobą pp = &w; // O.K. wykładowca jest pracownikiem sp = &o; // Błąd, nie każda osoba jest studentem pp = &o; // Błąd, nie każda osoba jest pracownikiem wp = &o; // Błąd, nie każda osoba jest wykładowcą wp = &p; // Błąd, nie każdy pracownik musi być wykładowcą Obiekt klasy pochodnej można traktować jak obiekt klasy podstawowej, gdy sięga się do niego za pomocą wskaźnika. Stwierdzenie odwrotne nie jest prawdziwe.

20 Dziedziczenie 231 Niejawne konwersje typów void main(){ Osoba o("abacki"); Student s("kowalski", 2); Pracownik p("adamczyk", ); Wykladowca w("nowak", , 16); Osoba & rs = s; // O.K. student jest osobą Osoba & rw = w; // O.K. wykładowca jest osobą Osoba & rp = p; // O.K. pracownik jest osobą Pracownik & rp1 = w; // O.K. wykładowca jest pracownikiem Wykladowca & wr = p; // Źle; nie każdy pracownik jest wykładowcą Wykladowca & wr1 = o; // Źle; nie każda osoba jest wykładowcą } Obiekt klasy pochodnej można traktować jak obiekt klasy podstawowej, gdy sięga się do niego za pomocą referencji. Stwierdzenie odwrotne nie jest prawdziwe.

21 Dziedziczenie 232 Hermetyzacja składowych klas Składowa klasy pochodnej może używać publicznych nazw swojej klasy podstawowej tak samo jak innych składowych, tzn. bez specyfikowania obiektu. Składowa klasy pochodnej nie może sięgać do prywatnych składowych swojej klasy podstawowej. Gdyby było inaczej, to każdy mógłby mieć dostęp do prywatnej składowej klasy przez proste wyprowadzenie klasy pochodnej.

22 Dziedziczenie 233 Dostęp do składowych klas class Osoba{ char nazw[32]; // Dana prywatna (niedostępna w klasach pochodnych) Osoba( const char * n ); class Student : public Osoba{ short grupa; // Dana prywatna Student( const char * n, short s ); void drukuj() const; void Student :: drukuj() const{ cout << "nazwisko: " << nazw << endl; // Źle; brak dostępu do: nazw cout << "grupa: " << grupa; }

23 Dziedziczenie 234 Składowe, których się nie dziedziczy Konstruktor klasy podstawowej nie staje sie automatycznie konstruktorem klasy pochodnej gdyż: nic nie wie o dodatkowych atrybutach zdefiniowanych w klasie pochodnej, Użycie konstruktora z klasy podstawowej spowodowałoby zainicjowanie tylko składników klasy podstawowej, a dane zdefiniowane w klasie pochodnej zostałyby zignorowane. W konstruktorze klasy pochodnej do inicjacji części odziedziczonej można wywołać konstruktor klasy podstawowej. Operator przypisania (operator =) z powodów jak wyżej. Destruktor jest ściśle związany z konstruktorem i dlatego musi być zdefiniowany w klasie pochodnej.

24 Dziedziczenie 235 Konstruktory w obrębie klas pochodnych Obiekt klasy podstawowej jest w pewnym sensie podobiektem klasy pochodnej. Konstruowanie obiektu klasy pochodnej składa się ze skonstruowania obiektu klasy podstawowej i dobudowania tego, co jest właściwe klasie pochodnej. class Osoba{ char nazw[32]; Osoba( const char * n ) { strcpy( nazw, n );} Jeśli konstruktor klasy podstawowej potrzebuje argumentów, to musimy je dostarczyć. class Pracownik : public Osoba{ float pensja; Pracownik( const char * n, float p ) : Osoba( n ), pensja( p ){}

25 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania: class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }

26 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania:najpierw obiekt klasy podstawowej class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }

27 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania:najpierw obiekt klasy podstawowej, składowe klasy pochodnej class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }

28 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania:najpierw obiekt klasy podstawowej, składowe klasy pochodnej, reszta, czyli instrukcje w treści konstruktora klasy pochodnej. class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }

29 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie:

30 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora).

31 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora). Składowe klasy pochodnej w kolejności odwrotnej do deklaracji.

32 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora). Składowe klasy pochodnej w kolejności odwrotnej do deklaracji. Klasy podstawowe w kolejności odwrotnej do deklaracji.

33 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora). Składowe klasy pochodnej w kolejności odwrotnej do deklaracji. Klasy podstawowe w kolejności odwrotnej do deklaracji. Dla klas bez jawnie zdefiniowanego destruktora jest podobnie: class Wykladowca : public Pracownik{ short wydzial; Wykladowca( const char * n, float p, short w ) : Pracownik( n, p ), wydzial( w ){ } Najpierw niszczona jest klasa Wykladowca, następnie klasa Pracownik, a na końcu Osoba.

34 Dziedziczenie 238 Zasłanianie class A{ int x; A() : x( 1 ) {} int y; void f(); void A :: f(){ cout << "x = " << x << ", y = " << y << endl; } class B : public A{ int y; void f(); void B :: f(){ cout << "y = " << y << endl; } void main(){ B ob; ob.y = 3; // Odwolanie do B :: y ob.a :: y = 45; // Odwolanie do A :: y ob.f(); // Odwołanie do B :: f() ob.a :: f(); // Odwołanie do A :: f()

35 Dziedziczenie 239 Zasłanianie Jeśli w klasie podstawowej i klasie pochodnej są składniki o tej samej nazwie, wówczas w zakresie klasy pochodnej składnik z tej klasy zasłania składnik z klasy podstawowej. W klasie pochodnej mogą wystąpić funkcje o takich samych nazwach jak w klasie podstawowej.

36 Dziedziczenie 240 Dziedziczenie a zagnieżdżanie bloków analogia { // Zakres klasy podstawowej int x; // Składniki dziedziczone int y; { // Zakres klasy pochodnej int x; // Składniki klasy pochodnej int y; } } Dziedziczenie jest w pewnym sensie analogiczne do zagnieżdżania bloków. Wewnętrzny blok odpowiada klasie pochodnej, a zewnętrzny klasie podstawowej.

37 Dziedziczenie 241 Przedefiniowywanie zachowania Nadawanie tych samych nazw funkcjom składowym klas podstawowych i pochodnych może służyć do przedefiniowania zachowania w klasach pochodnych. Jest to realizowane przez zasłonięcie nazwy operacji składowej klasy podstawowej przez nazwę operacji w klasie pochodnej. class Osoba{ char nazw[32]; Osoba( const char * ); // Drukuj info o osobie void drukuj() const; class Pracownik : public Osoba{ float pensja; Pracownik( const char *, float ); // Drukuj info o pracowniku void drukuj() const;

38 Dziedziczenie 242 Przedefiniowywanie zachowania // Drukuj info o osobie void Osoba :: drukuj() const{ cout << "Nazwisko: " << nazw << endl; } // W klasie pochodnej możemy wywołać drukuj() // z klasy podstawowej void Pracownik :: drukuj() const{ Osoba :: drukuj(); // Drukuj nazwisko osoby cout << "Zarobki: " << pensja << endl; } void Wykladowca :: drukuj(){ Pracownik :: drukuj(); cout << "Wydzial: " << wydzial << endl; }

39 Dziedziczenie 243 Diagram klas z przesłoniętą funkcją drukuj() Osoba -nazw: char[32] + drukuj() Wspólne pole danych w klasie podstawowej Student -grupa: + drukuj() short Przedefiniowane operacje w klasach potomnych Pracownik -pensja: + drukuj() Wykladowca -wydzial: + drukuj() float short Pola właściwe dla klas potomnych

40 Dziedziczenie 244 Problemy z przedefiniowywaniem zachowania Jeśli mamy wskaźnik do klasy podstawowej np. Osoba, to do jakiego typu należy wskazywany obiekt? Student s("nowak", 16); Wykladowca w("kowalski", ); Pracownik p("kowalczyk", ); Osoba *op; op = &s; op->drukuj(); // Wywoła się: Osoba :: drukuj(); op = &w; op->drukuj(); // Wywoła się: Osoba :: drukuj(); op = &p; op->drukuj(); // Wywoła się: Osoba :: drukuj();

41 Dziedziczenie 245 Rozwiązanie za pomocą pola typu class Osoba{ enum TypOsoby{ O, S, P, W Osoba( const char * s ){ strcpy( nazw, s ); typ_os = O; } void drukuj() const; int typ() const{ return typ_os; } protected: TypOsoby typ_os; private: char nazw[32];

42 Dziedziczenie 246 Konstruktory ustawiają pola typu class Student : public Osoba{ short grupa; Student( const char * s, short g ) : Osoba( s ), grupa( g ){ typ_os = S; } void drukuj() const; class Pracownik : public Osoba{ float pensja; Pracownik( const char * s, float p ) : Osoba( s ), pensja( p ) { typ_os = P; } }

43 Dziedziczenie 247 Funkcja drukująca testuje pole typu // Drukowanie informacji o osobie void drukuj_osobe( const Osoba * op ){ switch( op->typ() ){ case Osoba :: S: ((Student *)op)->drukuj(); // Wywoła: Student :: drukuj() break; case Osoba :: P: ((Pracownik *)op)->drukuj(); // Wywoła: Pracownik :: drukuj() break; case Osoba :: W: ((Wykladowca *)op)->drukuj(); // Wywoła: Wykladowca :: drukuj() break; default: op->drukuj(); // Wywoła: Osoba :: drukuj() break; } }

44 Dziedziczenie 248 Użycie funkcji drukującej w programie void main(){ Pracownik p("kowalski", ); Student s("nowak", 16 ); Wykladowca w("pawlak", , 4 ); Osoba o("jankowski"); drukuj_osobe( &p ); drukuj_osobe( &s ); drukuj_osobe( &w ); drukuj_osobe( &o ); // Drukowanie tablicy osób Osoba * tab[] = {&p, &s, &w, &o for( int i = 0; i < sizeof( tab )/ sizeof(tab[0]) ; i++ ) drukuj_osobe( tab[i] ); }

45 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu.

46 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę.

47 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów:

48 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu,

49 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu, 2. nieumieszczenie wszystkich możliwych przypadków w instrukcji switch.

50 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu, 2. nieumieszczenie wszystkich możliwych przypadków w instrukcji switch. Każde dodanie nowego typu np. Profesor : public Wykladowca powoduje konieczność zmiany wszystkich funkcji, które testują pole typu.

51 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu, 2. nieumieszczenie wszystkich możliwych przypadków w instrukcji switch. Każde dodanie nowego typu np. Profesor : public Wykladowca powoduje konieczność zmiany wszystkich funkcji, które testują pole typu. Wniosek: Technika stosująca pole typu jest podatna na błędy.

52 Dziedziczenie 250 Funkcje wirtualne class Osoba{ char nazw[32]; Osoba( const char * ); virtual void drukuj() const; Osoba :: drukuj() const{ cout << "Nazwisko: " << nazw << endl; } class Student : public Osoba{ short grupa; Student( const char*,short ); virtual void drukuj() const; Student :: drukuj() const{ Osoba :: drukuj(); cout << "Grupa: " << grupa << endl; }

53 Dziedziczenie 251 Funkcje wirtualne class Pracownik: public Osoba{ float pensja; Pracownik( const char*, float ); virtual void drukuj() const; class Wykladowca: public Pracownik{ short wydzial; Wykladowca( const char*, float, short); // Uwaga: ta funkcja też może być wirtualna void drukuj() const;

54 Dziedziczenie 252 Zastosowanie funkcji wirtualnych // Każda osoba zostanie wydrukowana // zgodnie ze swoim typem void drukuj_tablice( const Osoba *p, int rozmiar ){ for( int i = 0; i < rozmiar ; i++ ) p++->drukuj(); // Wywołanie funkcji wirtualnej } void main(){ Student s( "Nowak", 13 ); Wykladowca w1( "Pawlak", , 4 ), w2( "Kowalski", , 6 ); Osoba *tab[] = {&s, &w1, &w2 drukuj_tablice( tab, sizeof(tab)/sizeof( tab[0] )); }

55 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej.

56 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora.

57 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych.

58 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych. Funkcja wirtualna musi być zdefiniowana dla klasy, w której po raz pierwszy została zdeklarowana chyba, że została zdeklarowana jako czysta funkcja wirtualna.

59 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych. Funkcja wirtualna musi być zdefiniowana dla klasy, w której po raz pierwszy została zdeklarowana chyba, że została zdeklarowana jako czysta funkcja wirtualna. Dzięki temu, można używać funkcji wirtualnej nawet wtedy, kiedy z klasy, w której występuje nie wyprowadzi się żadnej klasy pochodnej.

60 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych. Funkcja wirtualna musi być zdefiniowana dla klasy, w której po raz pierwszy została zdeklarowana chyba, że została zdeklarowana jako czysta funkcja wirtualna. Dzięki temu, można używać funkcji wirtualnej nawet wtedy, kiedy z klasy, w której występuje nie wyprowadzi się żadnej klasy pochodnej. Klasa pochodna, która nie potrzebuje specjalnej wersji funkcji wirtualnej, nie musi jej dostarczać.

61 Dziedziczenie 254 Klasy pochodne i pamięć wolna void main(){ Osoba *tab[] = { new Student( "Nowak", 13 ), new Wykladowca( "Pawlak", , 4 ), new Pracownik( "Kowalski", ) } drukuj_tablice( tab, sizeof( tab ) / sizeof( tab[0] )); // Zwalnianie pamięci wskazywanych przez elementy tablicy for( i = 0 ; i < sizeof( tab ) / sizeof( tab[0] ) ; i++ ) delete tab[i]; } Kłopot: operator delete nie dostanie właściwych rozmiarów obiektów klas potomnych klasy Osoba, których pamięć zwalniamy.

62 Dziedziczenie 255 Destruktor wirtualny class Osoba{ char nazw[32]; Osoba( const char * ); virtual void drukuj() const; virtual ~Osoba(); Osoba :: ~Osoba() {} class Student : public Osoba{ short grupa; Student( const char*,short ); virtual void drukuj() const; // Ten destruktor może też być wirtualny ~Student(); Student :: ~Student() {}

63 Dziedziczenie 256 Destruktor wirtualny class Pracownik: public Osoba{ float pensja; Pracownik( const char*, float ); virtual void drukuj() const; virtual ~Pracownik() {} class Wykladowca: public Pracownik{ short wydzial; Wykladowca( const char*, float, short); // Uwaga: ta funkcja też może być wirtualna void drukuj() const; // Ten destruktor też może być wirtualny ~Wykladowca() {}

64 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu.

65 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu. Jeśli typ na który wskazuje wskaźnik wyspecyfikowany w operacji delete jest typem klasy podstawowej, a rzeczywistym typem wskazywanym jest klasa pochodna, to rozmiar obiektu nie zostanie właściwie określony przez kompilator; np.

66 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu. Jeśli typ na który wskazuje wskaźnik wyspecyfikowany w operacji delete jest typem klasy podstawowej, a rzeczywistym typem wskazywanym jest klasa pochodna, to rozmiar obiektu nie zostanie właściwie określony przez kompilator; np. Osoba * ptr = new Student( "Kowalski", 3 ); //... delete ptr; // Zadziała niewłaściwie, jeśli klasa: Osoba // nie ma destruktora wirtualnego

67 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu. Jeśli typ na który wskazuje wskaźnik wyspecyfikowany w operacji delete jest typem klasy podstawowej, a rzeczywistym typem wskazywanym jest klasa pochodna, to rozmiar obiektu nie zostanie właściwie określony przez kompilator; np. Osoba * ptr = new Student( "Kowalski", 3 ); //... delete ptr; // Zadziała niewłaściwie, jeśli klasa: Osoba // nie ma destruktora wirtualnego Nawet pusty destruktor (tzn. nie zawierający żadnych instrukcji) spełni swoje zadanie.

68 Dziedziczenie 258 Destruktor wirtualny zasada użycia Jeśli manipuluje się obiektami pochodnymi za pomocą wskaźnika do klasy pochodnej (przydział i zwalnianie pamięci za pomocą operatorów new i delete), to trzeba dostarczyć destruktor wirtualny w klasach, które zachowują się jak klasy podstawowe (przeznaczone do dalszego wyprowadzania klas pochodnych).

69 Dziedziczenie 258 Destruktor wirtualny zasada użycia Jeśli manipuluje się obiektami pochodnymi za pomocą wskaźnika do klasy pochodnej (przydział i zwalnianie pamięci za pomocą operatorów new i delete), to trzeba dostarczyć destruktor wirtualny w klasach, które zachowują się jak klasy podstawowe (przeznaczone do dalszego wyprowadzania klas pochodnych). Jeśli klasa zawiera choć jedną funkcję wirtualną, to prawie zawsze zachodzi konieczność zdefiniowania dla niej destruktora wirtualnego.

70 Dziedziczenie 259 Nieuporządkowana tablica rekordów class RecTbl{ RecTbl( int r ); RecTbl( const RecTbl & ); RecTbl & operator = ( const RecTbl & ); virtual ~RecTbl(); virtual int dodaj( const char * nzw, Tele tel ); virtual OsobaInfo * szukaj( const char * nzw ); virtual int usun( const char * nzw ); int ile_elementow(); int max_rozmiar(); int jest_pusta(); protected: int rozmiar; int licznik; OsobaInfo * tab;

71 Dziedziczenie 260 Uporządkowana tablica rekordów class SortedTbl : public RecTbl{ SortedTbl( int r ) : RecTbl( r ){ SortedTbl( const RecTbl & src ) : RecTbl( src ) { SortedTbl & operator = ( const SortedTbl & ); ~SortedTbl() {} // Dodaj rekord z zachowaniem porządku int dodaj( const char * nzw, Tele tel ); // Wyszukiwanie binarne OsobaInfo * szukaj( const char * nzw ); // Usuwanie z zachowaniem uporządkowania int usun( const char * nzw );

72 Dziedziczenie 261 Usuwanie rekordu z tablicy nieuporządkowanej // // Na miejsce usuwanego elementu wstawiamy ostatni // Ta operacja nie zachowuje porządku elementów // int RecTbl :: usun( const char * nzw ){ // Wyszukiwanie liniowe RecTbl :: szukaj() OsobaInfo * op = szukaj( nzw ); if( op!= NULL ){ *op = tab[--licznik]; return 1; } else return 0; }

73 Dziedziczenie 262 Usuwanie rekordu z tablicy uporządkowanej int SortedTbl :: usun( const char * nzw ){ // Wyszukiwanie binarne SortedTbl :: szukaj() OsobaInfo * op = szukaj( nzw ); if( op!= NULL ){ int i; for( i = op - tab; i < (licznik - 1) ; i++ ) tab[i] = tab[i+1]; --licznik; return 1; } else return 0; }

74 Dziedziczenie 263 Wiązanie dynamiczne void szukaj_i_drukuj( RecTbl * p, const char * nzw ){ OsobaInfo * op; if( ( op = p->szukaj( nzw ) )!= NULL ) op->drukuj(); else cout << "Nie znaleziono rekordu\n" << endl; } void main(){ RecTbl ltab( 100 ); SortedTbl stab( 500 ); //... Wstaw rekordy do tablic szukaj_i_drukuj( &ltab, "Kowalski" ); szukaj_i_drukuj( &stab, "Pawlak" ); }

75 Dziedziczenie 264 Indeks c J. Cichosz Start Projektowanie i programowanie obiektowe

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec

PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

Bardziej szczegółowo

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i 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 2012 Bogdan Kreczmer Niniejszy dokument

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

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15

Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego

Bardziej szczegółowo

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

Programowanie 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ółowo

3-4. 5-7. 8-10. 11-12 15-18. 19-22

3-4. 5-7. 8-10. 11-12 15-18. 19-22 1. 2. 3-4. 5-7. 8-10. 11-12 13-14. 15-18. 19-22 23-28. 29-30. Programowanie strukturalne i obiektowe Typ wyliczeniowy, lista wyliczeniowa. Rzutowanie w C++. Wskaźniki i referencje. Działania na wskaźnikach.

Bardziej szczegółowo

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

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;

Bardziej szczegółowo

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? 1 Podstawowe pojęcia: 2 3 4 5 Dana (ang.data) najmniejsza, elementarna jednostka informacji o obiekcie będąca przedmiotem przetwarzania

Bardziej szczegółowo

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, 00-662 Warszawa

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, 00-662 Warszawa Zamawiający: Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej 00-662 Warszawa, ul. Koszykowa 75 Przedmiot zamówienia: Produkcja Interaktywnej gry matematycznej Nr postępowania: WMiNI-39/44/AM/13

Bardziej szczegółowo

Wykład 4 Wybrane zagadnienia programowania w C++

Wykład 4 Wybrane zagadnienia programowania w C++ Wykład 4 Wybrane zagadnienia programowania w C++ Przykład programu obiektowego Dziedziczenie polimorfizm i metody wirtualne Wzorce (szablony) funkcji Wzorce klas 2016-01-03 Bazy danych-1 W4 1 Dziedziczenie

Bardziej szczegółowo

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania... Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł

Bardziej szczegółowo

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO Andrzej BAIER, Tomasz R. LUBCZYŃSKI Streszczenie: W ostatnich latach można zaobserwować dynamiczny rozwój analizy zorientowanej obiektowo.

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

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH Przygotował: mgr inż. Radosław Adamus 1 1 Na podstawie: Subieta K., Język UML, V Konferencja PLOUG, Zakopane, 1999. Wprowadzenie

Bardziej szczegółowo

art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. Nr 16, poz. 93 ze zm.),

art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. Nr 16, poz. 93 ze zm.), Istota umów wzajemnych Podstawa prawna: Księga trzecia. Zobowiązania. Dział III Wykonanie i skutki niewykonania zobowiązań z umów wzajemnych. art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny

Bardziej szczegółowo

Przykład implementacji przeciażeń operatorów problem kolizji

Przykład implementacji przeciażeń operatorów problem kolizji Przykład implementacji przeciażeń operatorów problem kolizji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera

Bardziej szczegółowo

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc PRAWA ZACHOWANIA Podstawowe terminy Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc a) si wewn trznych - si dzia aj cych na dane cia o ze strony innych

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 6 RSC i CSC Znaczenie terminów CSC Complete nstruction Set Computer komputer o pełnej liście rozkazów. RSC Reduced nstruction Set Computer komputer o zredukowanej liście

Bardziej szczegółowo

Umowa o pracę zawarta na czas nieokreślony

Umowa o pracę zawarta na czas nieokreślony Umowa o pracę zawarta na czas nieokreślony Uwagi ogólne Definicja umowy Umowa o pracę stanowi dokument stwierdzający zatrudnienie w ramach stosunku pracy. Według ustawowej definicji jest to zgodne oświadczenie

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

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

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie

Bardziej szczegółowo

Charakterystyka systemów plików

Charakterystyka systemów plików Charakterystyka systemów plików Systemy plików są rozwijane wraz z systemami operacyjnymi. Windows wspiera systemy FAT oraz system NTFS. Różnią się one sposobem przechowywania informacji o plikach, ale

Bardziej szczegółowo

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH dr Wojciech R. Wiewiórowski DOLiS - 035 1997/13/KR Warszawa, dnia 8 sierpnia 2013 r. Pan Sławomir Nowak Minister Transportu, Budownictwa i Gospodarki Morskiej

Bardziej szczegółowo

II. WNIOSKI I UZASADNIENIA: 1. Proponujemy wprowadzić w Rekomendacji nr 6 także rozwiązania dotyczące sytuacji, w których:

II. WNIOSKI I UZASADNIENIA: 1. Proponujemy wprowadzić w Rekomendacji nr 6 także rozwiązania dotyczące sytuacji, w których: Warszawa, dnia 25 stycznia 2013 r. Szanowny Pan Wojciech Kwaśniak Zastępca Przewodniczącego Komisji Nadzoru Finansowego Pl. Powstańców Warszawy 1 00-950 Warszawa Wasz znak: DRB/DRB_I/078/247/11/12/MM W

Bardziej szczegółowo

Konferencja Sądu Arbitrażowego przy SIDiR WARUNKI KONTRAKTOWE FIDIC KLAUZULA 13 JAKO ODMIENNY SPOSÓB WYKONANIA ROBÓT A NIE ZMIANA UMOWY

Konferencja Sądu Arbitrażowego przy SIDiR WARUNKI KONTRAKTOWE FIDIC KLAUZULA 13 JAKO ODMIENNY SPOSÓB WYKONANIA ROBÓT A NIE ZMIANA UMOWY Konferencja Sądu Arbitrażowego przy SIDiR Zbigniew J. Boczek WARUNKI KONTRAKTOWE FIDIC KLAUZULA 13 JAKO ODMIENNY SPOSÓB WYKONANIA ROBÓT A NIE ZMIANA UMOWY 13 Variations and Adjustments!! 13 Zmiany i korekty

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

Programowanie obiektowe w C++ Wykład 11

Programowanie obiektowe w C++ Wykład 11 Programowanie obiektowe w C++ Wykład 11 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) Programowanie obiektowe w C++ 1 / 34 STL - rys historyczny utworzona została w 1994 r.

Bardziej szczegółowo

ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:

ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów: ASD - ćwiczenia III Dowodzenie poprawności programów iteracyjnych Nieformalnie o poprawności programów: poprawność częściowa jeżeli program zakończy działanie dla danych wejściowych spełniających założony

Bardziej szczegółowo

Uchwała nr O- 14 - III- 2012 Krajowej Rady Izby Architektów RP z dnia 20 marca 2012 r. w sprawie wprowadzenia wzoru kontraktu menedżerskiego

Uchwała nr O- 14 - III- 2012 Krajowej Rady Izby Architektów RP z dnia 20 marca 2012 r. w sprawie wprowadzenia wzoru kontraktu menedżerskiego Uchwała nr O- 14 - III- 2012 Krajowej Rady Izby Architektów RP z dnia 20 marca 2012 r. w sprawie wprowadzenia wzoru kontraktu menedżerskiego Na podstawie art. 33 pkt 14 ustawy z dnia 15 grudnia 2000 r.

Bardziej szczegółowo

Java język programowania zorientowany obiektowo

Java język programowania zorientowany obiektowo Java język programowania zorientowany obiektowo Artur Piętas Poniższy artykuł przedstawia ideę programowania zorientowanego obiektowo w kontekście jednego z najpopularniejszych języków programowania, jakim

Bardziej szczegółowo

Umowa w sprawie przyznania grantu Marie Curie 7PR Wykaz klauzul specjalnych

Umowa w sprawie przyznania grantu Marie Curie 7PR Wykaz klauzul specjalnych WYKAZ WSZYSTKICH KLAUZUL SPECJALNYCH MAJĄCYCH ZASTOSOWANIE DO WZORU UMOWY W SPRAWIE PRZYZNANIA GRANTU MARIE CURIE W RAMACH REALIZACJI SIÓDMEGO PROGRAMU RAMOWEGO WSPÓLNOTY EUROPEJSKIEJ (2007-2013) SPIS

Bardziej szczegółowo

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU

Bardziej szczegółowo

Wniosek o ustalenie warunków zabudowy

Wniosek o ustalenie warunków zabudowy Wniosek o ustalenie warunków zabudowy Informacje ogólne Kiedy potrzebna jest decyzja Osoba, która składa wniosek o pozwolenie na budowę, nie musi mieć decyzji o warunkach zabudowy terenu, pod warunkiem

Bardziej szczegółowo

Co do zasady, obliczenie wykazywanej

Co do zasady, obliczenie wykazywanej Korekta deklaracji podatkowej: można uniknąć sankcji i odzyskać ulgi Piotr Podolski Do 30 kwietnia podatnicy podatku dochodowego od osób fizycznych byli zobowiązani złożyć zeznanie określające wysokość

Bardziej szczegółowo

Projekt MES. Wykonali: Lidia Orkowska Mateusz Wróbel Adam Wysocki WBMIZ, MIBM, IMe

Projekt MES. Wykonali: Lidia Orkowska Mateusz Wróbel Adam Wysocki WBMIZ, MIBM, IMe Projekt MES Wykonali: Lidia Orkowska Mateusz Wróbel Adam Wysocki WBMIZ, MIBM, IMe 1. Ugięcie wieszaka pod wpływem przyłożonego obciążenia 1.1. Wstęp Analizie poddane zostało ugięcie wieszaka na ubrania

Bardziej szczegółowo

Zadania. SiOD Cwiczenie 1 ;

Zadania. SiOD Cwiczenie 1 ; 1. Niech A będzie zbiorem liczb naturalnych podzielnych przez 6 B zbiorem liczb naturalnych podzielnych przez 2 C będzie zbiorem liczb naturalnych podzielnych przez 5 Wyznaczyć zbiory A B, A C, C B, A

Bardziej szczegółowo

Integracja systemów, integracja procesów

Integracja systemów, integracja procesów Nowe rozwiązania informatyczne w zmieniającej się rzeczywistości akademickiej Integracja systemów, integracja procesów... Janina Mincer-Daszkiewicz Uniwersytet Warszawski, MUCI jmd@mimuw.edu.pl Warszawa,

Bardziej szczegółowo

Warunki Oferty PrOmOcyjnej usługi z ulgą

Warunki Oferty PrOmOcyjnej usługi z ulgą Warunki Oferty PrOmOcyjnej usługi z ulgą 1. 1. Opis Oferty 1.1. Oferta Usługi z ulgą (dalej Oferta ), dostępna będzie w okresie od 16.12.2015 r. do odwołania, jednak nie dłużej niż do dnia 31.03.2016 r.

Bardziej szczegółowo

Funkcje składowe (metody)

Funkcje składowe (metody) Funkcje składowe (metody) class Punkt int x, y; void Rysuj() /* rysowanie */ ; class Punkt int x, y; void Rysuj(); ; void Punkt::Rysuj() /* rysowanie */ definicja funkcji wewnątrz ciała klasy funkcja otwarta

Bardziej szczegółowo

Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju

Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju Art.1. 1. Zarząd Pogórzańskiego Stowarzyszenia Rozwoju, zwanego dalej Stowarzyszeniem, składa się z Prezesa, dwóch Wiceprezesów, Skarbnika, Sekretarza

Bardziej szczegółowo

WYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof Staryk

WYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof Staryk Sygn. akt II UK 27/15 WYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ Sąd Najwyższy w składzie: Dnia 3 lutego 2016 r. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof

Bardziej szczegółowo

Na podstawie art.4 ust.1 i art.20 lit. l) Statutu Walne Zebranie Stowarzyszenia uchwala niniejszy Regulamin Zarządu.

Na podstawie art.4 ust.1 i art.20 lit. l) Statutu Walne Zebranie Stowarzyszenia uchwala niniejszy Regulamin Zarządu. Na podstawie art.4 ust.1 i art.20 lit. l) Statutu Walne Zebranie Stowarzyszenia uchwala niniejszy Regulamin Zarządu Regulamin Zarządu Stowarzyszenia Przyjazna Dolina Raby Art.1. 1. Zarząd Stowarzyszenia

Bardziej szczegółowo

Mikroekonomia Wykład 9

Mikroekonomia Wykład 9 Mikroekonomia Wykład 9 Efekty zewnętrzne Przez długie lata ekonomiści mieli problemy z jednoznacznym zdefiniowaniem efektów zewnętrznych, które oddziaływały na inne podmioty gospodarcze przez powodowanie

Bardziej szczegółowo

Zebranie Mieszkańców Budynków, zwane dalej Zebraniem, działa na podstawie: a / statutu Spółdzielni Mieszkaniowej WROCŁAWSKI DOM we Wrocławiu,

Zebranie Mieszkańców Budynków, zwane dalej Zebraniem, działa na podstawie: a / statutu Spółdzielni Mieszkaniowej WROCŁAWSKI DOM we Wrocławiu, R E G U L A M I N Zebrania Mieszkańców oraz kompetencji i uprawnień Samorządu Mieszkańców Budynków Spółdzielni Mieszkaniowej WROCŁAWSKI DOM we Wrocławiu. ROZDZIAŁ I. Postanowienia ogólne. Zebranie Mieszkańców

Bardziej szczegółowo

Warszawska Giełda Towarowa S.A.

Warszawska Giełda Towarowa S.A. KONTRAKT FUTURES Poprzez kontrakt futures rozumiemy umowę zawartą pomiędzy dwoma stronami transakcji. Jedna z nich zobowiązuje się do kupna, a przeciwna do sprzedaży, w ściśle określonym terminie w przyszłości

Bardziej szczegółowo

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną,

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

UMOWA POWIERZENIA PRZETWARZANIA DANYCH OSOBOWYCH (zwana dalej Umową )

UMOWA POWIERZENIA PRZETWARZANIA DANYCH OSOBOWYCH (zwana dalej Umową ) Nr sprawy: PZP1/2016 Załącznik nr 6 do Umowy w sprawie udzielenia zamówienia publicznego na o świadczenie kompleksowej usługi na wydruk, konfekcjonowanie oraz wysyłkę imiennych zaproszeń na badania mammograficzne

Bardziej szczegółowo

UMOWA PORĘCZENIA NR [***]

UMOWA PORĘCZENIA NR [***] UMOWA PORĘCZENIA NR [***] zawarta w [***], w dniu [***] r., pomiędzy: _ z siedzibą w, ul., ( - ), wpisaną do rejestru przedsiębiorców Krajowego Rejestru Sądowego prowadzonego przez Sąd Rejonowy, Wydział

Bardziej szczegółowo

'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+

'()(*+,-./01(23/*4*567/8/23/*98:)2(!./+)012+3$%-4#4$5012#-4#4-6017%*,4.!#$!#%&!!!#$%&#'()%*+,-+ '()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+ Ucze interpretuje i tworzy teksty o charakterze matematycznym, u ywa j zyka matematycznego do opisu

Bardziej szczegółowo

NOWELIZACJA USTAWY PRAWO O STOWARZYSZENIACH

NOWELIZACJA USTAWY PRAWO O STOWARZYSZENIACH NOWELIZACJA USTAWY PRAWO O STOWARZYSZENIACH Stowarzyszenie opiera swoją działalność na pracy społecznej swoich członków. Do prowadzenia swych spraw stowarzyszenie może zatrudniać pracowników, w tym swoich

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykªad 4

Programowanie obiektowe w C++ Wykªad 4 Programowanie obiektowe w C++ Wykªad 4 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++ 1 / 26 Dziedziczenie - podstawy Denicja klasy dziedzicz cej

Bardziej szczegółowo

2.Prawo zachowania masy

2.Prawo zachowania masy 2.Prawo zachowania masy Zdefiniujmy najpierw pewne podstawowe pojęcia: Układ - obszar przestrzeni o określonych granicach Ośrodek ciągły - obszar przestrzeni którego rozmiary charakterystyczne są wystarczająco

Bardziej szczegółowo

UKŁAD ROZRUCHU SILNIKÓW SPALINOWYCH

UKŁAD ROZRUCHU SILNIKÓW SPALINOWYCH UKŁAD ROZRUCHU SILNIKÓW SPALINOWYCH We współczesnych samochodach osobowych są stosowane wyłącznie rozruszniki elektryczne składające się z trzech zasadniczych podzespołów: silnika elektrycznego; mechanizmu

Bardziej szczegółowo

ARKUSZ OCENY OKRESOWEJ DLA STANOWISK PRACOWNICZYCH

ARKUSZ OCENY OKRESOWEJ DLA STANOWISK PRACOWNICZYCH Załącznik Nr 5 Do Regulaminu okresowych ocen pracowników Urzędu Miasta Piekary Śląskie zatrudnionych na stanowiskach urzędniczych, w tym kierowniczych stanowiskach urzędniczych oraz kierowników gminnych

Bardziej szczegółowo

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1 Temat: Funkcje. Własności ogólne A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1 Kody kolorów: pojęcie zwraca uwagę * materiał nieobowiązkowy A n n a R a

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.

Bardziej szczegółowo

Ćwiczenia IV - Kontenery (pojemniki)

Ćwiczenia IV - Kontenery (pojemniki) Ćwiczenia IV - Kontenery (pojemniki) 28 października 2010 Kontener Kontener jest to obiekt który zawiera w sobie obiekty innej klasy i ma zdefiniowane metody nimi zarządzające. Jednym z najprostszych przykładów

Bardziej szczegółowo

Uchwała nr 21 /2015 Walnego Zebrania Członków z dnia 11.12.2015 w sprawie przyjęcia Regulaminu Pracy Zarządu.

Uchwała nr 21 /2015 Walnego Zebrania Członków z dnia 11.12.2015 w sprawie przyjęcia Regulaminu Pracy Zarządu. Uchwała nr 21 /2015 Walnego Zebrania Członków z dnia 11.12.2015 w sprawie przyjęcia Regulaminu Pracy Zarządu. Na podstawie 18 ust. 4.15 Statutu Stowarzyszenia, uchwala się co następuje. Przyjmuje się Regulamin

Bardziej szczegółowo

Jak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro)

Jak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro) Jak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro) Uwaga: Ten tutorial tworzony był z programem Cubase 4 Studio, ale równie dobrze odnosi się do wcześniejszych wersji,

Bardziej szczegółowo

Gdynia: Księgowość od podstaw Numer ogłoszenia: 60337-2012; data zamieszczenia: 15.03.2012 OGŁOSZENIE O ZAMÓWIENIU - usługi

Gdynia: Księgowość od podstaw Numer ogłoszenia: 60337-2012; data zamieszczenia: 15.03.2012 OGŁOSZENIE O ZAMÓWIENIU - usługi 1 z 5 2012-03-15 12:05 Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia: www.pupgdynia.pl Gdynia: Księgowość od podstaw Numer ogłoszenia: 60337-2012;

Bardziej szczegółowo

WZÓR SKARGI EUROPEJSKI TRYBUNAŁ PRAW CZŁOWIEKA. Rada Europy. Strasburg, Francja SKARGA. na podstawie Artykułu 34 Europejskiej Konwencji Praw Człowieka

WZÓR SKARGI EUROPEJSKI TRYBUNAŁ PRAW CZŁOWIEKA. Rada Europy. Strasburg, Francja SKARGA. na podstawie Artykułu 34 Europejskiej Konwencji Praw Człowieka WZÓR SKARGI EUROPEJSKI TRYBUNAŁ PRAW CZŁOWIEKA Rada Europy Strasburg, Francja SKARGA na podstawie Artykułu 34 Europejskiej Konwencji Praw Człowieka oraz Artykułu 45-47 Regulaminu Trybunału 1 Adres pocztowy

Bardziej szczegółowo

Europejska Akredytacja Indywidualna v2 (European Individual Accreditation)

Europejska Akredytacja Indywidualna v2 (European Individual Accreditation) Europejska Akredytacja Indywidualna v2 (European Individual Accreditation) Formularz Zgłoszeniowy EIA v2 dla kandydatów nie posiadających certyfikatu EQA (lub dla kandydatów posiadających certyfikat EQA

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

Stowarzyszenie Lokalna Grupa Działania EUROGALICJA Regulamin Rady

Stowarzyszenie Lokalna Grupa Działania EUROGALICJA Regulamin Rady Stowarzyszenie Lokalna Grupa Działania EUROGALICJA Regulamin Rady Rozdział I Postanowienia ogólne 1 1. Rada Stowarzyszenia Lokalna Grupa Działania Eurogalicja, zwana dalej Radą, działa na podstawie: Ustawy

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy

Bardziej szczegółowo

STOWARZYSZENIE LOKALNA GRUPA DZIAŁANIA JURAJSKA KRAINA REGULAMIN ZARZĄDU. ROZDZIAŁ I Postanowienia ogólne

STOWARZYSZENIE LOKALNA GRUPA DZIAŁANIA JURAJSKA KRAINA REGULAMIN ZARZĄDU. ROZDZIAŁ I Postanowienia ogólne Załącznik do uchwały Walnego Zebrania Członków z dnia 28 grudnia 2015 roku STOWARZYSZENIE LOKALNA GRUPA DZIAŁANIA JURAJSKA KRAINA REGULAMIN ZARZĄDU ROZDZIAŁ I Postanowienia ogólne 1 1. Zarząd Stowarzyszenia

Bardziej szczegółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

Elementy cyfrowe i układy logiczne

Elementy cyfrowe i układy logiczne Elementy cyfrowe i układy logiczne Wykład Legenda Zezwolenie Dekoder, koder Demultiplekser, multiplekser 2 Operacja zezwolenia Przykład: zamodelować podsystem elektroniczny samochodu do sterowania urządzeniami:

Bardziej szczegółowo

Konspekt lekcji otwartej

Konspekt lekcji otwartej Konspekt lekcji otwartej Przedmiot: Temat lekcji: informatyka Modelowanie i symulacja komputerowa prawidłowości w świecie liczb losowych Klasa: 2 g Data zajęć: 21.12.2004. Nauczyciel: Roman Wyrwas Czas

Bardziej szczegółowo

Instalacja programu. Omówienie programu. Jesteś tu: Bossa.pl

Instalacja programu. Omówienie programu. Jesteś tu: Bossa.pl Jesteś tu: Bossa.pl Program Quotes Update to niewielkie narzędzie ułatwiające pracę inwestora. Jego celem jest szybka i łatwa aktualizacja plików lokalnych z historycznymi notowaniami spółek giełdowych

Bardziej szczegółowo

NUMER IDENTYFIKATORA:

NUMER IDENTYFIKATORA: Społeczne Liceum Ogólnokształcące z Maturą Międzynarodową im. Ingmara Bergmana IB WORLD SCHOOL 53 ul. Raszyńska, 0-06 Warszawa, tel./fax 668 54 5 www.ib.bednarska.edu.pl / e-mail: liceum.ib@rasz.edu.pl

Bardziej szczegółowo

Paradygmaty programowania. Paradygmaty programowania

Paradygmaty programowania. Paradygmaty programowania Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................

Bardziej szczegółowo

Abstrakcyjny typ danych

Abstrakcyjny typ danych Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są

Bardziej szczegółowo

1 Przedmiot Umowy 1. Przedmiotem umowy jest sukcesywna dostawa: publikacji książkowych i nutowych wydanych przez. (dalej zwanych: Publikacjami).

1 Przedmiot Umowy 1. Przedmiotem umowy jest sukcesywna dostawa: publikacji książkowych i nutowych wydanych przez. (dalej zwanych: Publikacjami). WZÓR UMOWY ANALOGICZNY dla CZĘŚCI 1-10 UMOWA o wykonanie zamówienia publicznego zawarta w dniu.. w Krakowie pomiędzy: Polskim Wydawnictwem Muzycznym z siedzibą w Krakowie 31-111, al. Krasińskiego 11a wpisanym

Bardziej szczegółowo

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

Programowanie 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ółowo

PORADNIK DLA CZŁONKA WSPÓLNOTY MIESZKANIOWEJ

PORADNIK DLA CZŁONKA WSPÓLNOTY MIESZKANIOWEJ PORADNIK DLA CZŁONKA WSPÓLNOTY MIESZKANIOWEJ SZCZECIN 2013r. 1. WSPÓLNOTA MIESZKANIOWA a) Charakter prawny Wspólnoty Wspólnota Mieszkaniowa nie posiada osobowości prawnej, może jednak nabywać prawa i zaciągać

Bardziej szczegółowo

Regulamin Drużyny Harcerek ZHR

Regulamin Drużyny Harcerek ZHR Regulamin Drużyny Harcerek ZHR (jednolity tekst obowiązujący od dnia 19.01.98 zgodnie z Uchwałą Naczelnictwa ZHR nr 80/7 z dnia 18.01.98) 1. Drużyna jest podstawową jednostką organizacyjną ZHR i podstawowym

Bardziej szczegółowo

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych Załącznik nr 1 do Zarządzenia Nr 1/2013 Dyrektora Zespołu Obsługi Szkół i Przedszkoli w Muszynie z dnia 30 grudnia 2013 r. Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych

Bardziej szczegółowo

Nasze zachowanie, ubiór i kultura świadczy o nas samych i wpływa na to jak widzą i oceniają nas inni. Wbrew pozorom niewiele trzeba aby zrobić na

Nasze zachowanie, ubiór i kultura świadczy o nas samych i wpływa na to jak widzą i oceniają nas inni. Wbrew pozorom niewiele trzeba aby zrobić na Nasze zachowanie, ubiór i kultura świadczy o nas samych i wpływa na to jak widzą i oceniają nas inni. Wbrew pozorom niewiele trzeba aby zrobić na kimś dobre wrażenie. Przestrzeganie tych kilku wskazówek

Bardziej szczegółowo

Tworzenie modelu obiektowego

Tworzenie modelu obiektowego Metody strukturalne tworzenia oprogramowania, opierają się na wyróżnianiu w tworzonym oprogramowaniu dwóch rodzajów składowych: pasywnych odzwierciedlających fakt przechowywania w systemie pewnych danych

Bardziej szczegółowo

EGZAMIN MATURALNY Z MATEMATYKI

EGZAMIN MATURALNY Z MATEMATYKI Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. MMA 016 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę dysleksja EGZAMIN MATURALNY Z MATEMATYKI POZIOM ROZSZERZONY DATA: 9

Bardziej szczegółowo

Uchwała z dnia 20 października 2011 r., III CZP 53/11

Uchwała z dnia 20 października 2011 r., III CZP 53/11 Uchwała z dnia 20 października 2011 r., III CZP 53/11 Sędzia SN Zbigniew Kwaśniewski (przewodniczący) Sędzia SN Anna Kozłowska (sprawozdawca) Sędzia SN Grzegorz Misiurek Sąd Najwyższy w sprawie ze skargi

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska

Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska 1 Projekt Ogólnopolski: 1.1. Projekt Ogólnopolski (dalej Projekt ) to przedsięwzięcie Stowarzyszenia podjęte w celu realizacji celów

Bardziej szczegółowo

ZARZĄDZENIE Nr Or/9/Z/05

ZARZĄDZENIE Nr Or/9/Z/05 ZARZĄDZENIE Nr Or/9/Z/05 Burmistrza Gminy i Miasta Lwówek Śląski z dnia 6 kwietnia 2005r. w sprawie udzielenia dnia wolnego od pracy Działając na podstawie art. 33 ust. 5 ustawy z dnia 8 marca 1990 r.

Bardziej szczegółowo

KOMISJA WSPÓLNOT EUROPEJSKICH. Wniosek DECYZJA RADY

KOMISJA WSPÓLNOT EUROPEJSKICH. Wniosek DECYZJA RADY KOMISJA WSPÓLNOT EUROPEJSKICH Bruksela, dnia 13.12.2006 KOM(2006) 796 wersja ostateczna Wniosek DECYZJA RADY w sprawie przedłużenia okresu stosowania decyzji 2000/91/WE upoważniającej Królestwo Danii i

Bardziej szczegółowo

PRZETWARZANIE DANYCH OSOBOWYCH

PRZETWARZANIE DANYCH OSOBOWYCH 1 PRZETWARZANIE DANYCH OSOBOWYCH proinfosec Jarosław Żabówka proinfosec@odoradca.pl Wymogi rozporządzenia 2 ROZPORZĄDZENIE MINISTRA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI z dnia 29 kwietnia 2004 r. w sprawie

Bardziej szczegółowo

Zagospodarowanie magazynu

Zagospodarowanie magazynu Zagospodarowanie magazynu Wymagania wobec projektu magazynu - 1 jak najlepsze wykorzystanie pojemności związane z szybkością rotacji i konieczną szybkością dostępu do towaru; im większa wymagana szybkość

Bardziej szczegółowo

Wtedy wystarczy wybrać właściwego Taga z listy.

Wtedy wystarczy wybrać właściwego Taga z listy. Po wejściu na stronę pucharino.slask.pl musisz się zalogować (Nazwa użytkownika to Twój redakcyjny pseudonim, hasło sam sobie ustalisz podczas procedury rejestracji). Po zalogowaniu pojawi się kilka istotnych

Bardziej szczegółowo

Załącznik nr 7 DO UMOWY NR. O ŚWIADCZENIE USŁUG DYSTRYBUCJI PALIWA GAZOWEGO UMOWA O WZAJEMNYM POWIERZENIU PRZETWARZANIA DANYCH OSOBOWYCH

Załącznik nr 7 DO UMOWY NR. O ŚWIADCZENIE USŁUG DYSTRYBUCJI PALIWA GAZOWEGO UMOWA O WZAJEMNYM POWIERZENIU PRZETWARZANIA DANYCH OSOBOWYCH Załącznik nr 7 DO UMOWY NR. O ŚWIADCZENIE USŁUG DYSTRYBUCJI PALIWA GAZOWEGO UMOWA O WZAJEMNYM POWIERZENIU PRZETWARZANIA DANYCH OSOBOWYCH UMOWA O WZAJEMNYM POWIERZENIU PRZETWARZANIA DANYCH OSOBOWYCH zawarta

Bardziej szczegółowo

OFERTA WYKŁADÓW, WARSZTATÓW I LABORATORIÓW DLA UCZNIÓW KLAS IV- VI SZKÓŁ PODSTAWOWYCH, GIMNAZJALNYCH I ŚREDNICH

OFERTA WYKŁADÓW, WARSZTATÓW I LABORATORIÓW DLA UCZNIÓW KLAS IV- VI SZKÓŁ PODSTAWOWYCH, GIMNAZJALNYCH I ŚREDNICH OFERTA WYKŁADÓW, WARSZTATÓW I LABORATORIÓW DLA UCZNIÓW KLAS IV- VI SZKÓŁ PODSTAWOWYCH, GIMNAZJALNYCH I ŚREDNICH Strona 1 z 9 SPIS ZAJĘĆ WRAZ Z NAZWISKAMI WYKŁADOWCÓW dr hab. Mieczysław Kula Poznaj swój

Bardziej szczegółowo

biuro@cloudtechnologies.pl www.cloudtechnologies.pl Projekty uchwał dla Zwyczajnego Walnego Zgromadzenia

biuro@cloudtechnologies.pl www.cloudtechnologies.pl Projekty uchwał dla Zwyczajnego Walnego Zgromadzenia Warszawa, 11 kwietnia 2016 roku Projekty uchwał dla Zwyczajnego Walnego Zgromadzenia w sprawie przyjęcia porządku obrad Zwyczajne Walne Zgromadzenie przyjmuje następujący porządek obrad: 1. Otwarcie Zgromadzenia,

Bardziej szczegółowo

C++ - [4-7] Polimorfizm

C++ - [4-7] Polimorfizm Slajd 1 z 14 C++ - [4-7] Polimorfizm Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 20 maja 2013 r. Slajd 2 z 14 Polimorfizm i klasa polimorficzna POLIMORFIZM (cytat z Wikipedii) (wielopostaciowość)

Bardziej szczegółowo