Spis treœci trzech tomów

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

Download "Spis treœci trzech tomów"

Transkrypt

1 III Spis treœci trzech tomów Tom 1 0 Proszê nie czytaæ tego! ZaprzyjaŸnijmy siê! Startujemy! Pierwszy program Drugi program Æwiczenia Instrukcje steruj¹ce Prawda Fa³sz, czyli o warunkach Wyra enie logiczne Zmienna logiczna bool w roli warunku Stare dobre sposoby z dawnego C Instrukcja warunkowa if Pêtla while Pêtla do...while Pêtla for Instrukcja switch Co wybraæ: switch czy if...else? Instrukcja break Instrukcja goto Instrukcja continue Klamry w instrukcjach steruj¹cych Æwiczenia Typy Deklaracje typu Systematyka typów z jêzyka C Typy fundamentalne Typy przeznaczone do pracy z liczbami ca³kowitymi Typy do przechowywania znaków alfanumerycznych Typy reprezentuj¹ce liczby zmiennoprzecinkowe bool typ do reprezentacji obiektów logicznych Kwestia dok³adnoœci...49

2 IV Jak poznaæ limity (ograniczenia) typów wbudowanych Typy o precyzyjnie ¹danej szerokoœci InicjaLIZacja, czyli nadanie wartoœci w momencie narodzin Definiowanie obiektów w biegu Sta³e dos³owne Sta³e dos³owne typu bool Sta³e bêd¹ce liczbami ca³kowitymi Sta³e reprezentuj¹ce liczby zmiennoprzecinkowe Sta³a dos³owna nullptr dla wskaÿników Sta³e znakowe Sta³e tekstowe, napisy, albo po prostu stringi Surowe sta³e tekstowe (napisy, stringi) Typy z³o one Typ void Zakres wa noœci nazwy obiektu, a czas ycia obiektu Zakres: lokalny Zakres instrukcji Zakres: blok funkcji Zakres: obszar pliku Zakres: obszar klasy Zakres okreœlony przez przestrzeñ nazw Zas³anianie nazw Specyfikator (przydomek) const Specyfikator (przydomek) constexpr Obiekty register Specyfikator volatile Dodatkowa nazwa typu za pomoc¹ using oraz typedef Typy wyliczeniowe enum Dawne zwyk³e enum, a nowe zakresowe enum class Kilka uwag dla wtajemniczonych S³owo kluczowe auto czyli automatyczne rozpoznawanie typu definiowanego obiektu decltype operator okreœlania typu zadanego wyra enia Inicjalizacja z pust¹ klamr¹ { } czyli wartoœci¹ domnieman¹ Przydomek alignas adresy równe i równiejsze Æwiczenia Ope ra tory Operatory arytmetyczne Ope ra to r %, czyli reszta z dzielenia (modulo) Jednoargumentowe ope ra tory + i Ope ra tory inkrementacji i dekrementacji Ope ra to r przypisania = Operatory logiczne Operatory relacji Ope ra tory sumy logicznej oraz iloczynu logicznego && Wykrzyknik! czyli ope ra to r negacji Operatory bitowe Przesuniêcie w lewo << Przesuniêcie w prawo >> Bitowe ope ra tory sumy, iloczynu, negacji, ró nicy symetrycznej Ró nica miêdzy operatorami logicznymi, a operatorami bitowymi Pozosta³e operatory przypisania Operator uzyskiwania adresu (operator &) Wyra enie warunkowe Operator sizeof...136

3 4.9 Operator noexcept Deklaracja static_assert Operator alignof informuj¹cy o najkorzystniejszym wyrównaniu adresu Operatory rzutowania Rzutowanie wed³ug tradycyjnych (nie zalecanych) sposobów Rzutowanie za pomoc¹ nowych operatorów rzutowania Operator static_cast Operator const_cast Operator dynamic_cast Operator reinterpret_cast Operator: przecinek Priorytety operatorów ¹cznoœæ operatorów Æwiczenia Typ string i typ vector pierwsza wzmianka Typ std::string do pracy z tekstami Typ vector d³ugi rz¹d obiektów Zakresowe for Æwiczenia Funkcje Definicja funkcji i jej wywo³anie Deklaracja funkcji Funkcja czêsto wywo³uje inn¹ funkcjê Zwracanie przez funkcjê rezultatu Obie k t tworzony za pomoc¹ auto, a inicjalizowany rezultatem funkcji O zwracaniu (lub nie zwracaniu) rezultatu przez funkcjê main Nowy, alternatywny sposób deklaracji funkcji Stos Przesy³anie argumentów do funkcji przez wartoœæ Przesy³anie argumentów przez referencjê Po yteczne okreœlenia: L wartoœæ i R wartoœæ Referencje do l-wartoœci i referencje do r-wartoœci argumentami funkcji Który sposób przesy³ania argu men tu do funkcji wybraæ? Kiedy deklaracja funkcji nie jest konieczna? Argumenty domniemane Ciekawostki na temat argumentów domniemanych Nienazwany argument Funkcje inline (w linii) Przypomnienie o zakresie wa noœci nazw deklarowanych wewn¹trz funkcji Wybór zakresu wa noœci nazwy i czasu ycia obiektu Obiekty globalne Obiekty automatyczne Obiekty lokalne statyczne Funkcje w programie sk³adaj¹cym siê z kilku plików Nazwy statyczne globalne Funkcja zwracaj¹ca rezultat bêd¹cy referencj¹ l-wartoœci Funkcje rekurencyjne Funkcje biblioteczne Funkcje constexpr Wymogi, które musi spe³niaæ funkcja constexpr (w standardzie C++11) Przyk³ad poka zu j¹cy aspekty funkcji constexpr Argu men ty funkcji constexpr bêd¹ce referencjami Definiowanie referencji przy u yciu s³owa auto V

