C++. Przewodnik dla początkujących - Helion
Tytuł oryginału: Jumping into C++
Tłumaczenie: Ireneusz Jakóbik
ISBN: 978-83-246-8921-7
stron: 400, Format: ebook
Data wydania: 2014-06-09
Księgarnia: Helion
Cena książki: 44,50 zł (poprzednio: 89,00 zł)
Oszczędzasz: 50% (-44,50 zł)
Już dziś naucz się programować!
Pomimo ogromnej konkurencji ze strony Javy oraz platformy .NET język C++ wciąż jest niezastąpiony w wielu zadaniach. Sprawdza się wyśmienicie, gdy konieczna jest pełna kontrola nad sprzętem oraz możliwie najwyższa wydajność. Jeżeli chcesz się przekonać, jak wykorzystać jego potencjał, trafiłeś na doskonałą książkę!
Opanowanie tego języka nie jest tak trudne, jak myślisz. Dzięki temu podręcznikowi bez problemu rozpoczniesz przygodę z C++. W trakcie lektury przygotujesz Twoje środowisko pracy (niezależnie od tego, czy korzystasz z Linuksa, Mac OS, czy Windowsa), poznasz składnię języka i jego elementy. Z kolejnych rozdziałów dowiesz się, jak deklarować zmienne i przechowywać w nich dane oraz jak używać instrukcji warunkowych. Część druga tej książki została poświęcona zagadnieniom związanym z pracą z danymi. Poznasz możliwości tablic, struktur oraz popracujesz ze wskaźnikami. Na koniec zajmiesz się technikami programowania obiektowego oraz debugowaniem kodu. To świetny podręcznik, dzięki któremu nawet laik może zacząć programować w C++. Warto spróbować!
Dzięki tej książce:
- przygotujesz środowisko pracy
- poznasz składnię i elementy języka C++
- opanujesz tablice, struktury i wskaźniki
- poznasz techniki programowania obiektowego
- stworzysz swój pierwszy program w C++
Poznaj moc C++!
Spis treści
C++. Przewodnik dla początkujących eBook -- spis treści
CZĘŚĆ I. WSKOCZ W C++ (13)
Rozdział 1. Wprowadzenie. Konfiguracja środowiska programistycznego (15)
- Czym jest język programowania? (15)
- Słyszałem o języku, który nazywa się C. Jaka jest różnica między nim a C++? (15)
- Czy powinienem znać C, aby nauczyć się C++? (16)
- Czy żeby zostać programistą, muszę znać matematykę? (16)
- Terminologia (16)
- Programowanie (16)
- Plik wykonywalny (16)
- Edycja i kompilowanie plików źródłowych (17)
- Uwaga na temat przykładowych kodów źródłowych (17)
- Windows (17)
- Krok 1. Pobierz Code::Blocks (18)
- Krok 2. Zainstaluj Code::Blocks (18)
- Krok 3. Uruchom Code::Blocks (18)
- Rozwiązywanie problemów (21)
- Czym właściwie jest Code::Blocks? (23)
- Macintosh (23)
- Xcode (23)
- Instalowanie Xcode (24)
- Uruchamianie Xcode (24)
- Tworzenie pierwszego programu C++ w Xcode (24)
- Instalowanie Xcode 4 (28)
- Uruchamianie Xcode (28)
- Tworzenie pierwszego programu C++ w Xcode (28)
- Rozwiązywanie problemów (31)
- Linux (33)
- Krok 1. Instalowanie g++ (33)
- Krok 2. Uruchomienie g++ (34)
- Krok 3. Uruchomienie programu (34)
- Krok 4. Konfigurowanie edytora tekstowego (35)
- Konfigurowanie nano (35)
- Korzystanie z nano (36)
Rozdział 2. Podstawy C++ (39)
- Wprowadzenie do języka C++ (39)
- Najprostszy program w C++ (39)
- Co się dzieje, jeżeli nie możesz zobaczyć swojego programu? (41)
- Podstawowa struktura programu w C++ (42)
- Komentowanie programów (42)
- Specyfika myślenia programisty. Tworzenie kodu wielokrotnego użycia (43)
- Kilka słów na temat radości i bólu praktyki (44)
- Sprawdź się (44)
- Zadania praktyczne (45)
Rozdział 3. Interakcja z użytkownikiem. Zapisywanie informacji w zmiennych (47)
- Deklarowanie zmiennych w C++ (47)
- Korzystanie ze zmiennych (48)
- Co zrobić, gdy program błyskawicznie kończy działanie? (48)
- Zmiana wartości zmiennych oraz ich porównywanie (49)
- Skrócone zapisy na dodawanie i odejmowanie jedynki (50)
- Poprawne i niepoprawne użycie zmiennych (51)
- Najczęściej popełniane błędy podczas deklarowania zmiennych w C++ (51)
- Rozróżnianie wielkości liter (52)
- Nazwy zmiennych (53)
- Przechowywanie łańcuchów tekstowych (53)
- No dobrze, rozumiem już łańcuchy tekstowe, ale co z pozostałymi typami? (55)
- Mały sekret liczb zmiennoprzecinkowych (56)
- Mały sekret liczb całkowitych (57)
- Sprawdź się (57)
- Zadania praktyczne (58)
Rozdział 4. Instrukcje warunkowe (59)
- Podstawowa składnia instrukcji if (59)
- Wyrażenia (60)
- Czym jest prawda? (61)
- Typ bool (61)
- Instrukcja else (62)
- Instrukcje else-if (62)
- Porównywanie łańcuchów tekstowych (63)
- Więcej interesujących warunków budowanych za pomocą operatorów logicznych (64)
- Logiczne nie (64)
- Logiczne ORAZ (65)
- Logiczne LUB (65)
- Łączenie wyrażeń (66)
- Przykładowe wyrażenia logiczne (67)
- Sprawdź się (67)
- Zadania praktyczne (68)
Rozdział 5. Pętle (69)
- Pętla while (69)
- Najczęściej popełniany błąd (70)
- Pętla for (70)
- Inicjalizacja zmiennej (71)
- Warunek pętli (71)
- Aktualizacja zmiennej (71)
- Pętla do-while (72)
- Kontrolowanie przebiegu pętli (73)
- Pętle zagnieżdżone (75)
- Wybór właściwego rodzaju pętli (76)
- Pętla for (76)
- Pętla while (76)
- Pętla do-while (77)
- Sprawdź się (78)
- Zadania praktyczne (78)
Rozdział 6. Funkcje (81)
- Składnia funkcji (81)
- Zmienne lokalne i zmienne globalne (83)
- Zmienne lokalne (83)
- Zmienne globalne (84)
- Ostrzeżenie dotyczące zmiennych globalnych (85)
- Przygotowanie funkcji do użycia (86)
- Definicja i deklaracja funkcji (86)
- Przykład użycia prototypu funkcji (87)
- Rozbijanie programu na funkcje (88)
- Kiedy wciąż na nowo powtarzasz ten sam kod (88)
- Kiedy chcesz, żeby kod był łatwiejszy do czytania (88)
- Nazywanie i przeładowywanie funkcji (89)
- Podsumowanie wiadomości o funkcjach (89)
- Sprawdź się (90)
- Zadania praktyczne (90)
Rozdział 7. Instrukcje switch case oraz typ wyliczeniowy (91)
- Porównanie instrukcji switch case z if (93)
- Tworzenie prostych typów za pomocą wyliczeń (94)
- Sprawdź się (96)
- Zadania praktyczne (96)
Rozdział 8. Dodawanie do programu elementu losowości (97)
- Uzyskiwanie liczb losowych w C++ (98)
- Błędy i losowość (100)
- Sprawdź się (101)
- Zadania praktyczne (102)
Rozdział 9. Co zrobić, kiedy1 nie wiesz, co robić? (103)
- Krótka dygresja na temat wydajności i bezpieczeństwa kodu (106)
- Co robić, kiedy nie znasz algorytmu? (107)
- Zadania praktyczne (110)
CZĘŚĆ II. PRACA Z DANYMI (111)
Rozdział 10. Tablice (113)
- Podstawowa składnia tablic (113)
- Przykładowe zastosowania tablic (114)
- Przechowywanie zamówień w tablicach (114)
- Odwzorowanie siatek w tablicach wielowymiarowych (115)
- Korzystanie z tablic (115)
- Tablice i pętle (115)
- Przekazywanie tablic do funkcji (116)
- Wypadnięcie poza ostatni element tablicy (118)
- Sortowanie tablic (118)
- Sprawdź się (122)
- Zadania praktyczne (123)
Rozdział 11. Struktury (125)
- Wiązanie wielu wartości (125)
- Składnia (125)
- Przekazywanie struktur (127)
- Sprawdź się (129)
- Zadania praktyczne (130)
Rozdział 12. Wprowadzenie do wskaźników (131)
- Zapomnij o wszystkim, co do tej pory słyszałeś (131)
- No dobrze, czym są wskaźniki? Dlaczego powinny mnie obchodzić? (131)
- Czym jest pamięć komputera? (132)
- Zmienne a adresy (133)
- Uwaga na temat nazewnictwa (133)
- Organizacja pamięci (134)
- Nieprawidłowe wskaźniki (135)
- Pamięć i tablice (136)
- Pozostałe zalety i wady wskaźników (136)
- Sprawdź się (137)
- Zadania praktyczne (137)
Rozdział 13. Korzystanie ze wskaźników (139)
- Składnia wskaźników (139)
- Deklarowanie wskaźnika (139)
- Otrzymywanie adresu zmiennej za pomocą wskaźnika (140)
- Użycie wskaźnika (140)
- Niezainicjalizowane wskaźniki i wartość NULL (143)
- Wskaźniki i funkcje (144)
- Referencje (146)
- Referencje a wskaźniki (147)
- Sprawdź się (148)
- Zadania praktyczne (148)
Rozdział 14. Dynamiczna alokacja pamięci (151)
- Pozyskiwanie pamięci za pomocą instrukcji new (151)
- Brak pamięci (152)
- Referencje i dynamiczna alokacja (152)
- Wskaźniki i tablice (152)
- Tablice wielowymiarowe (155)
- Arytmetyka wskaźników (155)
- Zrozumieć tablice dwuwymiarowe (156)
- Wskaźniki do wskaźników (157)
- Wskaźniki do wskaźników i tablic dwuwymiarowych (159)
- Oswajanie wskaźników (160)
- Sprawdź się (160)
- Zadania praktyczne (161)
Rozdział 15. Wprowadzenie do struktur danych: listy powiązane (163)
- Wskaźniki i struktury (165)
- Tworzenie listy powiązanej (166)
- Pierwszy przebieg (167)
- Drugi przebieg (168)
- Przeglądanie listy powiązanej (169)
- Oswajanie list powiązanych (170)
- Tablice a listy powiązane (171)
- Sprawdź się (173)
- Zadania praktyczne (175)
Rozdział 16. Rekurencja (177)
- Jak postrzegać rekurencję? (177)
- Rekurencja i struktury danych (179)
- Pętle i rekurencja (181)
- Stos (183)
- Zaleta stosu (185)
- Wady rekurencji (185)
- Debugowanie przepełnienia stosu (186)
- Wydajność (188)
- Oswajanie rekurencji (188)
- Sprawdź się (188)
- Zadania praktyczne (189)
Rozdział 17. Drzewa binarne (191)
- Konwencje nazewnicze (193)
- Implementacja drzew binarnych (194)
- Wstawianie węzła do drzewa (194)
- Przeszukiwanie drzewa (196)
- Niszczenie drzewa (197)
- Usuwanie węzła z drzewa (199)
- Praktyczne zastosowanie drzew binarnych (206)
- Koszt tworzenia drzew i map (207)
- Sprawdź się (208)
- Zadania praktyczne (208)
Rozdział 18. Standardowa biblioteka szablonów (211)
- Wektor - tablica o zmiennych rozmiarach (212)
- Przekazywanie wektorów do metod (213)
- Inne właściwości wektorów (213)
- Mapy (214)
- Iteratory (215)
- Sprawdzanie, czy wartość znajduje się w mapie (217)
- Oswajanie biblioteki STL (218)
- Więcej informacji o STL (219)
- Sprawdź się (219)
- Zadania praktyczne (220)
Rozdział 19. Więcej o łańcuchach tekstowych (221)
- Wczytywanie łańcuchów tekstowych (221)
- Długość łańcucha i dostęp do jego elementów (223)
- Wyszukiwanie i podłańcuchy (224)
- Przekazywanie łańcucha przez referencję (225)
- Szerzenie się const (226)
- Const i STL (227)
- Sprawdź się (228)
- Zadania praktyczne (229)
Rozdział 20. Debugowanie w Code::Blocks (231)
- Zaczynamy (232)
- Wstrzymywanie działania programu (233)
- Debugowanie awarii (239)
- Zaglądanie do zawieszonego programu (242)
- Modyfikowanie zmiennych (245)
- Podsumowanie (246)
- Zadania praktyczne (246)
- Zadanie nr 1. Problem z wykładnikiem (246)
- Zadanie nr 2. Problem z dodawaniem liczb (247)
- Zadanie nr 3. Problem z ciągiem Fibonacciego (247)
- Zadanie nr 4. Problem z odczytywaniem i wyświetlaniem listy (248)
CZĘŚĆ III. TWORZENIE WIĘKSZYCH PROGRAMÓW (249)
Rozdział 21. Rozbijanie programów na mniejsze części (251)
- Proces kompilacji w języku C++ (251)
- Przetwarzanie wstępne (252)
- Kompilacja (253)
- Konsolidacja (253)
- Dlaczego kompilacja i konsolidacja przebiegają oddzielnie? (254)
- Jak rozbić program na wiele plików? (254)
- Krok 1. Oddzielanie deklaracji od definicji (255)
- Krok 2. Określenie, które funkcje powinny być wspólne (255)
- Krok 3. Przeniesienie wspólnych funkcji do nowych plików (255)
- Przykładowy program (256)
- Pozostałe zasady pracy z plikami nagłówkowymi (259)
- Praca z wieloma plikami źródłowymi w środowisku programistycznym (260)
- Sprawdź się (262)
- Zadania praktyczne (264)
Rozdział 22. Wprowadzenie do projektowania programów (265)
- Powielony kod (265)
- Założenia dotyczące przechowywania danych (266)
- Projekt i komentarze (268)
- Sprawdź się (269)
Rozdział 23. Ukrywanie reprezentacji struktur danych (271)
- Użycie funkcji w celu ukrycia układu struktury (272)
- Deklaracja metody i składnia wywołania (273)
- Przeniesienie definicji funkcji poza strukturę (274)
- Sprawdź się (275)
- Zadania praktyczne (275)
Rozdział 24. Klasa (277)
- Ukrywanie sposobu przechowywania danych (278)
- Deklarowanie instancji klasy (279)
- Odpowiedzialności klasy (280)
- Co tak naprawdę znaczy private? (281)
- Podsumowanie (281)
- Sprawdź się (281)
- Zadania praktyczne (282)
Rozdział 25. Cykl życia klasy (283)
- Konstruowanie obiektu (283)
- Co się stanie, jeśli nie utworzysz konstruktora? (285)
- Inicjalizacja składowych klasy (286)
- Użycie listy inicjalizacyjnej do pól stałych (287)
- Niszczenie obiektu (288)
- Niszczenie podczas usuwania (290)
- Niszczenie przy wyjściu poza zakres (290)
- Niszczenie przez inny destruktor (291)
- Kopiowanie klas (291)
- Operator przypisania (292)
- Konstruktor kopiujący (295)
- Pełna lista metod generowanych przez kompilator (296)
- Całkowite zapobieganie kopiowaniu (296)
- Sprawdź się (297)
- Zadania praktyczne (298)
Rozdział 26. Dziedziczenie i polimorfizm (299)
- Dziedziczenie w C++ (300)
- Pozostałe zastosowania oraz nieprawidłowe użycia dziedziczenia (304)
- Dziedziczenie, konstruowanie obiektów oraz ich niszczenie (304)
- Polimorfizm i dziedziczenie obiektów (306)
- Problem przycinania (308)
- Dzielenie kodu z podklasami (309)
- Dane chronione (309)
- Dane obejmujące całą klasę (310)
- W jaki sposób zaimplementowany jest polimorfizm? (311)
- Sprawdź się (313)
- Zadania praktyczne (314)
Rozdział 27. Przestrzenie nazw (317)
- Kiedy stosować instrukcję using namespace (319)
- Kiedy należy utworzyć przestrzeń nazw? (319)
- Sprawdź się (320)
- Zadania praktyczne (320)
Rozdział 28. Plikowe operacje wejścia-wyjścia (321)
- Podstawy plikowych operacji wejścia-wyjścia (321)
- Czytanie z plików (321)
- Formaty plików (323)
- Koniec pliku (324)
- Zapisywanie plików (326)
- Tworzenie nowych plików (327)
- Pozycja pliku (327)
- Pobieranie argumentów z wiersza poleceń (330)
- Obsługa argumentów liczbowych (332)
- Pliki binarne (332)
- Praca z plikami binarnymi (334)
- Konwersja na typ char* (335)
- Przykład binarnych operacji we/wy (335)
- Przechowywanie klas w pliku (336)
- Czytanie z pliku (338)
- Sprawdź się (340)
- Zadania praktyczne (341)
Rozdział 29. Szablony w C++ (343)
- Szablony funkcji (343)
- Inferencja typów (345)
- Kacze typowanie (345)
- Szablony klas (346)
- Wskazówki dotyczące pracy z szablonami (347)
- Szablony i pliki nagłówkowe (349)
- Podsumowanie informacji o szablonach (349)
- Interpretacja komunikatów o błędach w szablonach (350)
- Sprawdź się (353)
- Zadania praktyczne (354)
CZĘŚCI IV. ZAGADNIENIA ROZMAITE (355)
Rozdział 30. Formatowanie danych wyjściowych za pomocą iomanip (357)
- Rozwiązywanie problemów związanych z odstępami (357)
- Określanie szerokości pola za pomocą instrukcji setw (357)
- Zmiana znaku dopełniającego (358)
- Trwała zmiana ustawień (358)
- Korzystanie ze znajomości iomanip (359)
- Wyświetlanie liczb (360)
- Określanie precyzji wyświetlanych liczb za pomocą instrukcji setprecision (361)
- A co z pieniędzmi? (361)
- Wyświetlanie liczb o różnych podstawach (362)
Rozdział 31. Wyjątki i raportowanie błędów (363)
- Zwalnianie zasobów po wystąpieniu wyjątku (364)
- Ręczne czyszczenie zasobów w bloku catch (365)
- Zgłaszanie wyjątków (366)
- Specyfikacja wyjątków (367)
- Korzyści płynące z wyjątków (368)
- Nieprawidłowe użycie wyjątków (369)
- Podsumowanie informacji o wyjątkach (370)
Rozdział 32. Końcowe przemyślenia (371)
- Rozwiązanie testu z rozdziału 2. (372)
- Rozwiązanie testu z rozdziału 3. (373)
- Rozwiązanie testu z rozdziału 4. (374)
- Rozwiązanie testu z rozdziału 5. (374)
- Rozwiązanie testu z rozdziału 6. (375)
- Rozwiązanie testu z rozdziału 7. (375)
- Rozwiązanie testu z rozdziału 8. (376)
- Rozwiązanie testu z rozdziału 10. (377)
- Rozwiązanie testu z rozdziału 11. (377)
- Rozwiązanie testu z rozdziału 12. (378)
- Rozwiązanie testu z rozdziału 13. (379)
- Rozwiązanie testu z rozdziału 14. (380)
- Rozwiązanie testu z rozdziału 15. (381)
- Rozwiązanie testu z rozdziału 16. (382)
- Rozwiązanie testu z rozdziału 17. (383)
- Rozwiązanie testu z rozdziału 18. (384)
- Rozwiązanie testu z rozdziału 19. (385)
- Rozwiązanie testu z rozdziału 21. (385)
- Rozwiązanie testu z rozdziału 22. (386)
- Rozwiązanie testu z rozdziału 23. (386)
- Rozwiązanie testu z rozdziału 24. (387)
- Rozwiązanie testu z rozdziału 25. (387)
- Rozwiązanie testu z rozdziału 26. (389)
- Rozwiązanie testu z rozdziału 27. (390)
- Rozwiązanie testu z rozdziału 28. (391)
- Rozwiązanie testu z rozdziału 29. (391)
Skorowidz (393)