Categories
Ebooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Computer in the office
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Multimedia trainings
- Real estate
- Persuasion and NLP
- Taxes
- Social policy
- Guides
- Presentations
- Leadership
- Public Relation
- Reports, analyses
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
E-press
- Architektura i wnętrza
- Biznes i Ekonomia
- Home and garden
- E-business
- Finances
- Personal finance
- Business
- Photography
- Computer science
- HR & Payroll
- Computers, Excel
- Accounts
- Culture and literature
- Scientific and academic
- Environmental protection
- Opinion-forming
- Education
- Taxes
- Travelling
- Psychology
- Religion
- Agriculture
- Book and press market
- Transport and Spedition
- Healthand beauty
-
History
-
Computer science
- Office applications
- Data bases
- Bioinformatics
- IT business
- CAD/CAM
- Digital Lifestyle
- DTP
- Electronics
- Digital photography
- Computer graphics
- Games
- Hacking
- Hardware
- IT w ekonomii
- Scientific software package
- School textbooks
- Computer basics
- Programming
- Mobile programming
- Internet servers
- Computer networks
- Start-up
- Operational systems
- Artificial intelligence
- Technology for children
- Webmastering
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Narrative poetry
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
School textbooks
-
Popular science and academic
- Archeology
- Bibliotekoznawstwo
- Cinema studies
- Philology
- Polish philology
- Philosophy
- Finanse i bankowość
- Geography
- Economy
- Trade. World economy
- History and archeology
- History of art and architecture
- Cultural studies
- Linguistics
- Literary studies
- Logistics
- Maths
- Medicine
- Humanities
- Pedagogy
- Educational aids
- Popular science
- Other
- Psychology
- Sociology
- Theatre studies
- Theology
- Economic theories and teachings
- Transport i spedycja
- Physical education
- Zarządzanie i marketing
-
Guides
-
Game guides
-
Professional and specialist guides
-
Law
- Health and Safety
- History
- Road Code. Driving license
- Law studies
- Healthcare
- General. Compendium of knowledge
- Academic textbooks
- Other
- Construction and local law
- Civil law
- Financial law
- Economic law
- Economic and trade law
- Criminal law
- Criminal law. Criminal offenses. Criminology
- International law
- International law
- Health care law
- Educational law
- Tax law
- Labor and social security law
- Public, constitutional and administrative law
- Family and Guardianship Code
- agricultural law
- Social law, labour law
- European Union law
- Industry
- Agricultural and environmental
- Dictionaries and encyclopedia
- Public procurement
- Management
-
Tourist guides and travel
- Africa
- Albums
- Southern America
- North and Central America
- Australia, New Zealand, Oceania
- Austria
- Asia
- Balkans
- Middle East
- Bulgary
- China
- Croatia
- The Czech Republic
- Denmark
- Egipt
- Estonia
- Europe
- France
- Mountains
- Greece
- Spain
- Holand
- Iceland
- Lithuania
- Latvia
- Mapy, Plany miast, Atlasy
- Mini travel guides
- Germany
- Norway
- Active travelling
- Poland
- Portugal
- Other
- Russia
- Romania
- Slovakia
- Slovenia
- Switzerland
- Sweden
- World
- Turkey
- Ukraine
- Hungary
- Great Britain
- Italy
-
Psychology
- Philosophy of life
- Kompetencje psychospołeczne
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Audiobooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Real estate
- Persuasion and NLP
- Taxes
- Guides
- Presentations
- Leadership
- Public Relation
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
History
-
Computer science
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
Popular science and academic
-
Guides
-
Professional and specialist guides
-
Law
-
Tourist guides and travel
-
Psychology
- Philosophy of life
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Videocourses
-
Data bases
-
Big Data
-
Biznes, ekonomia i marketing
-
Cybersecurity
-
Data Science
-
DevOps
-
For children
-
Electronics
-
Graphics/Video/CAX
-
Games
-
Microsoft Office
-
Development tools
-
Programming
-
Personal growth
-
Computer networks
-
Operational systems
-
Software testing
-
Mobile devices
-
UX/UI
-
Web development
-
Management
Podcasts
- Ebooks
- Programming
- C++
- Wprowadzenie do C++. Efektywne nauczanie. Wydanie III
E-book details
C++ wyjątkowo dobrze nadaje się do nauki jako "pierwszy poważny język programowania", a równocześnie jest znakomitym, wszechstronnym narzędziem do tworzenia nowoczesnych aplikacji. Programowanie w nim wymaga nieco wysiłku, ale pozwala zarówno szybko przyswoić najważniejsze paradygmaty informatyki, jak i wdrożyć się w pisanie kodu zgodne z dobrymi praktykami. Przy tym C++ ma cechy nowoczesnego języka programowania, a jego możliwości są poszerzane dzięki bibliotekom. Aby adept sztuki programowania mógł skorzystać z tych wszystkich zalet, potrzebuje pomocy dobrego nauczyciela lub dobrego podręcznika. Tylko w ten sposób uniknie typowych błędów popełnianych na skutek niewystarczającego zrozumienia podstaw programowania i najważniejszych koncepcji programistycznych.
Oto polska edycja popularnego podręcznika opartego na naukowych podstawach skutecznego uczenia. To znakomite wprowadzenie do podstawowych technik programowania i umiejętności projektowania pozwala łatwo, a przy tym dogłębnie opanować elementarne pojęcia. W przystępny sposób omawia najistotniejsze kwestie działania algorytmów i rodzaje struktur danych. Krok po kroku przeprowadza czytelnika od podstaw do bardziej zaawansowanych tematów związanych ze współczesnymi aplikacjami, takich jak GUI i programowanie XML. Poszczególne koncepcje zostały tu wyjaśnione z wykorzystaniem trafnie dobranych schematów i grafik. Nie zabrakło też wskazówek, przykładów i obszernych fragmentów świetnie napisanego kodu, które ułatwiają naukę, podobnie jak liczne ćwiczenia i studia przypadków.
W tej książce między innymi:
- podstawowe koncepcje programowania: struktury sterujące, tablice, wskaźniki
- programowanie obiektowe, dziedziczenie, polimorfizm
- struktury danych: liniowe i oparte na drzewach
- wprowadzenie do algorytmów
- szablony i zarządzanie pamięcią
Bądź profesjonalistą od pierwszej linii kodu!
ELEMENTY KSIĄŻKI (16)
PRZEDMOWA (23)
1. WPROWADZENIE (35)
- 1.1. Czym jest programowanie? (35)
- 1.2. Anatomia komputera (36)
- IAS: Komputery są wszędzie (38)
- 1.3. Kod maszynowy i języki programowania (39)
- IAS: Organizacje normalizacyjne (40)
- 1.4. Zapoznanie się ze środowiskiem programowania (41)
- WDP: Kopie zapasowe (44)
- 1.5. Analiza pierwszego programu (45)
- CPB: Pomijanie średników (47)
- TS: Sekwencje ucieczki (48)
- 1.6. Błędy (49)
- CPB: Błędna pisownia wyrazów (50)
- 1.7. Rozwiązywanie problemów: projektowanie algorytmów (50)
- 1.7.1. Koncepcja algorytmu (51)
- 1.7.2. Algorytm rozwiązywania problemu stopy zwrotu (51)
- 1.7.3. Pseudokod (52)
- 1.7.4. Od algorytmów do programów (53)
- JTZ: Opisywanie algorytmu za pomocą pseudokodu (54)
- P: Napisanie algorytmu układania płytek podłogowych (55)
- Podsumowanie rozdziału (57)
2. PODSTAWOWE TYPY DANYCH (59)
- 2.1. Zmienne (59)
- 2.1.1. Definicje zmiennych (60)
- 2.1.2. Typy liczbowe (61)
- 2.1.3. Nazwy zmiennych (62)
- 2.1.4. Instrukcja przypisania (63)
- 2.1.5. Stałe (65)
- 2.1.6. Komentarze (65)
- CPB: Używanie niezdefiniowanych zmiennych (66)
- CPB: Używanie niezainicjowanych zmiennych (66)
- WDP: Wybieraj opisowe nazwy zmiennych (67)
- WDP: Nie używaj sekretnych numerów (67)
- TS: Typy liczbowe w C++ (68)
- TS: Zakresy i precyzja liczb (69)
- TS: Definiowanie zmiennych ze słowem auto (69)
- 2.2. Arytmetyka (69)
- 2.2.1. Operatory arytmetyczne (69)
- 2.2.2. Inkrementacja i dekrementacja (70)
- 2.2.3. Dzielenie całkowite i reszta z dzielenia (70)
- 2.2.4. Konwertowanie liczb zmiennoprzecinkowych na całkowite (71)
- 2.2.5. Potęgi i pierwiastki (72)
- CPB: Niezamierzone dzielenie całkowite (74)
- CPB: Niezamknięte nawiasy (74)
- CPB: Zapominanie o plikach nagłówkowych (75)
- CPB: Błędy zaokrąglenia (76)
- WDP: Spacje w wyrażeniach (76)
- TS: Rzutowania (77)
- TS: Połączenie przypisania i działań arytmetycznych (77)
- IAS: Błąd jednostki zmiennoprzecinkowej procesora Pentium (77)
- 2.3. Wejście i wyjście (79)
- 2.3.1. Wejście (79)
- 2.3.2. Formatowanie wyjścia (80)
- 2.4. Rozwiązywanie problemów: najpierw zrób to ręcznie (82)
- P: Obliczanie czasu podróży (83)
- JTZ: Przeprowadzanie obliczeń (83)
- P: Obliczenie kosztu znaczków pocztowych (86)
- 2.5. Ciągi (86)
- 2.5.1. Typ string (86)
- 2.5.2. Łączenie ciągów (87)
- 2.5.3. Wprowadzanie ciągów (87)
- 2.5.4. Funkcje ciągów (88)
- IAS: Alfabety międzynarodowe i zestaw Unicode (91)
- Podsumowanie rozdziału (92)
3. DECYZJE (93)
- 3.1. Instrukcja if (93)
- CPB: Średnik po warunku if (96)
- WDP: Układ nawiasów klamrowych (96)
- WDP: Zawsze używaj nawiasów klamrowych (97)
- WDP: Wcięcia (97)
- WDP: Unikaj duplikowania kodu w gałęziach (98)
- TS: Operator warunkowy (99)
- 3.2. Porównywanie liczb oraz znaków (99)
- CPB: Mylenie operatora = z == (101)
- CPB: Dokładne porównywanie liczb zmiennoprzecinkowych (102)
- WDP: Doprowadź do kompilacji z brakiem ostrzeżeń (103)
- TS: Alfabetyczna kolejność ciągów (103)
- JTZ: Implementacja instrukcji if (104)
- P: Wyodrębnianie ze środka (106)
- IAS: Dysfunkcjonalne systemy komputerowe (106)
- 3.3. Wiele wariantów (107)
- TS: Instrukcja switch (110)
- 3.4. Zagnieżdżone gałęzie (111)
- CPB: Problem z zawieszonym słowem else (113)
- WDP: Ręczne śledzenie kodu (114)
- 3.5. Rozwiązywanie problemów: schematy blokowe (116)
- 3.6. Rozwiązywanie problemów: przypadki testowe (119)
- WDP: Opracuj harmonogram i zarezerwuj czas na nieoczekiwane problemy (120)
- 3.7. Zmienne i operatory logiczne (121)
- CPB: Łączenie wielu operatorów relacyjnych (124)
- CPB: Mylenie warunków && i || (125)
- TS: Skrócone obliczanie wartości operatorów logicznych (126)
- TS: Prawa de Morgana (126)
- 3.8. Zastosowanie: weryfikacja danych wejściowych (127)
- IAS: Sztuczna inteligencja (129)
- Podsumowanie rozdziału (131)
4. PĘTLE (133)
- 4.1. Pętla while (133)
- CPB: Nieskończone pętle (138)
- CPB: Nie myśl w kategoriach "Czy doszliśmy już do celu?" (138)
- CPB: Pomyłki o jeden (139)
- IAS: Pierwszy "bug" (140)
- 4.2. Rozwiązywanie problemów: ręczne śledzenie kodu (140)
- 4.3. Pętla for (143)
- WDP: Używaj pętli tylko do tego, do czego została przeznaczona (147)
- WDP: Wybierz zakres pętli odpowiedni do zadania (147)
- WDP: Licz iteracje (148)
- 4.4. Pętla do (148)
- WDP: Schematy blokowe pętli (149)
- 4.5. Przetwarzanie danych wejściowych (150)
- 4.5.1. Wartości wartownika (150)
- 4.5.2. Odczytywanie danych wejściowych do chwili niepowodzenia (151)
- TS: Czyszczenie stanu błędu (153)
- TS: "Pętla i pół" oraz instrukcja break (154)
- TS: Przekierowywanie wejścia i wyjścia (154)
- 4.6. Rozwiązywanie problemów: scenopis (155)
- 4.7. Typowe algorytmy pętli (158)
- 4.7.1. Suma i średnia (158)
- 4.7.2. Zliczanie pasujących elementów (158)
- 4.7.3. Znajdowanie pierwszego pasującego elementu (159)
- 4.7.4. Monitowanie aż do skutku (159)
- 4.7.5. Maksimum i minimum (160)
- 4.7.6. Porównywanie sąsiednich wartości (160)
- JTZ: Tworzenie pętli (161)
- P: Przetwarzanie numerów kart kredytowych (165)
- 4.8. Zagnieżdżone pętle (165)
- P: Manipulowanie pikselami obrazu (168)
- 4.9. Rozwiązywanie problemów: najpierw rozwiąż prostszy problem (169)
- 4.10. Liczby losowe i symulacje (173)
- 4.10.1. Generowanie liczb losowych (174)
- 4.10.2. Symulowanie rzutów kostką (175)
- 4.10.3. Metoda Monte Carlo (176)
- IAS: Piractwo cyfrowe (177)
- Podsumowanie rozdziału (178)
5. FUNKCJE (181)
- 5.1. Funkcje jako czarne skrzynki (181)
- 5.2. Implementowanie funkcji (183)
- WDP: Komentarze funkcji (185)
- 5.3. Przekazywanie parametrów (185)
- WDP: Nie modyfikuj zmiennych parametrycznych (187)
- 5.4. Wartości zwracane (187)
- CPB: Brak wartości zwracanej (188)
- TS: Deklaracje funkcji (189)
- JTZ: Implementowanie funkcji (190)
- P: Generowanie losowych haseł (191)
- P: Używanie debugera (191)
- 5.5. Funkcje bez wartości zwracanych (192)
- 5.6. Rozwiązywanie problemów: funkcje do ponownego wykorzystania (193)
- 5.7. Rozwiązywanie problemów: uściślanie stopniowe (195)
- WDP: Pilnuj, by funkcje były krótkie (200)
- WDP: Śledzenie funkcji (200)
- WDP: Atrapy (202)
- P: Obliczanie oceny z przedmiotu (202)
- 5.8. Zakres zmiennej i zmienne globalne (202)
- WDP: Unikaj zmiennych globalnych (204)
- 5.9. Parametry referencyjne (204)
- WDP: Preferuj wartości zwracane zamiast parametrów referencyjnych (208)
- TS: Stałe referencje (209)
- 5.10. Funkcje rekurencyjne (opcjonalnie) (209)
- JTZ: Wnioskowanie rekurencyjne (212)
- IAS: Nagłe rozpowszechnienie się komputerów osobistych (214)
- Podsumowanie rozdziału (215)
6. TABLICE I WEKTORY (217)
- 6.1. Tablice (217)
- 6.1.1. Definiowanie tablic (217)
- 6.1.2. Dostęp do elementów tablicy (219)
- 6.1.3. Częściowo wypełnione tablice (221)
- CPB: Przekroczenie zakresu (222)
- WDP: Używaj tablic do przechowywania serii związanych ze sobą wartości (222)
- IAS: Wirusy komputerowe (222)
- 6.2. Typowe algorytmy tablicowe (224)
- 6.2.1. Wypełnianie wartościami (224)
- 6.2.2. Kopiowanie (224)
- 6.2.3. Suma i średnia (225)
- 6.2.4. Maksimum i minimum (225)
- 6.2.5. Separatory elementów (225)
- 6.2.6. Zliczanie pasujących elementów (226)
- 6.2.7. Wyszukiwanie liniowe (226)
- 6.2.8. Usuwanie elementu (227)
- 6.2.9. Wstawianie elementu (227)
- 6.2.10. Przestawianie elementów (229)
- 6.2.11. Odczyt danych wejściowych (230)
- TS: Sortowanie za pomocą biblioteki C++ (231)
- TS: Algorytm sortowania (231)
- TS: Wyszukiwanie binarne (233)
- 6.3. Tablice a funkcje (234)
- TS: Stałe parametry tablicowe (237)
- 6.4. Rozwiązywanie problemów: dostosowywanie algorytmów (238)
- JTZ: Praca z tablicami (240)
- P: Rzut kostką (243)
- 6.5. Rozwiązywanie problemów: odkrywanie algorytmów przez manipulację obiektami fizycznymi (244)
- 6.6. Tablice dwuwymiarowe (246)
- 6.6.1. Definiowanie tablic dwuwymiarowych (247)
- 6.6.2. Dostęp do elementów (248)
- 6.6.3. Lokalizowanie sąsiadujących elementów (248)
- 6.6.4. Obliczanie sum wierszy i kolumn (249)
- 6.6.5. Dwuwymiarowe parametry tablicowe (250)
- CPB: Pomijanie rozmiaru kolumny w dwuwymiarowym parametrze tablicowym (253)
- P: Tabela danych o ludności świata (253)
- 6.7. Wektory (253)
- 6.7.1. Definiowanie wektorów (254)
- 6.7.2. Powiększanie i zmniejszanie wektorów (255)
- 6.7.3. Wektory a funkcje (256)
- 6.7.4. Algorytmy związane z wektorami (257)
- 6.7.5. Wektory dwuwymiarowe (259)
- WDP: Stosuj wektory zamiast tablic (260)
- TS: Pętla for oparta na zakresie (260)
- Podsumowanie rozdziału (261)
7. WSKAŹNIKI I STRUKTURY (263)
- 7.1. Definiowanie i używanie wskaźników (264)
- 7.1.1. Definiowanie wskaźników (264)
- 7.1.2. Dostęp do zmiennych poprzez wskaźniki (265)
- 7.1.3. Inicjowanie wskaźników (266)
- CPB: Mylenie wskaźników z danymi, na które wskazują (268)
- WDP: Używaj oddzielnej definicji dla każdej zmiennej wskaźnikowej (269)
- TS: Wskaźniki i referencje (269)
- 7.2. Tablice i wskaźniki (270)
- 7.2.1. Tablice jako wskaźniki (270)
- 7.2.2. Arytmetyka wskaźnikowa (271)
- 7.2.3. Tablicowe zmienne parametryczne są wskaźnikami (272)
- TS: Przechodzenie po tablicy przy użyciu wskaźnika (273)
- CPB: Zwracanie wskaźnika wskazującego na zmienną lokalną (274)
- WDP: Programuj przejrzyście, a nie sprytnie (275)
- TS: Stałe wskaźniki (275)
- 7.3. Ciągi w językach C i C++ (276)
- 7.3.1. Typ char (276)
- 7.3.2. Ciągi w stylu C (276)
- 7.3.3. Tablice znaków (277)
- 7.3.4. Konwertowanie pomiędzy ciągami w stylu C i C++ (278)
- 7.3.5. Ciągi w stylu C++ i operator [] (278)
- TS: Praca z ciągami w stylu C (279)
- 7.4. Dynamiczna alokacja pamięci (281)
- CPB: Wiszące wskaźniki (283)
- CPB: Wycieki pamięci (284)
- 7.5. Tablice i wektory wskaźników (285)
- 7.6. Rozwiązywanie problemów: rysowanie schematu (288)
- JTZ: Praca ze wskaźnikami (289)
- P: Tworzenie korespondencji masowej (291)
- IAS: Systemy wbudowane (291)
- 7.7. Struktury (292)
- 7.7.1. Typy strukturalne (292)
- 7.7.2. Przypisania struktur i ich porównywanie (293)
- 7.7.3. Funkcje a struktury (294)
- 7.7.4. Tablice struktur (294)
- 7.7.5. Struktury ze składowymi tablicowymi (295)
- 7.7.6. Struktury zagnieżdżone (295)
- 7.8. Wskaźniki a struktury (296)
- 7.8.1. Wskaźniki do struktur (296)
- 7.8.2. Struktury ze składowymi wskaźnikowymi (297)
- TS: Wskaźniki inteligentne (298)
- Podsumowanie rozdziału (299)
8. STRUMIENIE (301)
- 8.1. Odczytywanie i zapisywanie plików tekstowych (301)
- 8.1.1. Otwieranie strumienia (302)
- 8.1.2. Odczyt z pliku (303)
- 8.1.3. Zapis do pliku (304)
- 8.1.4. Przykład przetwarzania pliku (304)
- 8.2. Odczyt tekstowych danych wejściowych (307)
- 8.2.1. Odczyt wyrazów (307)
- 8.2.2. Odczyt znaków (307)
- 8.2.3. Odczyt wierszy (309)
- CPB: Łączenie operacji wejścia przy użyciu operatora >> i funkcji getline (310)
- TS: Sprawdzanie błędu strumienia (311)
- 8.3. Zapisywanie tekstowych danych wyjściowych (312)
- TS: Standard Unicode, kodowanie UTF-8 i ciągi C++ (314)
- 8.4. Analizowanie i formatowanie ciągów (315)
- 8.5. Argumenty wiersza poleceń (317)
- IAS: Algorytmy szyfrowania (320)
- JTZ: Przetwarzanie plików tekstowych (321)
- P: Wyszukiwanie duplikatów (324)
- 8.6. Dostęp swobodny i pliki binarne (324)
- 8.6.1. Dostęp swobodny (324)
- 8.6.2. Pliki binarne (325)
- 8.6.3. Przetwarzanie plików z obrazami (326)
- IAS: Bazy danych a prywatność (329)
- Podsumowanie rozdziału (330)
9. KLASY (333)
- 9.1. Programowanie obiektowe (334)
- 9.2. Implementowanie prostej klasy (335)
- 9.3. Określanie interfejsu publicznego klasy (338)
- CPB: Zapominanie o średniku (340)
- 9.4. Projektowanie reprezentacji danych (341)
- 9.5. Funkcje składowe (342)
- 9.5.1. Implementowanie funkcji składowych (342)
- 9.5.2. Parametry jawne i niejawne (343)
- 9.5.3. Wywoływanie funkcji składowej wewnątrz innej funkcji składowej (344)
- WDP: Wszystkie dane składowe powinny być prywatne, a większość funkcji - publiczna (347)
- WDP: Poprawne użycie słowa zastrzeżonego const (347)
- 9.6. Konstruktory (348)
- CPB: Próba wywołania konstruktora (350)
- TS: Przeciążanie (351)
- TS: Listy inicjatorów (351)
- TS: Uniwersalna i jednolita składnia inicjacji (352)
- 9.7. Rozwiązywanie problemów: śledzenie obiektów (353)
- JTZ: Implementowanie klasy (355)
- P: Implementowanie klasy reprezentującej konto bankowe (358)
- IAS: Elektroniczne maszyny do głosowania (358)
- 9.8. Rozwiązywanie problemów: znajdowanie klas (360)
- WDP: Przekształcaj wektory równoległe w wektory obiektów (361)
- 9.9. Osobna kompilacja (363)
- 9.10. Wskaźniki do obiektów (367)
- 9.10.1. Obiekty alokowane dynamicznie (367)
- 9.10.2. Operator -> (368)
- 9.10.3. Wskaźnik this (369)
- 9.11. Rozwiązywanie problemów: wzorce danych obiektu (369)
- 9.11.1. Przechowywanie sumy całkowitej (370)
- 9.11.2. Liczenie zdarzeń (371)
- 9.11.3. Gromadzenie danych (371)
- 9.11.4. Zarządzanie właściwościami obiektu (372)
- 9.11.5. Modelowanie obiektów o różnych stanach (373)
- 9.11.6. Opisywanie pozycji obiektu (374)
- IAS: Oprogramowanie o otwartych źródłach i wolne oprogramowanie (375)
- Podsumowanie rozdziału (376)
10. DZIEDZICZENIE (379)
- 10.1. Hierarchie dziedziczenia (379)
- 10.2. Implementowanie klas pochodnych (383)
- CPB: Dziedziczenie prywatne (386)
- CPB: Replikowanie składowych klasy bazowej (386)
- WDP: Przy odmiennych wartościach należy używać jednej klasy, przy odmiennym działaniu - dziedziczenia (387)
- TS: Wywoływanie konstruktora klasy bazowej (387)
- 10.3. Przesłanianie funkcji składowych (388)
- CPB: Zapominanie o podaniu nazwy klasy bazowej (391)
- 10.4. Funkcje wirtualne i polimorfizm (391)
- 10.4.1. Problem odcinania (392)
- 10.4.2. Wskaźniki do klasy bazowej i pochodnej (393)
- 10.4.3. Funkcje wirtualne (394)
- 10.4.4. Polimorfizm (395)
- WD: Nie używaj znaczników typów (398)
- CPB: Odcinanie obiektu (398)
- CPB: Nieudane przesłanianie funkcji wirtualnej (399)
- TS: Wirtualne samowywołania (400)
- JTZ: Opracowywanie hierarchii dziedziczenia (400)
- P: Implementowanie hierarchii pracowników a potrzeby przetwarzania odcinków wypłat (406)
- IAS: Kto sprawuje kontrolę nad internetem? (406)
- Podsumowanie rozdziału (408)
11. REKURENCJA (409)
- 11.1. Liczby trójkątne (409)
- CPB: Śledzenie wykonania funkcji rekurencyjnych (413)
- CPB: Nieskończona rekurencja (414)
- JTZ: Wnioskowanie rekurencyjne (415)
- P: Znajdowanie plików (418)
- 11.2. Rekurencyjne funkcje pomocnicze (418)
- 11.3. Wydajność rekurencji (419)
- 11.4. Permutacje (423)
- 11.5. Rekurencja wzajemna (426)
- 11.6. Poszukiwanie z nawrotami (430)
- P: Wieże Hanoi (436)
- IAS: Ograniczenia obliczeń komputerowych (436)
- Podsumowanie rozdziału (439)
12. SORTOWANIE I WYSZUKIWANIE (441)
- 12.1. Sortowanie przez wybieranie (441)
- 12.2. Profilowanie algorytmu sortowania przez wybieranie (444)
- 12.3. Analiza wydajności algorytmu sortowania przez wybieranie (445)
- TS: O, omega i theta (447)
- TS: Sortowanie przez wstawianie (449)
- 12.4. Sortowanie przez scalanie (450)
- 12.5. Analiza algorytmu sortowania przez scalanie (453)
- TS: Algorytm sortowania szybkiego (456)
- 12.6. Wyszukiwanie (457)
- 12.6.1. Wyszukiwanie liniowe (457)
- 12.6.2. Wyszukiwanie binarne (459)
- WDP: Funkcje biblioteczne do sortowania i wyszukiwania binarnego (462)
- TS: Definiowanie kolejności sortowania obiektów (462)
- 12.7. Rozwiązywanie problemów: szacowanie czasu wykonania algorytmu (463)
- 12.7.1. Czas liniowy (463)
- 12.7.2. Czas kwadratowy (464)
- 12.7.3. Wzór trójkąta (465)
- 12.7.4. Czas logarytmiczny (467)
- P: Ulepszanie algorytmu sortowania przez wstawianie (468)
- IAS: Pierwsza programistka (468)
- Podsumowanie rozdziału (469)
13. ZAAWANSOWANE CECHY JĘZYKA C++ (471)
- 13.1. Przeciążanie operatorów (471)
- 13.1.1. Funkcje operatorów (472)
- 13.1.2. Przeciążanie operatorów porównania (474)
- 13.1.3. Wejście i wyjście (475)
- 13.1.4. Operatory składowe (476)
- TS: Przeciążanie operatorów inkrementacji i dekrementacji (476)
- TS: Niejawne konwersje typów (478)
- TS: Zwracanie referencji (479)
- P: Klasa Fraction (480)
- 13.2. Automatyczne zarządzanie pamięcią (480)
- 13.2.1. Konstruktory przydzielające pamięć (480)
- 13.2.2. Destruktory (482)
- 13.2.3. Przeciążanie operatora przypisania (483)
- 13.2.4. Konstruktory kopiujące (488)
- WDP: Używaj parametrów referencyjnych, by nie tworzyć kopii obiektów (492)
- CPB: Definiowanie destruktora bez pozostałych dwu funkcji z "wielkiej trójki" (492)
- TS: Wirtualne destruktory (493)
- TS: Powstrzymanie automatycznego tworzenia funkcji zarządzających pamięcią (494)
- TS: Operacje przenoszenia (494)
- TS: Wskaźniki współdzielone (496)
- P: Śledzenie zarządzania pamięcią w obiektach typu String (496)
- 13.3. Szablony (497)
- 13.3.1. Szablony funkcji (497)
- 13.3.2. Szablony klas (499)
- TS: Parametry szablonów niedotyczące typów (501)
- Podsumowanie rozdziału (502)
14. LISTY POWIĄZANE, STOSY I KOLEJKI (503)
- 14.1. Używanie list powiązanych (503)
- 14.2. Implementowanie list powiązanych (509)
- 14.2.1. Klasy dla list, węzłów i iteratorów (509)
- 14.2.2. Implementowanie iteratorów (511)
- 14.2.3. Implementowanie wstawiania i usuwania węzłów (512)
- P: Implementowanie szablonu listy powiązanej (522)
- 14.3. Wydajność operacji na listach, tablicach i wektorach (523)
- 14.4. Stosy i kolejki (527)
- 14.5. Implementowanie stosów i kolejek (530)
- 14.5.1. Stosy jako listy powiązane (530)
- 14.5.2. Stosy jako tablice (533)
- 14.5.3. Kolejki jako listy powiązane (534)
- 14.5.4. Kolejki jako tablice cykliczne (535)
- 14.6. Zastosowania stosów i kolejek (536)
- 14.6.1. Sprawdzanie zamknięcia nawiasów (536)
- 14.6.2. Obliczanie wyrażeń zapisanych w odwrotnej notacji polskiej (537)
- 14.6.3. Obliczanie wartości wyrażeń algebraicznych (539)
- 14.6.4. Poszukiwanie z nawrotami (543)
- TS: Odwrotna notacja polska (544)
- Podsumowanie rozdziału (545)
15. ZBIORY, MAPY I TABLICE MIESZAJĄCE (547)
- 15.1. Zbiory (547)
- 15.2. Mapy (551)
- WDP: W przypadku iteratorów używaj typu auto (555)
- TS: Multizbiory i multimapy (555)
- P: Częstość występowania wyrazów (556)
- 15.3. Implementowanie tablicy mieszającej (556)
- 15.3.1. Skróty (556)
- 15.3.2. Tablice mieszające (558)
- 15.3.3. Znajdowanie elementu (559)
- 15.3.4. Dodawanie i usuwanie elementów (560)
- 15.3.5. Przechodzenie po tablicy mieszającej (560)
- TS: Implementowanie funkcji skrótów (566)
- TS: Adresowanie otwarte (568)
- Podsumowanie rozdziału (570)
16. STRUKTURY DRZEW (571)
- 16.1. Podstawowe koncepcje dotyczące drzew (571)
- 16.2. Drzewa binarne (575)
- 16.2.1. Przykłady drzew binarnych (575)
- 16.2.2. Drzewa zrównoważone (577)
- 16.2.3. Implementacja drzewa binarnego (578)
- P: Budowanie drzewa Huffmana (580)
- 16.3. Binarne drzewa poszukiwań (580)
- 16.3.1. Właściwość wyszukiwania binarnego (580)
- 16.3.2. Wstawianie (582)
- 16.3.3. Usuwanie (584)
- 16.3.4. Wydajność operacji (586)
- 16.4. Przeglądanie drzewa (591)
- 16.4.1. Przeglądanie poprzeczne (591)
- 16.4.2. Przeglądanie wzdłużne i wsteczne (593)
- 16.4.3. Wzorzec Wizytator (594)
- 16.4.4. Przeszukiwanie w głąb i wszerz (595)
- 16.4.5. Iteratory drzew (596)
- 16.5. Drzewa czerwono-czarne (597)
- 16.5.1. Podstawowe własności drzew czerwono-czarnych (597)
- 16.5.2. Wstawianie (600)
- 16.5.3. Usuwanie (601)
- P: Implementowanie drzewa czerwono-czarnego (605)
- Podsumowanie rozdziału (605)
17. KOLEJKI PRIORYTETOWE I KOPCE (607)
- 17.1. Kolejki priorytetowe (607)
- P: Symulacja kolejki oczekujących klientów (610)
- 17.2. Kopce (610)
- 17.3. Algorytm sortowania przez kopcowanie (621)
- Podsumowanie rozdziału (626)
A ZESTAWIENIE SŁÓW ZASTRZEŻONYCH (627)
B ZESTAWIENIE OPERATORÓW (631)
C KODY ZNAKÓW (633)
D PRZEGLĄD BIBLIOTEKI C++ (637)
E WYTYCZNE DOTYCZĄCE PROGRAMOWANIA W JĘZYKU C++ (643)
F SYSTEMY LICZBOWE (651)
SŁOWNICZEK (661)
ŹRÓDŁA ILUSTRACJI (671)
ŚCIĄGAWKA (673)
- Title: Wprowadzenie do C++. Efektywne nauczanie. Wydanie III
- Author: Cay S. Horstmann
- Original title: Big C++: Late Objects, 3rd Edition
- Translation: Krzysztof Bąbol
- ISBN: 978-83-283-6729-6, 9788328367296
- Date of issue: 2021-01-18
- Format: Ebook
- Item ID: wpcpp3
- Publisher: Helion