4 VI Gdy inicjalizatorem jest wywo³anie funkcji zwracaj¹cej referencjê Æwiczenia Preprocesor Dyrektywa pusta # Dyrektywa #define Dyrektywa #undef Makrodefinicje Sklejacz nazw argumentów, czyli operator ## Parametr aktualny makrodefinicji w postaci na tekstu Dyrektywy kompilacji warunkowej Dyrektywa #error Dyrektywa #line Wstawianie treœci innych plików w tekst kompilowanego w³aœnie pliku Dyrektywy zale ne od implementacji Nazwy predefiniowane Æwiczenia Tablice Co to jest tablica Elementy tablicy Inicjalizacja tablic Przekazywanie tablicy do funkcji Przyk³ad z tablic¹ elementów typu enum Tablice znakowe Æwiczenia Tablice wielowymiarowe Tablica tablic Przyk³ad programu pracuj¹cego z tablic¹ dwuwymiarow¹ Gdzie w pamiêci jest dany element tablicy Typ wyra eñ zwi¹zanych z tablic¹ wielowymiarow¹ Przesy³anie tablic wielowymiarowych do funkcji Æwiczenia Wektory wielowymiarowe Najpierw przypomnienie istotnych tu cech klasy vector Jak za pomoc¹ klasy vector budowaæ tablice wielowymiarowe Funkcja pokazuj¹ca zawartoœæ wektora dwuwymiarowego Definicja dwuwymiarowego wektora pustego Definicja wektora dwuwymiarowego z list¹ inicjalizatorów Wektor dwuwymiarowy o ¹danych rozmiarach, choæ bez inicjalizacji Zmiana rozmiarów wektora dwuwymiarowego funkcj¹ resize Zmiany rozmiaru wektora 2D funkcjami push_back, pop_back Zmniejszanie rozmiaru wektora dwuwymiarowego funkcj¹ pop_back Funkcje mog¹ce modyfikowaæ treœæ wektora 2D Wys³anie rzêdu wektora 2D do funkcji pracuj¹cej z wektorem 1D Ca³oœæ przyk³adu definiuj¹cego wektory dwuwymiarowe Po co s¹ dwuwymiarowe wektory nie-prostok¹tne? Wektory trójwymiarowe Sposoby definicji wektora 3D o ustalonych rozmiarach Nadawanie pustemu wektorowi 3D wymaganych rozmiarów Zmiana rozmiarów wektora 3D funkcjami resize Zmiana rozmiarów wektora 3D funkcjami push_back...348

5 10.17 Trójwymiarowe wektory 3D nie prostopad³oœcienne Æwiczenia WskaŸniki wiadomoœci wstêpne WskaŸniki mog¹ bardzo u³atwiæ ycie Definiowanie wskaÿników Praca ze wskaÿnikiem Definiowanie wskaÿnika z u yciem auto Wyra enie *wskaÿnik jest l wartoœci¹ Operator rzutowania reinterpret_cast, a wskaÿniki WskaŸniki typu void* Strza³ na oœlep WskaŸnik zawsze pokazuje na coœ WskaŸnik wolno porównaæ z adresem zero nullptr Æwiczenia Cztery domeny zastosowania wskaÿników Zastosowanie wskaÿników wobec tablic Æwiczenia z mechaniki ruchu wskaÿnika U ycie wskaÿnika w pracy z tablic¹ Arytmetyka wskaÿników Porównywanie wskaÿników Zastosowanie wskaÿników w argumentach funkcji Jeszcze raz o przesy³aniu tablic do funkcji Odbieranie tablicy jako wskaÿnika Argu men t formalny bêd¹cy wskaÿnikiem do obiektu const Zastosowanie wskaÿników przy dostêpie do konkretnych komórek pamiêci Rezerwacja obszarów pamiêci Ope ra tory new i de lete albo Oratorium Stworzenie Œwiata Operator new, a s³owo kluczowe auto Ini cja li za cja obiektu tworzonego ope ra torem new Operatorem new mo emy tak e tworzyæ obiekty sta³e Dynamiczna alokacja tablicy Tablice wielowymiarowe tworzone ope ra torem new Umiejscawiaj¹cy operator new Przychodzimy, odchodzimy cichuteñko, na Zapas pamiêci to nie jest studnia bez dna Nowy sposób powiadomienia: rzucenie wyj¹tku std::bad_alloc Funkcja set_new_han dler Æwiczenia WskaŸniki runda trzecia Sta³e wskaÿniki Sta³e wskaÿniki, a wskaÿniki do sta³ych Wierzch i g³êbia Definiowanie wskaÿnika z u yciem auto Sym bol zastêpczy auto, a opuszczanie gwiazdki przy definiowaniu wskaÿnika Sposoby ustawiania wskaÿników Parada k³amców, czyli o rzutowaniu const_cast Tablice wskaÿników Wariacje na temat C-stringów Argumenty z linii wywo³ania programu Æwiczenia VII

6 VIII 14 WskaŸniki do funkcji WskaŸnik, który mo e pokazywaæ na funkcjê Æwiczenia z definiowania wskaÿników do funkcji WskaŸnik do funkcji jako argument innej funkcji Tablica wskaÿników do funkcji U ycie deklaracji using i typedef w œwiecie wskaÿników Alias przydatny w argumencie funkcji Alias przydatny w defi ni cji tablicy wskaÿników do funkcji U ycie auto lub decltype do automatycznego rozpoznania potrzebnego typu Æwiczenia Prze³adowanie nazwy funkcji Co to znaczy: prze³adowanie Prze³adowanie od kuchni Jak mo emy prze³adowywaæ, a jak siê nie da? Czy prze³adowanie nazw funkcji jest technik¹ orientowan¹ obiektowo? Linkowanie z modu³ami z innych jêzyków Prze³adowanie, a zakres wa noœci deklaracji funkcji Rozwa ania o identycznoœci lub odmiennoœci typów argumentów Prze³adowanie, a typy z us ing lub typedef oraz typy enum Tablica, a wskaÿnik Pewne szczegó³y o tablicach wielowymiarowych Prze³adowanie, a referencja Identycznoœæ typów: T, const T, vol a tile T Prze³adowanie a typy: T*, vol a tile T*, const T* Prze³adowanie a typy: T&, vol a tile T&, const T& Adres funkcji prze³adowanej Zwrot rezultatu bêd¹cego adresem funkcji prze³adowanej Kulisy dopasowywania argumentów do funkcji prze³adowanych Etapy dopasowania Etap 1. Dopasowanie dok³adne Etap 1a. Dopasowanie dok³adne, ale z tzw. trywialn¹ konwersj¹ Etap 2. Dopasowanie z awansem (z promocj¹) Etap 3. Próba dopasowania za pomoc¹ konwersji standardowych Etap 4. Dopasowanie z u yciem konwersji zdefiniowanych przez u ytkownika Etap 5. Dopasowanie do funkcji z wielokropkiem WskaŸników nie dopasowuje siê inaczej ni dos³ownie Dopasowywanie wywo³añ z kilkoma argumentami Æwiczenia Klasy Typy definiowane przez u ytkownika Sk³adniki klasy Sk³adnik bêd¹cy obiektem Kapsu³owanie Ukrywanie informacji Klasa, a obiekt Wartoœci wstêpne w sk³adnikach nowych obiektów. Inicjalizacja w-klasie Funkcje sk³adowe Pos³ugiwanie siê funkcjami sk³adowymi Definiowanie funkcji sk³adowych Jak to w³aœciwie jest? (this) Odwo³anie siê do publicznych danych sk³adowych obiektu Zas³anianie nazw...527

7 Nie siêgaj z klasy do obiektów globalnych Prze³adowanie i zas³oniêcie równoczeœnie Nowa klasa? Osobny plik! Poznajmy praktyczn¹ realizacjê wielo-plikowego programu Zasada umieszczania dyrektywy us ing namespace w plikach Przesy³anie do funkcji argumentów bêd¹cych obiektami Przesy³anie obiektu przez wartoœæ Przesy³anie przez referencjê Konstruktor pierwsza wzmianka Destruktor pierwsza wzmianka Sk³adnik statyczny Do czego mo e siê przydaæ sk³adnik statyczny w klasie? Statyczna funkcja sk³adowa Dekla ra cja sk³adnika statycznego maj¹ca inicjalizacjê w-klasie Funkcje sk³adowe typu const oraz volatile Prze³adowanie, a funkcje sk³adowe const i volatile Struktura Klasa bêd¹ca agregatem. Klasa bez konstruktora Funkcje sk³adowe z przydomkiem constexpr Specyfikator mutable Bardziej rozbudowany przyk³ad zastosowania klasy Æwiczenia Tom 2 17 Biblioteczna klasa std::string Rozwi¹zanie przechowywania tekstów musia³o siê znaleÿæ Klasa std::string to przecie nasz stary znajomy Definiowanie obiektów klasy string U ycie operatorów =, +, +=, w pracy ze stringami Pojemnoœæ, rozmiar i d³ugoœæ stringu BliŸniacze funkcje size() i length() Funkcja sk³adowa empty Funkcja sk³adowa max_size Funkcja sk³adowa ca pac ity Funkcje sk³adowe re serve i shrink_to_fit resize zmiana d³ugoœci stringu na si³ê Funkcja sk³adowa clear U ycie operatora [ ] oraz funkcji at Dzia³anie operatora [ ] Dzia³anie funkcji sk³adowej at Przebieganie po wszystkich literach stringu zakresowym-for Funkcje sk³adowe front i back Jak umieœciæ w tekœcie liczbê? Jak wczytaæ liczbê ze stringu? Praca z fragmentem stringu, czyli z sub stringiem Funkcja sk³adowa substr Szukanie zadanego substringu w obiekcie klasy string funkcje find Szukanie rozpoczynane od koñca stringu Szukanie w stringu jednego ze znaków z zadanego zestawu Usuwanie znaków ze stringu erase i pop_back Wstawianie znaków do istniej¹cego stringu funkcje insert Zamiana czêœci znaków na inne znaki replace IX

8 X Zagl¹danie do wnêtrza obiektu klasy string funkcj¹ data Zawartoœæ obiektu klasy string, a C-string W porz¹dku alfabetycznym czyli porównywanie stringów Porównywanie stringów funkcjami com pare Porównywanie stringów przy u yciu operatorów ==,!=,<, >, <=, >= Zamiana treœci stringu na ma³e (lub wielkie) litery Kopiowanie treœci obiektu klasy string do wybranej tablicy znakowej funkcja copy Wzajemna zamiana treœci dwóch obiektów klasy string funkcja swap Wczytywanie z klawiatury d³ugiego stringu o nieznanej wczeœniej d³ugoœci getline Pu³apka czyli jak getline mo e Ciê zaskoczyæ Iteratory stringu Iterator do obiektu sta³ego Funkcje sk³adowe klasy string pracuj¹ce z iteratorami Klasa string korzysta z techniki przenoszenia Bryk czyli pamiêæ zewnêtrzna programisty Æwiczenia Deklaracje przyjaÿni Przyjaciele w yciu i w C Przyk³ad: dwie klasy deklaruj¹ przyjaÿñ z t¹ sam¹ funkcj¹ W przyjaÿni trzeba pamiêtaæ o kilku sprawach Obdarzenie przyjaÿni¹ funkcji sk³adowej innej klasy Klasy zaprzyjaÿnione Konwencja umieszczania deklaracji przyjaÿni w klasie Kilka trzeÿwych s³ów na zakoñczenie Æwiczenia Obs³uga sytuacji wyj¹tkowych Jak daæ znaæ, e coœ siê nie uda³o? Pierwszy prosty przyk³ad Kolejnoœæ bloków catch ma znaczenie Który blok catch nadaje siê do z³apania lec¹cego wyj¹tku? Bloki try mog¹ byæ zagnie d ane Obs³uga wyj¹tków w praktycznym programie Specyfikator noexcept i operator noexcept Æwiczenia Klasa-sk³adnik oraz klasa lokalna Klasa-sk³adnik, czyli gdy w klasie jest zagnie d ona definicja innej klasy Prawdziwy przyk³ad zagnie d enia definicji klasy Lokalna definicja klasy Lokalne nazwy typów Æwiczenia Konstruktory i destruktory Konstruktor Przyk³ad programu zawieraj¹cego klasê z konstruktorami Specyfikator (przydomek) explicit Kiedy i jak wywo³ywany jest konstruktor Konstruowanie obiektów lokalnych Konstruowanie obiektów globalnych Konstrukcja obiektów tworzonych ope ra torem new Jawne wywo³anie konstruktora Dalsze sytuacje, gdy pracuje konstruktor...779

9 21.4 Destruktor Jawne wywo³anie destruktora (ogromnie rzadka sytuacja) Nie rzucajcie wyj¹tków z destruktorów Konstruktor domniemany Funkcje sk³adowe z przypiskami = default i = delete Konstruktorowa lista inicjalizacyjna sk³adników klasy Dla wtajemniczonych: wyj¹tki rzucane z konstruktorowej listy inicjalizacyjnej Konstruktor deleguj¹cy Pomocnicza klasa std::initializer_list lista inicjalizatorów Zastosowania nie-konstruktorowe Konfuzja: lista inicjalizatorów, a lista inicjalizacyjna Konstruktor z argu men tem bêd¹cym klamrow¹ list¹ inicjalizatorów Konstrukcja obiektu, którego sk³adnikiem jest obiekt innej klasy Konstruktory nie-publiczne? Konstruktory constexpr mog¹ wytwarzaæ obiekty constexpr Æwiczenia Konstruktory: kopiuj¹cy i przenosz¹cy Konstruktor kopiuj¹cy (albo inicjalizator kopiuj¹cy) Przyk³ad klasy z konstruktorem kopiuj¹cym Kompilatorowi wolno pomin¹æ niepotrzebne kopiowanie Dlaczego przez referencjê? Konstruktor kopiuj¹cy gwarantuj¹cy nietykalnoœæ Wspó³odpowiedzialnoœæ Konstruktor kopiuj¹cy generowany automatycznie Kiedy konstruktor kopiuj¹cy powinniœmy zdefiniowaæ sami? Referencja r-wartoœci daje zezwolenie na recykling Funkcja std::move, która nie przenosi, a tylko rzutuje Odebrana r-wartoœæ staje siê w ciele funkcji l-wartoœci¹ Konstruktor przenosz¹cy (inicjalizator przenosz¹cy) Konstruktor przenosz¹cy generowany przez kom pi la tor Inne konstruktory generowane auto ma ty cz nie Zwrot obiektu lokalnego przez wartoœæ? Nie u ywamy przenoszenia! Tak zwana semantyka przenoszenia Nowe pojêcia dla ambitnych: gl-wartoœæ, x-wartoœæ, i pr-wartoœæ decltype operator rozpoznawania typu bardzo wyszukanych wyra eñ Æwiczenia Tablice obiektów Definiowanie i praca z nimi Tablica obiektów definiowana operatorem new Inicjalizacja tablic obiektów Ini cja li za cja tablic, której obiekty s¹ agregatami Inicjalizacja tablic, których elementy nie s¹ agregatami Wektory obiektów Wektor, którego elementami s¹ obiekty klasy bêd¹cej agregatem Wektor, którego elementami s¹ obiekty klasy nie bêd¹cej agregatem Æwiczenia WskaŸnik do sk³adników klasy WskaŸniki zwyk³e repetytorium WskaŸnik do pokazywania na sk³adnik-dan¹ Przyk³ad zastosowania wskaÿników do sk³adników klasy WskaŸnik do funkcji sk³adowej Przyk³ad zastosowania wskaÿników do funkcji sk³adowych XI

10 XII 24.4 Tablica wskaÿników do danych sk³adowych klasy Tablica wskaÿników do funkcji sk³adowych klasy Przyk³ad tablicy/wektora wskaÿników do funkcji sk³adowych WskaŸniki do sk³adników statycznych s¹ zwyk³e Æwiczenia Konwersje definiowane przez u ytkownika Sformu³owanie problemu Konstruktory konwertuj¹ce Kiedy jawnie, kiedy niejawnie Przyk³ad konwersji konstruktorem Funkcja konwertuj¹ca operator konwersji Na co funkcja konwertuj¹ca zamieniaæ nie mo e Który wariant konwersji wybraæ? Sytuacje, w których zachodzi konwersja Zapis jawnego wywo³ania konwersji typów Advocatus zapisu przypominaj¹cego: wywo³anie funkcji Advocatus zapisu: rzutowanie Nie ca³kiem pasuj¹ce argumenty, czyli konwersje kompilatora przy dopasowaniu Kilka rad dotycz¹cych konwersji Æwiczenia Prze³adowanie operatorów Co to znaczy prze³adowaæ operator? Prze³adowanie operatorów definicja i trochê teorii Moje zabawki Funkcja operatorowa jako funkcja sk³adowa Funkcja operatorowa nie musi byæ przyjacielem klasy Operatory predefiniowane Ile operandów ma mieæ ten operator? Operatory jednooperandowe Operatory dwuoperandowe Przyk³ad na prze³adowanie ope ra tora dwuoperandowego Przemiennoœæ Choæ ope ra tory inne, to nazwê maj¹ tê sam¹ Przyk³ad zupe³nie nie matematyczny Operatory post inkrementacji i post dekrementacji koniec z niesprawiedliwoœci¹ Rady praktyczne dotycz¹ce prze³adowania Pojedynek: Operator jako funkcja sk³adowa, czy globalna? Zas³ona spada, czyli tajemnica operatora << Sta³e dos³owne definiowane przez u ytkownika Przyk³ad: sta³e dos³owne u ytkownika odbierane jako gotowane Przyk³ad: sta³e dos³owne u ytkownika odbierane na surowo Æwiczenia Prze³adowanie: = [ ] ( ) > Cztery operatory, które musz¹ byæ niestatycznymi funkcjami sk³adowymi Operator przypisania= (wersja kopiuj¹ca) Przyk³ad na prze³adowanie (kopiuj¹cego) ope ra tora przypisania Przypisanie kaskadowe Po co i jak zabezpieczamy siê przed przypisaniem a = a Jak koniecznoœæ istnienia ope ra tora przypisania opowiedzieæ potocznie? Kiedy kopiuj¹cy ope ra to r przypisania nie jest generowany auto ma ty cz nie Przenosz¹cy operator przypisania= Specjalne funkcje sk³adowe i nierealna prosta zasada

11 XIII 27.5 Operator [ ] Operator ( ) Operator > Sprytny wskaÿnik wykorzystuje prze³adowanie w³aœnie tego ope ra tora Æwiczenia Tom 3 28 Prze³adowanie operatorów new, de lete na u ytek klasy Po co prze³adowujemy operatory new, new[ ] Funkcja operator new i operator new[ ] w klasie K Jak siê deklaruje operatory new, delete w klasie? Przyk³adowy program z prze³adowanymi new i delete Gdy dopuszczamy rzucanie wyj¹tku std::bad_alloc Po staremu nadal mo na Rezerwacja tablicy obiektów naszej klasy Twektorek Nasze w³asne argu men ty wys³ane do ope ra tora new Ope ra tory new i de lete odziedziczone do klasy pochodnej A jednak polimorfizm jest mo liwy Tworzenie i likwidowanie tablicy obiektów kasy pochodnej Ope ra tory new, które nie rzuc¹ wyj¹tku std::bad_alloc Rzut oka wstecz na prze³adowanie operatorów Æwiczenia Unie, Pola bitowe Unia Unia anonimowa Klasa uniopodobna (unia z metryczk¹) Gdy sk³adnik unii jest obiektem jakiejœ klasy Unia o sk³adnikach maj¹cych swe konstruktory, destruktory itp Pola bitowe Unia i pola bitowe upraszczaj¹ deszyfrowanie s³ów danych Æwiczenia Wyra enia lambda, wys³anie kodu do innych funkcji Preludium: Dwa sposoby przes³ania kryterium oceniania Sposób I: Kryterium przekazane wskaÿnikiem do funkcji (orzekaj¹cej) Sposób II: Kryterium umieszczone w obiekcie funkcyjnym Kryterium oceny z parametrem (czyli o wy szoœci funktorów) Funkcja-algorytm biblioteczny std::count_if Co lepsze: funkcja orzekaj¹ca czy orzekaj¹cy obie k t funkcyjny? Wyra enie lambda Formy wyra enia lambda Lista argumentów (formalnych) Cia³o wyra enia lambda Typ rezultatu Lista wychwytywania S³owo kluczowe mu ta ble w wyra eniu lambda Specyfikacja dotycz¹ca wyj¹tków rzucanych z wyra enia lambda Wyra enie lambda zastosowane w funkcji sk³adowej Tworzenie (nazwanych) obiektów lambda s³owem auto Tworzenie obiektów na lambdy s³owem kluczowym auto

