Kategorie
Ebooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komputer w biurze
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Multimedialne szkolenia
- Nieruchomości
- Perswazja i NLP
- Podatki
- Polityka społeczna
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Raporty, analizy
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
E-prasa
- Architektura i wnętrza
- Biznes i Ekonomia
- Dom i ogród
- E-Biznes
- Finanse
- Finanse osobiste
- Firma
- Fotografia
- Informatyka
- Kadry i płace
- Komputery, Excel
- Księgowość
- Kultura i literatura
- Naukowe i akademickie
- Ochrona środowiska
- Opiniotwórcze
- Oświata
- Podatki
- Podróże
- Psychologia
- Religia
- Rolnictwo
- Rynek książki i prasy
- Transport i Spedycja
- Zdrowie i uroda
-
Historia
-
Informatyka
- Aplikacje biurowe
- Bazy danych
- Bioinformatyka
- Biznes IT
- CAD/CAM
- Digital Lifestyle
- DTP
- Elektronika
- Fotografia cyfrowa
- Grafika komputerowa
- Gry
- Hacking
- Hardware
- IT w ekonomii
- Pakiety naukowe
- Podręczniki szkolne
- Podstawy komputera
- Programowanie
- Programowanie mobilne
- Serwery internetowe
- Sieci komputerowe
- Start-up
- Systemy operacyjne
- Sztuczna inteligencja
- Technologia dla dzieci
- Webmasterstwo
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poemat
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Podręczniki szkolne
-
Popularnonaukowe i akademickie
- Archeologia
- Bibliotekoznawstwo
- Filmoznawstwo
- Filologia
- Filologia polska
- Filozofia
- Finanse i bankowość
- Geografia
- Gospodarka
- Handel. Gospodarka światowa
- Historia i archeologia
- Historia sztuki i architektury
- Kulturoznawstwo
- Lingwistyka
- Literaturoznawstwo
- Logistyka
- Matematyka
- Medycyna
- Nauki humanistyczne
- Pedagogika
- Pomoce naukowe
- Popularnonaukowa
- Pozostałe
- Psychologia
- Socjologia
- Teatrologia
- Teologia
- Teorie i nauki ekonomiczne
- Transport i spedycja
- Wychowanie fizyczne
- Zarządzanie i marketing
-
Poradniki
-
Poradniki do gier
-
Poradniki zawodowe i specjalistyczne
-
Prawo
- BHP
- Historia
- Kodeks drogowy. Prawo jazdy
- Nauki prawne
- Ochrona zdrowia
- Ogólne, kompendium wiedzy
- Podręczniki akademickie
- Pozostałe
- Prawo budowlane i lokalowe
- Prawo cywilne
- Prawo finansowe
- Prawo gospodarcze
- Prawo gospodarcze i handlowe
- Prawo karne
- Prawo karne. Przestępstwa karne. Kryminologia
- Prawo międzynarodowe
- Prawo międzynarodowe i zagraniczne
- Prawo ochrony zdrowia
- Prawo oświatowe
- Prawo podatkowe
- Prawo pracy i ubezpieczeń społecznych
- Prawo publiczne, konstytucyjne i administracyjne
- Prawo rodzinne i opiekuńcze
- Prawo rolne
- Prawo socjalne, prawo pracy
- Prawo Unii Europejskiej
- Przemysł
- Rolne i ochrona środowiska
- Słowniki i encyklopedie
- Zamówienia publiczne
- Zarządzanie
-
Przewodniki i podróże
- Afryka
- Albumy
- Ameryka Południowa
- Ameryka Środkowa i Północna
- Australia, Nowa Zelandia, Oceania
- Austria
- Azja
- Bałkany
- Bliski Wschód
- Bułgaria
- Chiny
- Chorwacja
- Czechy
- Dania
- Egipt
- Estonia
- Europa
- Francja
- Góry
- Grecja
- Hiszpania
- Holandia
- Islandia
- Litwa
- Łotwa
- Mapy, Plany miast, Atlasy
- Miniprzewodniki
- Niemcy
- Norwegia
- Podróże aktywne
- Polska
- Portugalia
- Pozostałe
- Rosja
- Rumunia
- Słowacja
- Słowenia
- Szwajcaria
- Szwecja
- Świat
- Turcja
- Ukraina
- Węgry
- Wielka Brytania
- Włochy
-
Psychologia
- Filozofie życiowe
- Kompetencje psychospołeczne
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Audiobooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Nieruchomości
- Perswazja i NLP
- Podatki
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
Historia
-
Informatyka
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Popularnonaukowe i akademickie
-
Poradniki
-
Poradniki zawodowe i specjalistyczne
-
Prawo
-
Przewodniki i podróże
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Kursy video
-
Bazy danych
-
Big Data
-
Biznes, ekonomia i marketing
-
Cyberbezpieczeństwo
-
Data Science
-
DevOps
-
Dla dzieci
-
Elektronika
-
Grafika/Wideo/CAX
-
Gry
-
Microsoft Office
-
Narzędzia programistyczne
-
Programowanie
-
Rozwój osobisty
-
Sieci komputerowe
-
Systemy operacyjne
-
Testowanie oprogramowania
-
Urządzenia mobilne
-
UX/UI
-
Web development
-
Zarządzanie
Podcasty
- Ebooki
- Programowanie
- C++
- Wprowadzenie do C++. Efektywne nauczanie. Wydanie III
Szczegóły ebooka
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)
- Tytuł: Wprowadzenie do C++. Efektywne nauczanie. Wydanie III
- Autor: Cay S. Horstmann
- Tytuł oryginału: Big C++: Late Objects, 3rd Edition
- Tłumaczenie: Krzysztof Bąbol
- ISBN: 978-83-283-6729-6, 9788328367296
- Data wydania: 2021-01-18
- Format: Ebook
- Identyfikator pozycji: wpcpp3
- Wydawca: Helion