Wartości domyślne, szablony funkcji i klas
|
|
- Ludwika Murawska
- 8 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
Bardziej szczegółowoWprowadzenie 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.
Bardziej szczegółowoWprowadzenie 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
Bardziej szczegółowoWprowadzenie 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
Bardziej szczegółowoPrzykł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ółowoDziedziczenie : 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ółowoProjektowanie 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
Bardziej szczegółowoProgramowanie 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ółowoSzablony, 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
Bardziej szczegółowoProgramowanie 2. Język C++. Wykład 2.
2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...
Bardziej szczegółowoĆ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ółowoPreprocesor 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
Bardziej szczegółowoKompozycja 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ółowo0.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ółowo3-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ółowoPAKIET 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
Bardziej szczegółowoTemat: 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ółowoQt 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
Bardziej szczegółowoPolitechnika 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ółowoPROE 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ółowoKLAUZULE 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
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)
Bardziej szczegółowoTwierdzenie 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
Bardziej szczegółowoStanowisko 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
Bardziej szczegółowoDE-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
Bardziej szczegółowoPROGRAMOWANIE 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ółowoPraca 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
Bardziej szczegółowoAkademickie 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
Bardziej szczegółowoKATEDRA 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ółowoOprogramowanie 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
Bardziej szczegółowoOgó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
Bardziej szczegółowoKonfiguracja 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
Bardziej szczegółowoQt 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
Bardziej szczegółowoKurs 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
Bardziej szczegółowoPERSON 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
Bardziej szczegółowoPROGRAMOWANIE 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ółowoInstalacja. 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ółowoRozdział 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
Bardziej szczegółowoWtedy 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ółowoWdroż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...
Bardziej szczegółowoMATEMATYKA 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ę
Bardziej szczegółowoHarmonogramowanie 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
Bardziej szczegółowoEGZAMIN 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
Bardziej szczegółowoUmowa 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ółowoWYKŁ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:
Bardziej szczegółowoGEO-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
Bardziej szczegółowoIntegracja 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ółowoRegu 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ą
Bardziej szczegółowoHermetyzacja 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
Bardziej szczegółowoclass 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
Bardziej szczegółowoFirma 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
Bardziej szczegółowoRekompensowanie 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
Bardziej szczegółowoKontenery. 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
Bardziej szczegółowoII. 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*** 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
Bardziej szczegółowoVinCent 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ść
Bardziej szczegółowoProcedura 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
Bardziej szczegółowoNumer 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
Bardziej szczegółowoUCHWAŁ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
Bardziej szczegółowoCo 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
Bardziej szczegółowoKonferencja 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ółowoOFERTA 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ółowoProcedura 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
Bardziej szczegółowoEdycja 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.
Bardziej szczegółowoOSZACOWANIE 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:
Bardziej szczegółowoZAGADNIENIA 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.
Bardziej szczegółowoINSTRUKCJA 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
Bardziej szczegółowoWarszawska 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ółowoStrategia 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
Bardziej szczegółowoepuap 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
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoWarunki 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ółowoAlgorytmy 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.
Bardziej szczegółowoRozliczenia 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
Bardziej szczegółowoBioinformatyka 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
Bardziej szczegółowoSpis 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ółowoRzutowanie 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
Bardziej szczegółowozgubił 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
Bardziej szczegółowoPROCEDURA 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
Bardziej szczegółowoRegulamin 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
Bardziej szczegółowoBazy 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
Bardziej szczegółowoWstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 4 Funkcje przeciażone - Idea Przeciażanie funkcji (polimorfizm funkcji), to kolejna nowość w języku
Bardziej szczegółowoMatematyka 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
Bardziej szczegółowoMateriał 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
Bardziej szczegółowoElementy 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ółowoZałą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,
Bardziej szczegółowoAdres 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
Bardziej szczegółowoFunkcje 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ółowoKONKURS 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,
Bardziej szczegółowoPrzypomnienie 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ółowoKomputer 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ń
Bardziej szczegółowoWykł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ółowoRegulamin 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ółowoSpecyfikacja 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
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoNa 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ółowoAutomatyka. 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ń
Bardziej szczegółowoPOWIATOWY 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
Bardziej szczegółowoLogowanie 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
Bardziej szczegółowo