12 XIV Tworzenie (nazwanych) obiektów lambda sza b lo nem std::func tion Stowarzyszenie martwych referencji Rekurencja przy u yciu wyra enia lambda Wyra enie lambda jako domniemana wartoœæ argumentu Rzucanie wyj¹tków z wyra enia lambda Vivat lambda! Æwiczenia Dzie dzi cze nie klas Istota dziedziczenia Dostêp do sk³adników Prywatne sk³adniki klasy podstawowej Nieprywatne sk³adniki klasy podstawowej Klasa pochodna te decyduje Deklaracja dostêpu us ing czyli udostêpnianie wybiórcze Czego siê nie dziedziczy Nie dziedziczenie konstruktorów Nie dziedziczenie operatora przypisania Nie dziedziczenie destruktora Drzewo genealogiczne Dziedziczenie doskona³e narzêdzie programowania Kolejnoœæ wywo³ywania konstruktorów Przypisanie i inicjalizacja obiektów w warunkach dziedziczenia Klasa pochodna nie definiuje swojego kopiuj¹cego ope ra tora przypisania Klasa pochodna nie definiuje swojego konstruktora kopiuj¹cego Ini cja li za cja i przypisywanie wg obiektu bêd¹cego const Przyk³ad: konstruktor kopiuj¹cy i operator przypisania dla klasy pochodnej Jak zainstalowaæ mechanizm kopiowania w klasie pochodnej Jak w klasie pochodnej zainstalowaæ mechanizm przenoszenia Dziedziczenie od kilku rodziców (wielodziedziczenie) Konstruktor klasy pochodnej przy wielodziedziczeniu Ryzyko wieloznacznoœci przy wielodziedziczeniu Czy bli sze pokrewieñstwo usuwa wieloznacznoœæ? Poszlaki Sposób na odziedziczenie konstruktorów Pojedynek: Dziedziczenie klasy, contra zawieranie obiektów sk³adowych Wspania³e konwersje standardowe przy dziedziczeniu Pan orama korzyœci Czego robiæ siê nie op³aca Tuzin samochodów nie jest rodzajem tuzina pojazdów Konwersje standardowe wskaÿnika do sk³adnika klasy Wirtualne klasy podstawowe Publiczne i prywatne dzie dzi cze nie tej samej klasy wirtualnej Uwagi o konstrukcji i inicjalizacji w przy pa d ku klas wirtualnych Dominacja klas wirtualnych Æwiczenia Wirtualne funkcje sk³adowe Wirtualny znaczy: (teoretycznie) mo liwy Polimorfizm Typy rezultatów ró nych realizacji funkcji wirtualnej Zamiast odpowiedni typ rezultatu kom pi la tor powie kowariant Dalsze cechy funkcji wirtualnej Wczesne i póÿne wi¹zanie Kiedy dla wywo³añ funkcji wirtualnych, mimo wszystko, zachodzi wczesne wi¹zanie? Kulisy bia³ej magii, czyli: Jak to jest zrobione?

13 32.8 Funkcja wirtualna, a mimo to inline Destruktor? to najlepiej wirtualny! Pojedynek funkcje prze³adowane, zas³aniaj¹ce siê contra wirtualne (zacieraj¹ce siê) Kontekstowe s³owa kluczowe override i final Przyk³ad u ycia s³ów kluczowych over ride, fi nal, a tak e wirtualnych destruktorów Klasy abstrakcyjne Wprawdzie konstruktor nie mo e byæ wirtualny, ale Rzutowanie dynamic_cast jest dla typów polimorficznych POD czyli Pospolite Stare Dane Wszystko co najwa niejsze Finis coronat opus Æwiczenia Operacje Wejœcia/Wyjœcia podstawy Biblioteka iostream Strumieñ Strumienie zdefiniowane standardowo Operatory >> i << Domniemania w pracy strumieni zdefiniowanych standardowo Uwaga na priorytet Operatory << oraz >> definiowane przez u ytkownika Operatorów wstawiania i wyjmowania ze strumienia siê nie dziedziczy Ope ra tory wstawiania i wyjmowania nie mog¹ byæ wirtualne. Niestety Sterowanie formatem Flagi stanu formatowania Znaczenie poszczególnych flag sterowania formatem Sposoby zmiany trybu (regu³) formatowania Manipulatory Ma nip u la tory bezargumentowe Ma nip u la tory maj¹ce argu men ty Ma nip u la tor setw(int) Ma nip u la tor setfill Ma nip u la tor setprecision(int ) Ma nip u la tor std::setbase(int) Manpipulatory setiosflags, resetiosflags Tabele z zestawieniem manipulatorów Definiowanie swoich manipulatorów Ma nip u la tor jako funkcja Definiowanie manipulatora z argu men tem Zmiana sposobu formatowania funkcjami setf, unsetf Dodatkowe funkcje do zmiany parametrów formatowania Funkcja width Funkcja sk³adowa fill Funkcja precision Funkcja copyfmt Nieformatowane operacje wejœcia/wyjœcia Omówienie funkcji wyjmuj¹cych ze strumienia Funkcje do pracy ze znakami i napisami Wczytywanie binarne funkcja read Funkcja ig nore Po yteczne funkcje pomocnicze Funkcje wstawiaj¹ce do strumienia Æwiczenia XV

