Facebook - konwersja
  • promocja

Wprowadzenie do C++. Efektywne nauczanie. Wydanie III - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
18 stycznia 2021
Format ebooka:
MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

Wprowadzenie do C++. Efektywne nauczanie. Wydanie III - ebook

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!

Spis treści

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...
Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-6729-6
Rozmiar pliku: 32 MB

BESTSELLERY

Kategorie: