Wartości domyślne, szablony funkcji i klas
|
|
- Ludwika Murawska
- 9 lat temu
- Przeglądów:
Transkrypt
1 Bogdan Kreczmer Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany wyłącznie w całości, razem z niniejszą stroną tytułową.
2 Niniejsza prezentacja została wykonana przy użyciu systemu składu L A TEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer:
3 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
4 Plan prezentacji Wartości domyślne 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
5 Cel Wartości domyślne Zbudujmy program, który umożliwi wyliczanie współrzędnych punktów dla rodziny parabol:
6 Cel Wartości domyślne Zbudujmy program, który umożliwi wyliczanie współrzędnych punktów dla rodziny parabol:
7 Cel Wartości domyślne Zbudujmy program, który umożliwi wyliczanie współrzędnych punktów dla rodziny parabol:
8 Cel Wartości domyślne Zbudujmy program, który umożliwi wyliczanie współrzędnych punktów dla rodziny parabol: Ogólna postać równania: y = ax 2 + b
9 Implementacja Wartości domyślne float Parabola(float x, float a, float b) return a x x+b;
10 Implementacja Wartości domyślne float Parabola(float x, float a, float b) return a x x+b; int main() float y, x=5; y = Parabola(x,1,0);
11 Definiowanie wartości domyślnych float Parabola(float x, float a, float b = 0) return a x x+b; int main() float y, x=5; y = Parabola(x,1,0);
12 Korzystanie z wartości domyślnych float Parabola(float x, float a, float b = 0) return a x x+b; int main() float y, x=5; y = Parabola(x,1);
13 Korzystanie z wartości domyślnych float Parabola(float x, float a, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,1); // Parabola(x,1,0)
14 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,1);
15 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x);
16 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x); // Parabola(x,1,0)
17 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x); Co zrobić jeśli chcemy aby a = 2?
18 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,2);
19 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,2); // Parabola(x,2,0)
20 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,2); A jeśli ma być b = 5?
21 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,2,5);
22 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,2,5); A jeśli chcemy aby a = 1 i b = 5?
23 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,5); A jeśli chcemy aby a = 1 i b = 5? Czy można tak?
24 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,,5); A jeśli chcemy aby a = 1 i b = 5? A może tak?
25 Korzystanie z wartości domyślnych float Parabola(float x, float a = 1, float b= 0) return a x x+b; int main() float y, x=5; y = Parabola(x,1,5); Jeśli chcemy zmodyfikować wartość jednego z parametrów domyślnych, to musimy podać wartości wszystkich parametrów, aż do miejsca, na którym występuje zmodyfikowana wartość.
26 Korzystanie z wartości domyślnych void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m )
27 Korzystanie z wartości domyślnych void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl;
28 Korzystanie z wartości domyślnych void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; PokazOdleglosc(1, 9.81, cm );
29 Korzystanie z wartości domyślnych void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; PokazOdleglosc(1, cm ); Czy można to skrócić korzystając z tego, że zadeklarowane wartości domyślne dla a i Jedn są różne od Jedn?
30 Korzystanie z wartości domyślnych void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; PokazOdleglosc(1, cm ); Tego typu wywołanie jest niepoprawne. To że parametry są różnego typu nie ma żadnego znaczenia.
31 Korzystanie z wartości domyślnych void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; PokazOdleglosc(1, 9.81, cm ); Jedyną poprawną formą jest wypisanie wszystkich wartości parametrów pośrednich, niezależnie od tego czy są one zgodne z wartościami domyślnymi, czy też nie.
32 Korzystanie z wartości domyślnych void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; PokazOdleglosc(1); Powróćmy do wywołania funkcji korzystającego z wartości domyślnych
33 Zapowiedź definicji funkcji PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl;
34 Zapowiedź definicji funkcji PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl;
35 Zapowiedź definicji funkcji PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; Wywołanie funkcji przed jej definicją jest możliwe wtedy i tylko wtedy, gdy wcześniej wystąpi nagłówek zapowiedzi definicji.
36 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; To też nie jest dobrze.
37 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ) cout << a pow(t,2)/2 << Jedn << endl; Jeżeli w jednostce translacyjnej występuje zapowiedź definicji z parametrami domyślnymi oraz sama definicja, to wartości tych parametrów mogą być zadeklarowane tylko raz w nagłówku jej zapowiedzi.
38 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a, const char Jedn ) cout << a pow(t,2)/2 << Jedn << endl; Teraz jest już dobrze.
39 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a, const char Jedn ) cout << a pow(t,2)/2 << Jedn << endl;
40 Zapowiedź definicji funkcji prog.cpp void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a, const char Jedn ) cout << a pow(t,2)/2 << Jedn << endl; modul.cpp
41 Zapowiedź definicji funkcji prog.cpp void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a, const char Jedn ) cout << a pow(t,2)/2 << Jedn << endl; modul.cpp Jeżeli występuje więcej jednostek translacyjnych, to ta sama funkcja może być różnie traktowana w każdej z nich.
42 Zapowiedź definicji funkcji prog.cpp void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 981, const char Jedn = cm ) cout << a pow(t,2)/2 << Jedn << endl; modul.cpp Wartości parametrów domyślnych mogą być różne w każdej z nich lub w ogóle mogą nie występować. To nie jest jednak dobre rozwiązanie.
43 Zapowiedź definicji funkcji prog.cpp void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 981, const char Jedn = cm ) cout << a pow(t,2)/2 << Jedn << endl; modul.cpp Wartości parametrów domyślnych mogą być różne w każdej z nich lub w ogóle mogą nie występować. To nie jest jednak dobre rozwiązanie.
44 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 981, const char Jedn = cm ) cout << a pow(t,2)/2 << Jedn << endl; modul.hpp prog.cpp modul.cpp Lepszym rozwiązaniem jest wydzielenie pliku nagłówkowe.
45 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); #include modul.hpp PokazOdleglosc(1); void PokazOdleglosc( float t, float a = 981, const char Jedn = cm ) cout << a pow(t,2)/2 << Jedn << endl; modul.hpp prog.cpp modul.cpp
46 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); #include modul.hpp PokazOdleglosc(1); modul.hpp prog.cpp #include modul.hpp void PokazOdleglosc( float t, float a, const char Jedn ) cout << a pow(t,2)/2 << Jedn << endl; modul.cpp Dodanie pliku nagłówkowego zapobiega niejednoznacznemu traktowania parametrów domyślnych.
47 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); #include modul.hpp PokazOdleglosc(1); modul.hpp prog.cpp #include modul.hpp void PokazOdleglosc( float t, float a, const char Jedn ) cout << a pow(t,2)/2 << Jedn << endl; modul.cpp Nie jest to jednak jedyny niezbędny plik nagłówkowy.
48 Zapowiedź definicji funkcji void PokazOdleglosc( float t, float a = 9.81, const char Jedn = m ); #include modul.hpp PokazOdleglosc(1); modul.hpp prog.cpp #include modul.hpp #include <cmath> void PokazOdleglosc( float t, float a, const char Jedn ) cout << a pow(t,2)/2 << Jedn << endl; modul.cpp
49 Plan prezentacji Wartości domyślne 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
50 Domyślne wartości parametrów dla metod class LZespolona public : float re, im; ; void Zmien(float r, float i) re = r; im = i; LZespolona Z; Z.re = 2.1; Z.im = 0;
51 Domyślne wartości parametrów dla metod class LZespolona public : float re, im; ; void Zmien(float r, float i) re = r; im = i; LZespolona Z; Z.Zmien(2.1, 0);
52 Domyślne wartości parametrów dla metod class LZespolona public : float re, im; ; void Zmien(float r, float i) re = r; im = i; LZespolona Z; Z.Zmien(2.1);
53 Domyślne wartości parametrów dla metod class LZespolona public : float re, im; ; void Zmien(float r, float i = 0) re = r; im = i; LZespolona Z; Z.Zmien(2.1);
54 Definiowanie metody poza ciałem klasy class LZespolona public : float re, im; ; void Zmien(float r, float i = 0); void LZespolona::Zmien(float r, float i) re = r; im = i; LZespolona Z; Z.Zmien(2.1);
55 Wartości domyślne versus przeciążenie class LZespolona public : float re, im; ; void Zmien(float r, float i = 0) re = r; im = i; LZespolona Z; Z.Zmien(2.1);
56 Wartości domyślne versus przeciążenie class LZespolona public : float re, im; ; void Zmien(float r, float i) re = r; im = i; void Zmien(float r) re = r; LZespolona Z; Z.Zmien(2.1);
57 Plan prezentacji Wartości domyślne 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
58 Konstruktor bezparametryczny class LZespolona public : float re, im; ; LZespolona Z1;
59 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona( ) re = im = 0; LZespolona Z1;
60 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona( ) re = im = 0; LZespolona Z1; LZespolona Z2(4,6);
61 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona(float r,float i) re = r; im = i; LZespolona( ) re = im = 0; LZespolona Z1; LZespolona Z2(4,6);
62 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona(float r = 0, float i = 0) re = r; im = i; LZespolona Z1; LZespolona Z2(4,6);
63 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona(float r = 0, float i = 0) re = r; im = i; LZespolona Z1; LZespolona Z2(4,6); LZespolona Z3(4);
64 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona( ) re = im = 0; LZespolona(float r) re = r; im = 0; LZespolona(float r, float i) re = r; im = i; LZespolona Z1; LZespolona Z2(4,6); LZespolona Z3(4);
65 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona( ) re = im = 0; LZespolona(float r) re = r; im = 0; LZespolona(float r, float i) re = r; im = i; LZespolona Z1; LZespolona Z2(4,6); LZespolona Z3(4);
66 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona( ) re = im = 0; LZespolona(float r) re = r; im = 0; LZespolona(float r, float i) re = r; im = i; LZespolona Z; Z = 9;
67 Konsekwencje wartości domyślnych class LZespolona public : float re, im; bool operator == (const LZespolona Z2) const... ; LZespolona( ) re = im = 0; LZespolona(float r) re = r; im = 0; LZespolona(float r, float i) re = r; im = i; LZespolona Z; if ( Z == 7 )...
68 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona( ) re = im = 0; LZespolona(float r) re = r; im = 0; LZespolona(float r, float i) re = r; im = i; LZespolona FunkcjaZ(LZespolona Z)... double LiczbaD; FunkcjaZ(LiczbaD);
69 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona( ) re = im = 0; explicit LZespolona(float r) re = r; im = 0; LZespolona(float r, float i) re = r; im = i; LZespolona FunkcjaZ(LZespolona Z)... double LiczbaD; FunkcjaZ(LiczbaD);
70 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; LZespolona(float r = 0, float i = 0) re = r; im = i; LZespolona FunkcjaZ(LZespolona Z)... double LiczbaD; FunkcjaZ(LZespolona(LiczbaD));
71 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; explicit LZespolona(float r = 0, float i = 0)... LZespolona FunkcjaZ(LZespolona Z)... double LiczbaD; FunkcjaZ(LZespolona(LiczbaD));
72 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; explicit LZespolona( ) re = im = 0; explicit LZespolona(float r) re = r; im = 0; explicit LZespolona(float r, float i) re = r; im = i; LZespolona FunkcjaZ(LZespolona Z)... double LiczbaD; FunkcjaZ(LZespolona(LiczbaD));
73 Konsekwencje wartości domyślnych class LZespolona public : float re, im; ; explicit LZespolona(float r = 0, float i = 0)... LZespolona FunkcjaZ(LZespolona Z)... double LiczbaD; FunkcjaZ(LZespolona(LiczbaD));
74 Problemy... Wartości domyślne class Wektor public : float x, y; bool operator == (const Wektor W2) const... ; Wektor(float x nowa = 0, float y nowa = 0)... Wektor W; if ( W == 7 )...
75 Problemy... Wartości domyślne class Wektor public : float x, y; bool operator == (const Wektor W2) const... ; explicit Wektor(float x nowa = 0, float y nowa = 0)... Wektor W; if ( W == 7 )...
76 Plan prezentacji Wartości domyślne Podstawowa idea Własności szablonów w praktyce 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
77 Problemy z tłumaczeniem Podstawowa idea Własności szablonów w praktyce template wzorzec szablon
78 Problemy z tłumaczeniem Podstawowa idea Własności szablonów w praktyce template wzorzec szablon
79 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce W językach takich jak C i Pascal mamy do czynienia z separacją kodu i typu parametrów. Wartości z jakimi wywoływane są funkcje i procedury mogą parametryzować ich działanie. Jednak ich typy zostają ustalone raz na zawsze w momencie ich definicji. Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów.
80 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce W językach takich jak C i Pascal mamy do czynienia z separacją kodu i typu parametrów. Wartości z jakimi wywoływane są funkcje i procedury mogą parametryzować ich działanie. Jednak ich typy zostają ustalone raz na zawsze w momencie ich definicji. Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów.
81 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów. Możliwe rozwiązania: Implementacja algorytmu dla wszystkich typów, dla których przewidziane jest jego zastosowanie. Implementacja algorytmu dla typu podstawowego takiego jak void lub Object. Zdefiniowanie makr i wykorzystanie specjalnych preprocesorów (np. cpp dla C/C++).
82 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów. Możliwe rozwiązania: Implementacja algorytmu dla wszystkich typów, dla których przewidziane jest jego zastosowanie. Implementacja algorytmu dla typu podstawowego takiego jak void lub Object. Zdefiniowanie makr i wykorzystanie specjalnych preprocesorów (np. cpp dla C/C++).
83 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów. Możliwe rozwiązania: Implementacja algorytmu dla wszystkich typów, dla których przewidziane jest jego zastosowanie. Implementacja algorytmu dla typu podstawowego takiego jak void lub Object. Zdefiniowanie makr i wykorzystanie specjalnych preprocesorów (np. cpp dla C/C++).
84 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów. Możliwe rozwiązania: Implementacja algorytmu dla wszystkich typów, dla których przewidziane jest jego zastosowanie. Implementacja algorytmu dla typu podstawowego takiego jak void lub Object. Zdefiniowanie makr i wykorzystanie specjalnych preprocesorów (np. cpp dla C/C++). Najlepszym rozwiązaniem dla postawionego problemu jest koncepcja szablonów.
85 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów. Możliwe rozwiązania: Implementacja algorytmu dla wszystkich typów, dla których przewidziane jest jego zastosowanie. Implementacja algorytmu dla typu podstawowego takiego jak void lub Object. Zdefiniowanie makr i wykorzystanie specjalnych preprocesorów (np. cpp dla C/C++). Najlepszym rozwiązaniem dla postawionego problemu jest koncepcja szablonów.
86 Dlaczego szablony? Wartości domyślne Podstawowa idea Własności szablonów w praktyce Problem: Należy zaimplementować algorytm sortowania dla obiektów różnych typów. Możliwe rozwiązania: Implementacja algorytmu dla wszystkich typów, dla których przewidziane jest jego zastosowanie. Implementacja algorytmu dla typu podstawowego takiego jak void lub Object. Zdefiniowanie makr i wykorzystanie specjalnych preprocesorów (np. cpp dla C/C++). Najlepszym rozwiązaniem dla postawionego problemu jest koncepcja szablonów.
87 Plan prezentacji Wartości domyślne Podstawowa idea Własności szablonów w praktyce 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
88 Podstawowe cechy Wartości domyślne Podstawowa idea Własności szablonów w praktyce Szablony pozwalają na definiowanie funkcji, których typy parametrów są także parametrami tych funkcji. Możliwe jest definiowanie klas, które parametryzowane mogą być typami pól występujących w tych klasach i/lub też typami parametrów metod. Programista definiuje tylko raz dany szablon. Kompilator dokonuje dedukcji typów parametrów danego szablonu i konkretyzuje go tworząc kod dla użytych typów w wywołaniu funkcji lub definicji obiektu danej klasy. Programista może też jawnie określić wartości parametrów szablonu.
89 Podstawowe cechy Wartości domyślne Podstawowa idea Własności szablonów w praktyce Szablony pozwalają na definiowanie funkcji, których typy parametrów są także parametrami tych funkcji. Możliwe jest definiowanie klas, które parametryzowane mogą być typami pól występujących w tych klasach i/lub też typami parametrów metod. Programista definiuje tylko raz dany szablon. Kompilator dokonuje dedukcji typów parametrów danego szablonu i konkretyzuje go tworząc kod dla użytych typów w wywołaniu funkcji lub definicji obiektu danej klasy. Programista może też jawnie określić wartości parametrów szablonu.
90 Podstawowe cechy Wartości domyślne Podstawowa idea Własności szablonów w praktyce Szablony pozwalają na definiowanie funkcji, których typy parametrów są także parametrami tych funkcji. Możliwe jest definiowanie klas, które parametryzowane mogą być typami pól występujących w tych klasach i/lub też typami parametrów metod. Programista definiuje tylko raz dany szablon. Kompilator dokonuje dedukcji typów parametrów danego szablonu i konkretyzuje go tworząc kod dla użytych typów w wywołaniu funkcji lub definicji obiektu danej klasy. Programista może też jawnie określić wartości parametrów szablonu.
91 Podstawowe cechy Wartości domyślne Podstawowa idea Własności szablonów w praktyce Szablony pozwalają na definiowanie funkcji, których typy parametrów są także parametrami tych funkcji. Możliwe jest definiowanie klas, które parametryzowane mogą być typami pól występujących w tych klasach i/lub też typami parametrów metod. Programista definiuje tylko raz dany szablon. Kompilator dokonuje dedukcji typów parametrów danego szablonu i konkretyzuje go tworząc kod dla użytych typów w wywołaniu funkcji lub definicji obiektu danej klasy. Programista może też jawnie określić wartości parametrów szablonu.
92 Wady i zalety Wartości domyślne Podstawowa idea Własności szablonów w praktyce Zalety: Szablony dają możliwość tworzenia uniwersalnych algorytmów i uniwersalnych struktur danych. W odróżnieniu od makr możliwe jest zachowanie przejrzystości kodu. W odróżnieniu od wykorzystywania typów bazowych pozwalają zachować ścisłą kontrolę typów w trakcie kompilacji. Wady: Brak możliwości tworzenia oddzielnych jednostek kompilacji (modułów) w postaci czystych szablonów.
93 Plan prezentacji Wartości domyślne Podstawowa idea Własności szablonów w praktyce 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
94 Podstawowa idea Własności szablonów w praktyce przykład dla typów wbudowanych template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; enum Symbole a=1, b, c ; cout << Max(1,2) << endl; cout << Max(1.1, 2.2) << endl; cout << Max( A, B ) << endl; cout << Max( a, b ) << endl;
95 Podstawowa idea Własności szablonów w praktyce przykład dla typów wbudowanych template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; enum Symbole a=1, b, c ; cout << Max(1,2) << endl; cout << Max(1.1, 2.2) << endl; cout << Max( A, B ) << endl; cout << Max( a, b ) << endl;
96 Podstawowa idea Własności szablonów w praktyce przykład dla typów wbudowanych template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; W tym przykładzie kompilator generuje kod funkcji Max dla czterech przypadków. Słowo kluczowe class może zostać zastąpione przez typename. enum Symbole a=1, b, c ; cout << Max(1,2) << endl; cout << Max(1.1, 2.2) << endl; cout << Max( A, B ) << endl; cout << Max( a, b ) << endl;
97 własna klasa Podstawowa idea Własności szablonów w praktyce template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Czy szablon można stosować również dla własnych klas? Wektor W1(1,1), W2(4,5), W3; W3 = Max(W1,W2);
98 własna klasa struct Wektor float x, y; ; Podstawowa idea Własności szablonów w praktyce template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Wektor W1(1,1), W2(4,5), W3; W3 = Max(W1,W2);
99 własna klasa struct Wektor float x, y; ; Podstawowa idea Własności szablonów w praktyce template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; W takiej postaci na pewno nie będzie dobrze. Dlaczego? Wektor W1(1,1), W2(4,5), W3; W3 = Max(W1,W2);
100 własna klasa struct Wektor float x, y; ; Podstawowa idea Własności szablonów w praktyce template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Problemem jest operacja prównania dwóch wektorów. Dlaczego? Wektor W1(1,1), W2(4,5), W3; W3 = Max(W1,W2);
101 własna klasa struct Wektor float x, y; ; Podstawowa idea Własności szablonów w praktyce bool operator < ( const Wektor& W ) const return x x+y y < W.x W.x+W.y W.y; template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Aby było dobrze, należy zdefiniować przeciążenie operatora porównania. Wektor W1(1,1), W2(4,5), W3; W3 = Max(W1,W2);
102 Podstawowa idea Własności szablonów w praktyce porównywanie napisów template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Czy funkcja Max w przypadku napisów będzie działać zgodnie z naszymi oczekiwaniami? cout << Max( Kowalski, Abacki ) << endl;
103 Podstawowa idea Własności szablonów w praktyce porównywanie napisów template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Aby mieć porównywanie napisów zamiast wskaźników należy zdefiniować wariant tej funkcji dla przypadku napisów. const char Max( const char s1, const char s2 ) return strcmp(s1,s2) < 0? s2 : s1; cout << Max( Kowalski, Abacki ) << endl;
104 Podstawowa idea Własności szablonów w praktyce porównywanie napisów template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Wciąż jednak jest możliwe wywoływanie szablonów poprzez jawną specyfikację jego parametrów. const char Max( const char s1, const char s2 ) return strcmp(s1,s2) < 0? s2 : s1; cout << Max( Kowalski, Abacki ) << endl; cout << Max<const char >( Kowalski, Abacki ) << endl;
105 Podstawowa idea Własności szablonów w praktyce porównywanie napisów template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Można jednak pominąć specyfikację parametrów. Wówczas odpowiednie parametry zostaną wydedukowane na podstawie parametrów funkcji. const char Max( const char s1, const char s2 ) return strcmp(s1,s2) < 0? s2 : s1; cout << Max( Kowalski, Abacki ) << endl; cout << Max<const char >( Kowalski, Abacki ) << endl; cout << Max< >( Kowalski, Abacki ) << endl;
106 Podstawowa idea Własności szablonów w praktyce porównywanie napisów template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Czy jakoś poprawić szablony, aby nie trzeba było pisać oddzielnej funkcji. const char Max( const char s1, const char s2 ) return strcmp(s1,s2) < 0? s2 : s1; cout << Max( Kowalski, Abacki ) << endl; cout << Max<const char >( Kowalski, Abacki ) << endl; cout << Max< >( Kowalski, Abacki ) << endl;
107 Podstawowa idea Własności szablonów w praktyce porównywanie napisów template <class Typ> Typ Max( Typ w1, Typ w2 ) return w1 < w2? w2 : w1; Dodatkową funkcję trzeba napisać, ale można ujednolicić podejście i zrobić to w ramach danego szablonu tworząc jego specjalizację. template <> const char Max<const char >( const char s1, const char s2 ) return strcmp(s1,s2) < 0? s2 : s1; cout << Max( Kowalski, Abacki ) << endl; cout << Max<const char >( Kowalski, Abacki ) << endl; cout << Max< >( Kowalski, Abacki ) << endl;
108 Plan prezentacji Wartości domyślne Najważniejsze cechy Proste szablony 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
109 Szablony klas Wartości domyślne Najważniejsze cechy Proste szablony Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
110 Szablony klas Wartości domyślne Najważniejsze cechy Proste szablony Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
111 Szablony klas Wartości domyślne Najważniejsze cechy Proste szablony Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
112 Szablony klas Wartości domyślne Najważniejsze cechy Proste szablony Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
113 Szablony klas Wartości domyślne Najważniejsze cechy Proste szablony Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
114 Ogólna postać szablonu Najważniejsze cechy Proste szablony template < lista-parametrow-rozdzielonych-przecinkami > class Klasa ;...
115 Ogólna postać szablonu Najważniejsze cechy Proste szablony template < lista-parametrow-rozdzielonych-przecinkami > class Klasa ;... Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
116 Ogólna postać szablonu Najważniejsze cechy Proste szablony template < lista-parametrow-rozdzielonych-przecinkami > class Klasa ;... Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
117 Ogólna postać szablonu Najważniejsze cechy Proste szablony template < lista-parametrow-rozdzielonych-przecinkami > class Klasa ;... Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
118 Ogólna postać szablonu Najważniejsze cechy Proste szablony template < lista-parametrow-rozdzielonych-przecinkami > class Klasa ;... Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
119 Plan prezentacji Wartości domyślne Najważniejsze cechy Proste szablony 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
120 Stos Wartości domyślne Najważniejsze cechy Proste szablony class Stos int Tab[ROZ STOSU]; int unsigned int Ilosc; public : Stos( ) Ilosc = 0; bool Pobierz(int& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const int& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos St;
121 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Słowo kluczowe typename sygnalizuje, że parametr szablonu jest typem.
122 Przykład szablonu stosu template < class TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true;
123 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true;
124 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<float> St;
125 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<double[100]> St;
126 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<std::string> St;
127 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<std::istream> St;
128 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<std::istream> St;
129 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<std::istream> St;
130 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<std::istream > St;
131 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<std::istream&> St;
132 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos<std::istream&> St;
133 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; Stos< Stos< Stos< char[20] > > > St;
134 Przykład szablonu stosu template < typename TYP > class Stos TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; Najważniejsze cechy Proste szablony bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true;
135 Przykład szablonu stosu Najważniejsze cechy Proste szablony template < typename TYP, unsigned int Rozmiar > class Stos TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true;
136 Przykład szablonu stosu Najważniejsze cechy Proste szablony template < typename TYP, unsigned int Rozmiar > class Stos TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true; Stos<float, 100> St;
137 Przykład szablonu stosu Najważniejsze cechy Proste szablony template < typename TYP, unsigned int Rozmiar= 100 > class Stos TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true; Stos<float, 100> St;
138 Przykład szablonu stosu Najważniejsze cechy Proste szablony template < typename TYP, unsigned int Rozmiar= 100 > class Stos TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) Ilosc = 0; bool Pobierz(TYP& El) return! Ilosc? false : El = Tab[ Ilosc], true; ; bool Poloz(const TYP& El) return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true; Stos<float> St;
139 Plan prezentacji Wartości domyślne Ogólna idea 1 Wartości domyślne 2 Podstawowa idea Własności szablonów w praktyce 3 Najważniejsze cechy Proste szablony 4 Ogólna idea
140 Geneza Wartości domyślne Ogólna idea STL Standard Template Library Twórcą biblioteki jest Alexander Stepanov. Początek prac sięga roku 1979, gdy zaczął wcielać w życie swoją ideę programowania uogólnionego.
141 Ogólna idea Koniec prezentacji
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Wprowadzenie do szablonów szablony funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Wprowadzenie do szablonów szablony funkcji
Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do
Wprowadzenie do szablonów 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 2008-2010 Bogdan Kreczmer Niniejszy
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
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
Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)
Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Jacek Cichosz www.zssk.pwr.wroc.pl Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska Dziedziczenie 221 Dziedziczenie Dziedziczenie
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.
Szablony, wybrane elementy biblioteki STL
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2016 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
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...
Ć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
Preprocesor języka C
języka C 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
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
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
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.
PAKIET MathCad - Część III
Opracowanie: Anna Kluźniak / Jadwiga Matla Ćw3.mcd 1/12 Katedra Informatyki Stosowanej - Studium Podstaw Informatyki PAKIET MathCad - Część III RÓWNANIA I UKŁADY RÓWNAŃ 1. Równania z jedną niewiadomą MathCad
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
Qt po polsku. Bogdan Kreczmer.
Qt po polsku Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2013 Bogdan Kreczmer
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
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
KLAUZULE ARBITRAŻOWE
KLAUZULE ARBITRAŻOWE KLAUZULE arbitrażowe ICC Zalecane jest, aby strony chcące w swych kontraktach zawrzeć odniesienie do arbitrażu ICC, skorzystały ze standardowych klauzul, wskazanych poniżej. Standardowa
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)
Twierdzenie Bayesa. Indukowane Reguły Decyzyjne Jakub Kuliński Nr albumu: 53623
Twierdzenie Bayesa Indukowane Reguły Decyzyjne Jakub Kuliński Nr albumu: 53623 Niniejszy skrypt ma na celu usystematyzowanie i uporządkowanie podstawowej wiedzy na temat twierdzenia Bayesa i jego zastosowaniu
Stanowisko Rzecznika Finansowego i Prezesa Urzędu Ochrony Konkurencji i Konsumentów w sprawie interpretacji art. 49 ustawy o kredycie konsumenckim
Prezes Urzędu Ochrony Konkurencji i Konsumentów Warszawa, 16 maja 2016 r. Stanowisko Rzecznika Finansowego i Prezesa Urzędu Ochrony Konkurencji i Konsumentów w sprawie interpretacji art. 49 ustawy o kredycie
DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15
DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15 Wykonawcy ubiegający się o udzielenie zamówienia Dotyczy: postępowania prowadzonego w trybie przetargu nieograniczonego na Usługę druku książek, nr postępowania
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
Praca na wielu bazach danych część 2. (Wersja 8.1)
Praca na wielu bazach danych część 2 (Wersja 8.1) 1 Spis treści 1 Analizy baz danych... 3 1.1 Lista analityczna i okno szczegółów podstawowe informacje dla każdej bazy... 3 1.2 Raporty wykonywane jako
Akademickie Centrum Informatyki PS. Wydział Informatyki PS
Akademickie Centrum Informatyki PS Wydział Informatyki PS Wydział Informatyki Sieci komputerowe i Telekomunikacyjne ROUTING Krzysztof Bogusławski tel. 4 333 950 kbogu@man.szczecin.pl 1. Wstęp 2. Tablica
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
Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD
Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD 1. Wprowadzenie DuŜa grupa sterowników mikroprocesorowych wymaga obsługi przycisków, które umoŝliwiają uŝytkownikowi uruchamianie
Ogólna charakterystyka kontraktów terminowych
Jesteś tu: Bossa.pl Kurs giełdowy - Część 10 Ogólna charakterystyka kontraktów terminowych Kontrakt terminowy jest umową pomiędzy dwiema stronami, z których jedna zobowiązuje się do nabycia a druga do
Konfiguracja historii plików
Wielu producentów oprogramowania oferuje zaawansowane rozwiązania do wykonywania kopii zapasowych plików użytkownika czy to na dyskach lokalnych czy w chmurze. Warto jednak zastanowić się czy instalacja
Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska
Qt sygnały i sloty Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
PERSON Kraków 2002.11.27
PERSON Kraków 2002.11.27 SPIS TREŚCI 1 INSTALACJA...2 2 PRACA Z PROGRAMEM...3 3. ZAKOŃCZENIE PRACY...4 1 1 Instalacja Aplikacja Person pracuje w połączeniu z czytnikiem personalizacyjnym Mifare firmy ASEC
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.
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ł
Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu
Rozdział 6 Pakowanie plecaka 6.1 Postawienie problemu Jak zauważyliśmy, szyfry oparte na rachunku macierzowym nie są przerażająco trudne do złamania. Zdecydowanie trudniejszy jest kryptosystem oparty na
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
Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x
Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x Wersja 02 Styczeń 2016 Centrum Elektronicznych Usług Płatniczych eservice Sp. z o.o. Spis treści 1. Wstęp... 3 1.1. Przeznaczenie dokumentu...
MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel. 0501 38 39 55 www.medicus.edu.
INSTYTUT MEDICUS Kurs przygotowawczy na studia medyczne Rok szkolny 00/0 tel. 050 38 39 55 www.medicus.edu.pl MATEMATYKA 4 FUNKCJA KWADRATOWA Funkcją kwadratową lub trójmianem kwadratowym nazywamy funkcję
Harmonogramowanie projektów Zarządzanie czasem
Harmonogramowanie projektów Zarządzanie czasem Zarządzanie czasem TOMASZ ŁUKASZEWSKI INSTYTUT INFORMATYKI W ZARZĄDZANIU Zarządzanie czasem w projekcie /49 Czas w zarządzaniu projektami 1. Pojęcie zarządzania
EGZAMIN MATURALNY Z INFORMATYKI CZERWIEC 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2010 KOD WISUJE ZDAJĄCY ESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY
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
WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania
WYKŁAD 8 Reprezentacja obrazu Elementy edycji (tworzenia) obrazu Postacie obrazów na różnych etapach procesu przetwarzania Klasy obrazów Klasa 1: Obrazy o pełnej skali stopni jasności, typowe parametry:
GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007
GEO-SYSTEM Sp. z o.o. 02-732 Warszawa, ul. Podbipięty 34 m. 7, tel./fax 847-35-80, 853-31-15 http:\\www.geo-system.com.pl e-mail:geo-system@geo-system.com.pl GEO-RCiWN Rejestr Cen i Wartości Nieruchomości
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,
Regu g l u a l min i n w s w pó p ł ó p ł r p acy O ow o iązuje od dnia 08.07.2011
Regulamin współpracy Obowiązuje od dnia 08.07.2011 1 1. Wstęp Regulamin określa warunki współpracy z firmą Hubert Joachimiak HubiSoft. W przypadku niejasności, prosimy o kontakt. Dane kontaktowe znajdują
Hermetyzacja oraz pola i metody statyczne
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2010 Bogdan Kreczmer Niniejszy dokument
class A { public: A(): i(5), s("abc") { } int i; string s; };
UWAGA! PoniŜej są pytania z egzaminu, z zaznaczonymi poprawnymi odpowiedziami. Przy niektórych z nich napisałem jakieś słowo komentarza (czemu tak, a nie inaczej...). Przypominam, Ŝe zasada punktacji była
Firma Informatyczna JazzBIT
Artykuły i obrazy Autor: Stefan Wajda [zwiastun] 10.02.2006. Dodawanie i publikowanie artykułów to najczęstsze zadanie. I chociaż nie jest skomplikowane, może początkujacych wprawiać w zakłopotanie. Trzeba
Rekompensowanie pracy w godzinach nadliczbowych
Rekompensowanie pracy w godzinach nadliczbowych PRACA W GODZINACH NADLICZBOWYCH ART. 151 1 K.P. Praca wykonywana ponad obowiązujące pracownika normy czasu pracy, a także praca wykonywana ponad przedłużony
Kontenery. Wykład 12. Programowanie (język C++) Rodzaje kontenerów. Przegląd kontenerów
Programowanie (język C) Kontenery Wykład 12. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Rodzaje kontenerów Kontenery sekwencyjne kolekcje uporządkowane, w których kaŝdy element
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
*** Przeczytaj najpierw, ponieważ to WAŻNE: ***
*** Przeczytaj najpierw, ponieważ to WAŻNE: Niniejszy materiał możesz dowolnie wykorzystywać. Możesz rozdawać go na swoim blogu, liście adresowej, gdzie tylko chcesz za darmo lub możesz go dołączyć, jako
VinCent Office. Moduł Drukarki Fiskalnej
VinCent Office Moduł Drukarki Fiskalnej Wystawienie paragonu. Dla paragonów definiujemy nowy dokument sprzedaży. Ustawiamy dla niego parametry jak podano na poniższym rysunku. W opcjach mamy możliwość
Procedura nadawania uprawnień do potwierdzania Profili Zaufanych w Urzędzie Gminy w Ryjewie
WÓJT GMINY RYJEWO Załącznik Nr 2 do Zarządzenia Nr 13/15 Wójta Gminy Ryjewo z dnia 20 lutego 2015 roku w sprawie zmiany treści zarządzenia Nr 45/14 Wójta Gminy Ryjewo z dnia 30 czerwca 2014 roku w sprawie
Numer obszaru: 13. Jak pracować z uczniem uzdolnionym informatycznie? Od grafiki i multimediów do poważnych algorytmów w środowisku Logomocja-Imagine
Numer obszaru: 13 Jak pracować z uczniem uzdolnionym informatycznie? Temat szkolenia Od grafiki i multimediów do poważnych algorytmów w środowisku Logomocja-Imagine Symbol szkolenia: PUZIMG SZCZEGÓŁOWY
UCHWAŁA NR III/21/15 RADY GMINY W KUNICACH. z dnia 23 stycznia 2015 r.
UCHWAŁA NR III/21/15 RADY GMINY W KUNICACH z dnia 23 stycznia 2015 r. w sprawie przyjęcia regulaminu dofinansowania zadań z zakresu usuwania, transportu i utylizacji wyrobów zawierających azbest z terenu
Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS
Ten dokument zawiera informacje o zmianach w wersjach: 3.33, 3.32, 3.31 STD w stosunku do wersji 3.30 STD 3.43, 3.42, 3.41 PLUS w stosunku do wersji 3.40 PLUS 1. Kancelaria Co nowego w systemie Kancelaris
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
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
Procedura nadawania uprawnień do potwierdzania, przedłuŝania waŝności i uniewaŝniania profili zaufanych epuap. Załącznik nr 1
Załącznik nr 1 do zarządzenia Nr 204/2014 Burmistrza Miasta Kudowa-Zdrój z dnia 5 sierpnia 2014 r. Procedura nadawania uprawnień do potwierdzania, przedłuŝania waŝności i uniewaŝniania profili zaufanych
Edycja geometrii w Solid Edge ST
Edycja geometrii w Solid Edge ST Artykuł pt.: " Czym jest Technologia Synchroniczna a czym nie jest?" zwracał kilkukrotnie uwagę na fakt, że nie należy mylić pojęć modelowania bezpośredniego i edycji bezpośredniej.
OSZACOWANIE WARTOŚCI ZAMÓWIENIA z dnia... 2004 roku Dz. U. z dnia 12 marca 2004 r. Nr 40 poz.356
OSZACOWANIE WARTOŚCI ZAMÓWIENIA z dnia... 2004 roku Dz. U. z dnia 12 marca 2004 r. Nr 40 poz.356 w celu wszczęcia postępowania i zawarcia umowy opłacanej ze środków publicznych 1. Przedmiot zamówienia:
ZAGADNIENIA PODATKOWE W BRANŻY ENERGETYCZNEJ - VAT
ZAGADNIENIA PODATKOWE W BRANŻY ENERGETYCZNEJ - VAT Szanowni Państwo! Prowadzenie działalności w branży energetycznej wiąże się ze specyficznymi problemami podatkowymi, występującymi w tym sektorze gospodarki.
INSTRUKCJA DLA INSPEKTORÓW DS. REJESTRACJI
Katowice, dnia 13 sierpnia 2008r. INSTRUKCJA DLA INSPEKTORÓW DS. REJESTRACJI Wskazane dokumenty w kaŝdym punkcie uwzględniają pełnomocnictwo udzielone przez upowaŝnione osoby. NaleŜy zaznaczyć, Ŝe będzie
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
Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).
Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania). W momencie gdy jesteś studentem lub świeżym absolwentem to znajdujesz się w dobrym momencie, aby rozpocząć planowanie swojej ścieżki
epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji
epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka
Podstawy programowania
Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inŝ. Grzegorz Zych Copernicanum, pok. 104 lub 206a 1 Minimum programowe reści kształcenia: Pojęcie algorytmu. Podstawowe konstrukcje
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.
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Standard Template Library. Część 1. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych.
Rozliczenia z NFZ. Ogólne założenia. Spis treści
Rozliczenia z NFZ Spis treści 1 Ogólne założenia 2 Generacja raportu statystycznego 3 Wczytywanie raportu zwrotnego 4 Szablony rachunków 4.1 Wczytanie szablonów 4.2 Wygenerowanie dokumentów rozliczenia
Bioinformatyka Laboratorium, 30h. Michał Bereta mbereta@pk.edu.pl www.michalbereta.pl
Bioinformatyka Laboratorium, 30h Michał Bereta mbereta@pk.edu.pl www.michalbereta.pl 1 Filogenetyka molekularna wykorzystuje informację zawartą w sekwencjach aminokwasów lub nukleotydów do kontrukcji drzew
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.
Rzutowanie i konwersje
Rzutowanie i konwersje Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
zgubił całą naszą korespondencję Można by tak wymieniać bez bezpieczeństwa, gdyby była wykonana dnia poprzedniego rozwiązałaby niejeden problem.
Zasada działania usługi Business Safe jest prosta. Zainstalowany na Twoim komputerze progra Dlaczego backupować? Któż z nas nie zna smaku tego okropnego uczucia, gdy włączając kompuuter, który jeszcze
PROCEDURA OCENY RYZYKA ZAWODOWEGO. w Urzędzie Gminy Mściwojów
I. Postanowienia ogólne 1.Cel PROCEDURA OCENY RYZYKA ZAWODOWEGO w Urzędzie Gminy Mściwojów Przeprowadzenie oceny ryzyka zawodowego ma na celu: Załącznik A Zarządzenia oceny ryzyka zawodowego monitorowanie
Regulamin reklamy produktów leczniczych na terenie Samodzielnego Publicznego Zakładu Opieki Zdrowotnej Ministerstwa Spraw Wewnętrznych w Białymstoku
Regulamin reklamy produktów leczniczych na terenie Samodzielnego Publicznego Zakładu Opieki Zdrowotnej Ministerstwa Spraw Wewnętrznych w Białymstoku 1 1. Niniejszy Regulamin określa zasady prowadzenia
Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski
Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 11 Zastosowanie PHP do programowania aplikacji baz danych Oracle Wsparcie programowania w PHP baz danych Oracle Oprócz możliwego
Wstę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 4 Funkcje przeciażone - Idea Przeciażanie funkcji (polimorfizm funkcji), to kolejna nowość w języku
Matematyka dla liceum/funkcja liniowa
Matematyka dla liceum/funkcja liniowa 1 Matematyka dla liceum/funkcja liniowa Funkcja liniowa Wstęp Co zawiera dział Czytelnik pozna następujące informacje: co to jest i jakie ma własności funkcja liniowa
Materiał pomocniczy dla nauczycieli kształcących w zawodzie:
Materiał pomocniczy dla nauczycieli kształcących w zawodzie: TECHNIK MASAŻYSTA przygotowany w ramach projektu Praktyczne kształcenie nauczycieli zawodów branży hotelarsko-turystycznej Priorytet III. Wysoka
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:
Załącznik nr 4 UMOWA O REALIZACJI PRAKTYKI STUDENCKIEJ
Załącznik nr 4 UMOWA O REALIZACJI PRAKTYKI STUDENCKIEJ W dniu 200.. roku, w Płocku pomiędzy: 1. Szkołą Wyższą im. Pawła Włodkowica w Płocku Filia w Wyszkowie, z siedzibą w Wyszkowie przy ul. Geodetów 45a,
Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia: www.wup.pl/index.php?
1 z 6 2013-10-03 14:58 Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia: www.wup.pl/index.php?id=221 Szczecin: Usługa zorganizowania szkolenia specjalistycznego
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
KONKURS NA NAJLEPSZE LOGO
KONKURS NA NAJLEPSZE LOGO Stowarzyszenie Unia Nadwarciańska ogłasza konkurs na logo. Regulamin konkursu: I. POSTANOWIENIA WSTĘPNE 1. Regulamin określa: cele konkursu, warunki uczestnictwa w konkursie,
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
Komputer i urządzenia z nim współpracujące
Temat 1. Komputer i urządzenia z nim współpracujące Realizacja podstawy programowej 1. 1) opisuje modułową budowę komputera, jego podstawowe elementy i ich funkcje, jak również budowę i działanie urządzeń
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
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
Specyfikacja techniczna banerów Flash
Specyfikacja techniczna banerów Flash Po stworzeniu własnego banera reklamowego należy dodać kilka elementów umożliwiających integrację z systemem wyświetlającym i śledzącym reklamy na stronie www. Specyfikacje
Podstawy Informatyki Gramatyki formalne
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Języki i gramatyki Analiza syntaktyczna Semantyka 2 Podstawowe pojęcia Gramatyki wg Chomsky ego Notacja Backusa-Naura
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
Automatyka. Etymologicznie automatyka pochodzi od grec.
Automatyka Etymologicznie automatyka pochodzi od grec. : samoczynny. Automatyka to: dyscyplina naukowa zajmująca się podstawami teoretycznymi, dział techniki zajmujący się praktyczną realizacją urządzeń
POWIATOWY URZĄD PRACY
POWIATOWY URZĄD PRACY ul. Piłsudskiego 33, 33-200 Dąbrowa Tarnowska tel. (0-14 ) 642-31-78 Fax. (0-14) 642-24-78, e-mail: krda@praca.gov.pl Załącznik Nr 3 do Uchwały Nr 5/2015 Powiatowej Rady Rynku Pracy
Logowanie do systemu Faktura elektroniczna
Logowanie do systemu Faktura elektroniczna Dostęp do Systemu Faktury Elektronicznej możliwy jest poprzez kliknięcie odnośnika Moja faktura w prawym górnym rogu strony www.wist.com.pl, a następnie przycisku