14 XVI 34 Operacje We/Wyj na plikach Strumienie p³yn¹ce do lub od plików Otwieranie i zamykanie strumienia B³êdy w trakcie pracy strumienia Flagi stanu b³êdu strumienia Funkcje do pracy na flagach b³êdu Kilka udogodnieñ dla sprawdzania poprawnoœci Ustawianie i kasowanie flag b³êdu strumienia Trzy plagi czyli gotowiec, jak radziæ sobie z b³êdami Przyk³ad programu pracuj¹cego na plikach Przyk³ad programu zapisuj¹cego dane tekstowo i binarnie Zapis w trybie tekstowym Odczyt z pliku tekstowego Zapis danych w plikach binarnych Odczyt danych z pliku binarnego Strumienie, a technika rzucania wyj¹tków Wybór miejsca czytania lub pisania w pliku Funkcje sk³adowe informuj¹ce o pozycji wskaÿników Wybrane funkcje sk³adowe do pozycjonowania wskaÿników Pozycjonowanie w przyk³adzie wiêkszego programu Tie harmonijna praca dwóch strumieni Æwiczenia Operacje We/Wy na stringach Strumieñ zapisuj¹cy do obiektu klasy string Przyk³ady ilustruj¹ce u ycie klasy ostringstream Strumieñ czytaj¹cy z obiektu klasy string Prosty przyk³ad u ycia strumienia istringstream Strumieñ istringstream, a wczytywanie parametrów-danych Wczytywanie argumentów wywo³ywania programu O enek: strumieñ stringstream czytaj¹cy i zapisuj¹cy do stringu Przyk³adowy pro gram pos³uguj¹cy siê klas¹ stringstream Æwiczenia Projektowanie programów orientowanych obiektowo Przegl¹d kilku technik programowania Programowanie liniowe (linearne) Programowanie proceduralne (czyli orientowane funkcyjnie ) Programowanie z ukrywaniem (zgrupowaniem) danych Programowanie obiektowe programowanie bazuj¹ce na obiektach Programowanie Obiektowo Orientowane (OO) O wy szoœci programowania obiektowo orientowanego nad Œwiêtami Wielkiej Nocy Obiektowo Orientowane: Projektowanie Praktyczne wskazówki dotycz¹ce projektowania programu technik¹ OO Rekonesans czyli rozpoznanie zagadnienia Faza projektowania Etap 1: Identyfikacja zachowañ systemu Etap 2: Identyfikacja obiektów (klas obiektów) Etap 3: Usystematyzowanie klas obiektów Etap 4: Okreœlenie wzajemnych zale noœci klas Etap 5: Sk³adanie modelu. Sekwencje dzia³añ obiektów i cykle yciowe Faza implementacji Przyk³ad projektowania Faza: Rozpoznanie naszego zagadnienia

15 XVII 36.8 Faza: Projektowanie Etap 1 Identyfikacja zachowañ naszego systemu Etap 2 Identyfikacja klas obiektów, z którymi mamy do czynienia Etap 3 Usystematyzowanie klas obiektów z wystêpuj¹cych w naszym systemie Etap 4 Okreœlamy wzajemne zale noœci klas Etap 5 Sk³adamy model naszego systemu Implementacja modelu naszego systemu Sza b lony Programowanie uogólnione Definiowanie szablonu klas Prosty program z szablonem klas Ostro nie z re fe ren cj¹ jako parametrem aktualnym Szablon do produkcji funkcji Cudów nie ma. Sorry Jak rozmieszczaæ w plikach szablony klas? Tylko dla or³ów Szablony klas, drugie starcie Co mo e byæ parametrem szablonu zwiastun Rozbudowany przyk³ad z szablonem klas Definiowanie funkcji sk³adowych szablonu klas Sk³adniki statyczne w sza b lonie klasy Obie k t klasy sza b lo no wej tworzony ope ra torem new Dyrektywa us ing sk³adnikiem szablonu klas Prze³adowany ope ra to r<< w sza b lonie klas Jawne wywo³anie destruktora klasy sza b lo no wej Regu³a SFINAE Kiedy kompilator siêga po nasz szablon klas? Co mo e byæ parametrem szablonu? szczegó³y Parametry domniemane Sza b lo n klas z domniemanymi parametrami Domniemane parametry w sza b lonie funkcji Zagnie d enie, a szablony Sza b lo n funkcji sk³adowych zagnie d ony w sza b lonie klasy Sza b lo n klasy zagnie d ony w zwyk³ej klasie Szablon klasy z zagnie d on¹ definicj¹ klasy Poradnik: Jak pisaæ deklaracje przyjaÿni w œwiecie szablonów Sza b lo n obdarza przyjaÿni¹ swój parametr U ytkownik sam mo e specjalizowaæ szablon klas Kompletna (zupe³na) specjalizacja szablonu klasy Czêœciowa specjalizacja szablonu klasy Czêœciowa specjalizacja szablonu pozwala wybraæ parametry bêd¹ce wskaÿnikami Specjalizacja funkcji sk³adowej szablonu klas Specjalizacja u ytkownika szablonu funkcji Æwiczenia Pos³owie Per C++ ad astra A Dodatek: Systemy liczenia A.1 Dlaczego komputer nie liczy tak jak my? A.2 System szesnastkowy (heksadecymalny) A.3 Æwiczenia

Spis treœci. 0 Proszê nie czytaæ tego!...1 1 Startujemy!...7 1.1 Pierwszy program...7 1.2 Drugi program...13 1.3 Æwiczenia...19

Spis treœci. 0 Proszê nie czytaæ tego!...1 1 Startujemy!...7 1.1 Pierwszy program...7 1.2 Drugi program...13 1.3 Æwiczenia...19 III 0 Proszê nie czytaæ tego!...1 1 Startujemy!...7 1.1 Pierwszy program...7 1.2 Drugi program...13 1.3 Æwiczenia...19 2 Instrukcje steruj¹ce...22 2.1 Prawda Fa³sz, czyli o warunkach...22 2.1.1 Wyra enie

Bardziej szczegółowo

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 1 / Jerzy Grębosz. Wyd. 3 C - popr. Kraków, 2015.

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 1 / Jerzy Grębosz. Wyd. 3 C - popr. Kraków, 2015. Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 1 / Jerzy Grębosz. Wyd. 3 C - popr. Kraków, 2015 Spis treści 0 Proszę nie czytać tego! 19 1 Startujemy! 24 1.1 Pierwszy program

Bardziej szczegółowo

Opus Magnum C++11 : programowanie w języku C++. Tom 1 / Jerzy Grębosz. Gliwice, cop Spis treści

Opus Magnum C++11 : programowanie w języku C++. Tom 1 / Jerzy Grębosz. Gliwice, cop Spis treści Opus Magnum C++11 : programowanie w języku C++. Tom 1 / Jerzy Grębosz. Gliwice, cop. 2018 Spis treści 0 Proszę tego nie czytać! 1 0.1 Zaprzyjaźnijmy się! 1 1 Startujemy! 8 1.1 Pierwszy program 8 1.2 Drugi

Bardziej szczegółowo

Opus Magnum C++11 : programowanie w języku C++. T. 2 / Jerzy Grębosz. Gliwice, cop Spis treści

Opus Magnum C++11 : programowanie w języku C++. T. 2 / Jerzy Grębosz. Gliwice, cop Spis treści Opus Magnum C++11 : programowanie w języku C++. T. 2 / Jerzy Grębosz. Gliwice, cop. 2018 Spis treści 17 Biblioteczna klasa std::string 609 17.1 Rozwiązanie przechowywania tekstów musiało się znaleźć 609

Bardziej szczegółowo

Opus Magnum C++11 : programowanie w języku C++. T. 3 / Jerzy Grębosz. Gliwice, cop Spis treści

Opus Magnum C++11 : programowanie w języku C++. T. 3 / Jerzy Grębosz. Gliwice, cop Spis treści Opus Magnum C++11 : programowanie w języku C++. T. 3 / Jerzy Grębosz. Gliwice, cop. 2018 Spis treści 28 Przeładowanie operatorów new i delete na użytek klasy 1061 28.1 Po co przeładowujemy operatory new

Bardziej szczegółowo

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 2 / Jerzy Grębosz. Wyd. 3 C popr. Kraków, 2015.

Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 2 / Jerzy Grębosz. Wyd. 3 C popr. Kraków, 2015. Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo. T. 2 / Jerzy Grębosz. Wyd. 3 C popr. Kraków, 2015 Spis treści 20 Struktury, Unie, Pola bitowe 613 20.1 Struktura 613 20.2 Unia

Bardziej szczegółowo

0 Proszę nie czytać tego! 1 Startujemy! 2 Instrukcje sterujące. 3 Typy. 1.1 Pierwszy program 1.2 Drugi program 1.3 Ćwiczenia

0 Proszę nie czytać tego! 1 Startujemy! 2 Instrukcje sterujące. 3 Typy. 1.1 Pierwszy program 1.2 Drugi program 1.3 Ćwiczenia 0 Proszę nie czytać tego! 1 Startujemy! 1.1 Pierwszy program 1.2 Drugi program 1.3 Ćwiczenia 2 Instrukcje sterujące 2.1 Prawda. Fałsz, czyli o warunkach 2.1.1 Wyrażenie logiczne 2.1.2 Zmienne logiczne

Bardziej szczegółowo

Jedno C i same plusy!

Jedno C i same plusy! "Opus magnum C++11. Programowanie w języku C++" - zestaw obejmuje 3 podręczniki. Jedno C i same plusy! Dawno, dawno temu, w głębokich latach osiemdziesiątych ubiegłego wieku pewien duński informatyk zainspirowany

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować

Bardziej szczegółowo

Cena szkolenia. Opis kursu

Cena szkolenia. Opis kursu Kurs C++ Cena szkolenia Cena szkolenia wynosi 90 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu i ilości czasu, w którym realizuje zadania i projekty zlecone w ramach

Bardziej szczegółowo

Część I Programowanie niskiego poziomu w języku C 19

Część I Programowanie niskiego poziomu w języku C 19 Spis treści Przedmowa 13 Wstęp 15 Część I Programowanie niskiego poziomu w języku C 19 Wprowadzenie 21 1 Typy 23 1.1 Fundamentalne typy danych...................... 23 1.2 Typy pochodne.............................

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego

Bardziej szczegółowo

C++. Æwiczenia zaawansowane

C++. Æwiczenia zaawansowane IDZ DO PRZYK ADOWY ROZDZIA SPIS TRECI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG C++. Æwiczenia zaawansowane Autor: Andrzej Stasiewicz ISBN: 83-7361-766-3 Format: B5, stron: 120 TWÓJ KOSZYK

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009.

ER RATA do ksi¹ ki Symfonia C++ Stan dard. wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. Strona wiersz G - od góry D - od do³u Jest Powinno byæ 1 6 D nadzieje

Bardziej szczegółowo

ROZDZIAŁ 2. Operatory

ROZDZIAŁ 2. Operatory Bibliografia [1] Jerzy Grębosz, Symfonia C++, Oficyna Kallimach, Kraków, 1999, [2] Jerzy Grębosz, Pasja C++, Oficyna Kallimach, Kraków, 1999, [3] Bjarne Stroustrup, Język C++, WNT, Warszawa, 1997, [4]

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Spis treści. Wprowadzenie 15

Spis treści. Wprowadzenie 15 Spis treści Wprowadzenie 15 1. Mechanizmy języka C++ 19 1.1. Struktura programu jednostki translacji.................. 21 1.1.1. Składnia tekstu źródłowego...................... 22 1.1.2. Preprocesor...

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2016 2 Spis treści 1. Zadanie 3 5 1.1. Wprowadzenie.................................. 5 1.2. Obiekty funkcyjne................................

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Język C++ wykład VIII

Język C++ wykład VIII Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

Paradygmaty programowania. Paradygmaty programowania

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej z przedmiotu Obiektowe programowanie aplikacji Kod przedmiotu: TS1C410201

Bardziej szczegółowo

O autorze... 9 Wprowadzenie... 11

O autorze... 9 Wprowadzenie... 11 Spis tre ci O autorze... 9 Wprowadzenie... 11 Rozdzia 1. Sterownik przemys owy... 15 Sterownik S7-1200... 15 Budowa zewn trzna... 16 Budowa wewn trzna... 19 Cykl programu oraz tryby pracy... 21 Zestaw

Bardziej szczegółowo

Wykład 2. Budowa komputera. W teorii i w praktyce

Wykład 2. Budowa komputera. W teorii i w praktyce Wykład 2 Budowa komputera W teorii i w praktyce Generacje komputerów 0 oparte o przekaźniki i elementy mechaniczne (np. Z3), 1 budowane na lampach elektronowych (np. XYZ), 2 budowane na tranzystorach (np.

Bardziej szczegółowo

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

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

Bardziej szczegółowo

1. Podstawy budowania wyra e regularnych (Regex)

1. Podstawy budowania wyra e regularnych (Regex) Dla wi kszo ci prostych gramatyk mo na w atwy sposób napisa wyra enie regularne które b dzie s u y o do sprawdzania poprawno ci zda z t gramatyk. Celem niniejszego laboratorium b dzie zapoznanie si z wyra

Bardziej szczegółowo

Operatory na rzecz typu TString

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

STL: Lekcja 1&2. Filozofia STL

STL: Lekcja 1&2. Filozofia STL STL: Lekcja 1&2 Tematy: Filozofia STL Po co nam STL? Podstawowa zawartość STL Co warto znać zanim zaczniemy pracę z STL?: wskaźniki Praca na tekstach: klasa String Vector: nowy wymiar standardowych tablic.

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 14 1 / 9 Plan wykładu 1 Sesja egzaminacyjna

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Kontenery - - wektor vector - - lista list - - kolejka queue - - stos stack Kontener asocjacyjny map 2016-01-08 Bazy danych-1 W5 1 Kontenery W programowaniu

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Programowanie (C++) NI 5

Programowanie (C++) NI 5 Forma kształcenia i sposób weryfikacji efektów kształcenia Efekty kształcenia WYDZIAŁ FIZYKI UwB kierunek studiów: FIZYKA specjalność: FIZYKA KOD USOS: 0900 FS1 2 PRO Karta przedmiotu Przedmiot moduł ECTS

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski Instrukcja obsługi Norton Commander (NC) wersja 4.0 Autor: mgr inż. Tomasz Staniszewski ITM Zakład Technologii Maszyn, 15.10.2001 2 1.Uruchomienie programu Aby uruchomić program Norton Commander standardowo

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

Bardziej szczegółowo

Język C++ Programowanie obiektowe

Język C++ Programowanie obiektowe Język C++ Programowanie obiektowe Cechy programowania obiektowego abstrakcyjne typy danych hermetyczność obiektów (kapsułkowanie) dziedziczenie polimorfizm Programowanie proceduralne vs. programowanie

Bardziej szczegółowo

Informatyka, I stopień. Programowanie (PRO300.1)

Informatyka, I stopień. Programowanie (PRO300.1) Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Informatyka, I stopień Sylabus modułu: Programowanie (PRO0.1) Nazwa wariantu modułu (opcjonalnie): 1. Informacje ogólne koordynator modułu

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

Bardziej szczegółowo

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Szablony klas, zastosowanie szablonów w programach

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

Bardziej szczegółowo

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu obowiązuje w roku akademickim 01/013 Kierunek studiów: Informatyka Forma studiów: Stacjonarne Profil:

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

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

Bardziej szczegółowo

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013 Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu obowiązuje studentów rozpoczynających studia w roku akademickim 01/013 Wydział Fizyki, Matematyki i Informatyki Kierunek studiów: Informatyka

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin 2013. Mojej Żonie Kasi

MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin 2013. Mojej Żonie Kasi WYDAWNICTWO ATNEL MIKROKONTROLERY AVR JĘZYK C PODSTAWY PROGRAMOWANIA Miros aw Kardaś Szczecin 2013 Mojej Żonie Kasi Książka przeznaczona jest dla elektroników i hobbystów, którzy chcą szybko, opierając

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

Słowa kluczowe i nazwy

Słowa kluczowe i nazwy Materiał uzyskany ze strony: http://edu.pjwstk.edu.pl/wyklady/pro/scb/prg2cpp_files/node1.html Słowa kluczowe i nazwy Nazwy (identyfikatory) są wprowadzane do jednostki kompilacji (pliku wraz z innymi

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Najlepsze źródło informacji o C++! Kompletny podręcznik do nauki C++!

Najlepsze źródło informacji o C++! Kompletny podręcznik do nauki C++! Najlepsze źródło informacji o C++! Język C++, to starannie sprawdzony, sumiennie przygotowany i kompletny przewodnik po programowaniu w C++, przeznaczony dla programistów. Ten klasyczny już materiał pomocniczy

Bardziej szczegółowo

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Automatyka. Etymologicznie automatyka pochodzi od grec.

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ń

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Standardowa biblioteka szablonów (Standard Template

Bardziej szczegółowo

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej 3.1 Informacje ogólne Program WAAK 1.0 służy do wizualizacji algorytmów arytmetyki komputerowej. Oczywiście istnieje wiele narzędzi

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Programowanie w C++ Wykład 6 Katarzyna Grzelak 1 kwietnia 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

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

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

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

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

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przestrzenie nazw Standardowa biblioteka szablonów

Bardziej szczegółowo

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu. Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu. Uk ad graficzny CKE 2010 KOD WPISUJE ZDAJ CY PESEL Miejsce na naklejk z kodem EGZAMIN MATURALNY

Bardziej szczegółowo

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L

Bardziej szczegółowo

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje Zbudujemy klasę Definicję klasy zapiszmy w pliku tstring.h #ifndef TSTRING_H #define TSTRING_H #include // w pliku nagłówkowym NIE // otwieramy przestrzeni std // interfejs private: // implementacja

Bardziej szczegółowo

Dziedziczenie jednobazowe, poliformizm

Dziedziczenie jednobazowe, poliformizm Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Podstawy programowania

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

Bardziej szczegółowo

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

Język ludzki kod maszynowy

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

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Pracownia nr 9 (20.01.2012) dr inż. Jarosław Forenc Rok

Bardziej szczegółowo

API transakcyjne BitMarket.pl

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

Bardziej szczegółowo

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

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

Bardziej szczegółowo

Systemy mikroprocesorowe - projekt

Systemy mikroprocesorowe - projekt Politechnika Wrocławska Systemy mikroprocesorowe - projekt Modbus master (Linux, Qt) Prowadzący: dr inż. Marek Wnuk Opracował: Artur Papuda Elektronika, ARR IV rok 1. Wstępne założenia projektu Moje zadanie

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykład 12

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

Bardziej szczegółowo

III. INTERPOLACJA Ogólne zadanie interpolacji. Niech oznacza funkcjê zmiennej x zale n¹ od n + 1 parametrów tj.

III. INTERPOLACJA Ogólne zadanie interpolacji. Niech oznacza funkcjê zmiennej x zale n¹ od n + 1 parametrów tj. III. INTERPOLACJA 3.1. Ogólne zadanie interpolacji Niech oznacza funkcjê zmiennej x zale n¹ od n + 1 parametrów tj. Definicja 3.1. Zadanie interpolacji polega na okreœleniu parametrów tak, eby dla n +

Bardziej szczegółowo

Elementy cyfrowe i układy logiczne

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

Bardziej szczegółowo

Wstęp do programowania obiektowego, wykład 7

Wstęp do programowania obiektowego, wykład 7 Wstęp do programowania obiektowego, wykład 7 Klasy i funkcje abstrakcyjne Przeciążanie funkcji Definiowanie i interpretacja złożonych typów danych w C++ Wskaźniki do funkcji 1 KLASA ABSTRAKCYJNA 2 Klasa

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

Bardziej szczegółowo