język c++. szkoła programowania. wydanie v cała książka.pdf

(25434 KB) Pobierz
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Jêzyk C++. Szko³a
programowania. Wydanie V
SPIS TREŒCI
KATALOG KSI¥¯EK
Autor: Stephen Prata
T³umaczenie: Przemys³aw Steæ (rozdz. 17, dod. A–G),
Przemys³aw Szeremiota (rozdz. 9–12), Tomasz Walczak
(rozdz. 13–16), Tomasz ¯mijewski (rozdz. wstêp, 1–8)
ISBN: 83-7361-958-5
Format: B5, stron: 1168
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Doskona³y podrêcznik dla pocz¹tkuj¹cych programistów
Typy danych i konstrukcje steruj¹ce
Programowanie proceduralne i obiektowe
Biblioteka STL
Obs³uga plików
C++ to jeden z najpopularniejszych jêzyków programowania, jego mo¿liwoœci s¹
ogromne. U¿ywa siê go do pisania aplikacji narzêdziowych, gier, a nawet systemów
operacyjnych. Nauka jêzyka C++ jest jednak ¿mudnym i skomplikowanym procesem
— to prawdziwe wyzwanie dla programistów. Opanowanie potêgi C++ wymaga poznania
zasad programowania obiektowego, korzystania z bibliotek i szablonów, obs³ugi b³êdów
i wyj¹tków i wielu innych zagadnieñ. Ale odpowiednio napisany podrêcznik, zawieraj¹cy
podstawow¹ wiedzê na temat tego jêzyka, zdecydowanie u³atwi przyswojenie sztuki
programowania w C++.
Ksi¹¿ka „Jêzyk C++. Szko³a programowania. Wydanie V” to w³aœnie taki podrêcznik.
Jego autor Stephen Prata przedstawia C++ w sposób idealnie nadaj¹cy siê dla
pocz¹tkuj¹cych programistów chc¹cych opanowaæ tajniki tego jêzyka. Czytaj¹c tê
ksi¹¿kê, poznasz historiê jêzyka C i jego najwa¿niejsze elementy, dowiesz siê, czym
ró¿ni siê programowanie proceduralne od obiektowego i jak stosowaæ te dwie techniki,
korzystaj¹c z C++. Nauczysz siê definiowaæ klasy i obiekty, przydzielaæ zasoby pamiêci
dla aplikacji, korzystaæ ze wskaŸników i implementowaæ mechanizmy obs³ugi plików
i strumieni wejœcia-wyjœcia.
Kompilatory jêzyka C++
Struktura programu
Proste i z³o¿one typy danych
Pêtle i instrukcje warunkowe
Definiowanie funkcji i korzystanie z nich
Model pamiêci w C++
Podstawowe elementy programowania obiektowego — obiekty i klasy
Dynamiczne przydzielanie pamiêci
Mechanizmy dziedziczenia
Obs³uga wyj¹tków
Biblioteka STL
Operacje wejœcia-wyjœcia
Poznaj najwa¿niejsze zasady programowania w C++
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ONOWOŒCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
849848362.015.png 849848362.016.png 849848362.017.png 849848362.018.png 849848362.001.png 849848362.002.png 849848362.003.png 849848362.004.png 849848362.005.png 849848362.006.png 849848362.007.png 849848362.008.png 849848362.009.png 849848362.010.png 849848362.011.png 849848362.012.png 849848362.013.png 849848362.014.png
 
SPIS TREŚCI
WSTĘP ............................................................................................................................ 1
ROZDZIAŁ 1 Zaczynamy ............................................................................................ 11
Nauka C++ — co nas czeka? ......................................................................................... 11
Pochodzenie języka C++ — krótka historia .................................................................. 12
Język C ...................................................................................................................... 13
Filozofia programowania w C .................................................................................. 13
Zmiana w C++ — programowanie obiektowe ......................................................... 15
C++ i programowanie ogólne ................................................................................... 16
Pochodzenie C++ ...................................................................................................... 16
Przenośność i standardy ................................................................................................. 18
Mechanika tworzenia programu .................................................................................... 20
Pisanie kodu źródłowego .......................................................................................... 21
Kompilacja i konsolidacja ........................................................................................ 22
Podsumowanie ................................................................................................................ 27
ROZDZIAŁ 2 Pierwszy program w C++ ..................................................................... 29
C++ — początek ............................................................................................................ 29
Funkcja main() ......................................................................................................... 31
Komentarze w C++ .................................................................................................. 34
Preprocesor i plik iostream ....................................................................................... 35
Nazwy plików nagłówkowych .................................................................................. 36
Przestrzenie nazw ..................................................................................................... 37
Wypisywanie danych — cout ................................................................................... 38
Formatowanie kodu źródłowego C++ ...................................................................... 41
Instrukcje C++ ................................................................................................................ 43
Instrukcje deklaracji i zmienne ................................................................................ 43
Instrukcja przypisania .............................................................................................. 45
Nowa sztuczka z cout ............................................................................................... 46
Inne instrukcje C++ ....................................................................................................... 47
Użycie obiektu cin .................................................................................................... 48
Złączanie za pomocą cout ........................................................................................ 48
cin i cout — klasy po raz pierwszy .......................................................................... 49
Funkcje ........................................................................................................................... 51
Użycie funkcji zwracającej wartość.......................................................................... 51
Odmiany funkcji ....................................................................................................... 55
Funkcje definiowane przez użytkownika ................................................................. 55
Funkcje użytkownika zwracające wartość................................................................ 59
Dyrektywa using w programach z wieloma funkcjami ............................................ 61
Podsumowanie ................................................................................................................ 63
Pytania sprawdzające ..................................................................................................... 63
Ćwiczenia programistyczne ........................................................................................... 64
ROZDZIAŁ 3 Dane ...................................................................................................... 67
Zmienne proste ............................................................................................................... 68
Nazwy zmiennych .................................................................................................... 68
Typy całkowitoliczbowe ............................................................................................ 70
Typy short, int i long ................................................................................................ 70
Typy bez znaku ......................................................................................................... 75
Dobór właściwego typu ............................................................................................. 78
Stałe całkowitoliczbowe ........................................................................................... 79
Jak C++ ustala typ stałej? ......................................................................................... 81
Typ char — znaki i małe liczby całkowite ............................................................... 81
Typ danych bool ........................................................................................................ 89
Kwalifikator const .......................................................................................................... 90
Liczby zmiennoprzecinkowe .......................................................................................... 91
Zapis liczb zmiennoprzecinkowych ......................................................................... 92
Zmiennoprzecinkowe typy danych ........................................................................... 93
Stałe zmiennoprzecinkowe ....................................................................................... 96
Zalety i wady liczb zmiennoprzecinkowych ............................................................ 96
Operatory arytmetyczne C++ ......................................................................................... 97
Kolejność działań — priorytety operatorów i łączność ........................................... 99
Odmiany dzielenia .................................................................................................. 100
Operator modulo ..................................................................................................... 102
Konwersje typów .................................................................................................... 103
Podsumowanie .............................................................................................................. 109
Pytania sprawdzające ................................................................................................... 110
Ćwiczenia programistyczne ......................................................................................... 110
ROZDZIAŁ 4 Typy złożone ....................................................................................... 113
Tablice w skrócie .......................................................................................................... 114
Uwagi o programie ................................................................................................. 116
Inicjalizacja tablic ................................................................................................... 117
Łańcuchy ...................................................................................................................... 118
Łączenie stałych łańcuchowych ............................................................................. 120
Łańcuchy w tablicy ................................................................................................. 120
Problemy z wprowadzaniem łańcuchów znakowych ............................................. 122
Wczytywanie łańcuchów znakowych wierszami ................................................... 124
Mieszanie w danych wejściowych łańcuchów i liczb ............................................ 128
Klasa string — wprowadzenie ..................................................................................... 130
Przypisanie, konkatenacja i dołączanie .................................................................. 131
Inne operacje klasy string ....................................................................................... 133
Klasa string a wejście i wyjście .............................................................................. 135
Struktury ....................................................................................................................... 137
Użycie struktury w programie ................................................................................ 139
Czy w strukturze można użyć pola typu string? .................................................... 142
Inne cechy struktur ................................................................................................. 142
Tablice struktur ....................................................................................................... 144
Pola bitowe .............................................................................................................. 145
Unie .............................................................................................................................. 146
VIII
Typy wyliczeniowe ....................................................................................................... 148
Ustawianie wartości enumeratorów ....................................................................... 150
Zakresy wartości w typach wyliczeniowych ........................................................... 150
Wskaźniki i różne drobiazgi ........................................................................................ 151
Deklarowanie i inicjalizacja wskaźników .............................................................. 154
Niebezpieczeństwa związane ze wskaźnikami ...................................................... 157
Wskaźniki i liczby .................................................................................................. 157
Użycie operatora new do alokowania pamięci ....................................................... 158
Zwalnianie pamięci za pomocą delete ................................................................... 160
Użycie new do tworzenia tablic dynamicznych ..................................................... 161
Wskaźniki, tablice i arytmetyka wskaźników .............................................................. 164
Uwagi o programie ................................................................................................. 166
Wskaźniki i łańcuchy ............................................................................................. 170
Użycie new do tworzenia struktur dynamicznych ................................................. 175
Alokacja pamięci: automatyczna, statyczna i dynamiczna .................................... 179
Podsumowanie .............................................................................................................. 181
Pytania sprawdzające ................................................................................................... 182
Ćwiczenia programistyczne ......................................................................................... 183
ROZDZIAŁ 5 Pętle i wyrażenia relacyjne ................................................................. 185
Pętle for ........................................................................................................................ 186
Elementy pętli for ................................................................................................... 187
Wracamy do pętli for .............................................................................................. 194
Zmiana wielkości kroku ......................................................................................... 195
Pętla for i łańcuchy znakowe .................................................................................. 196
Operatory inkrementacji (++) i dekrementacji (--) ................................................ 197
Efekty uboczne i punkty odniesienia ...................................................................... 199
Formy przedrostkowe a formy przyrostkowe ......................................................... 199
Operatory inkrementacji i dekrementacji a wskaźniki .......................................... 200
Złożone operatory przypisania ............................................................................... 201
Instrukcje złożone czyli bloki ................................................................................. 202
Przecinek jako operator (i pewne sztuczki składniowe) ........................................ 204
Wyrażenia relacyjne ..................................................................................................... 207
Bardzo typowy błąd ................................................................................................ 208
Porównywanie łańcuchów w stylu C ...................................................................... 211
Porównywanie łańcuchów klasy string .................................................................. 213
Pętla while .................................................................................................................... 215
Uwagi o programie ................................................................................................. 216
Pętla for a pętla while ............................................................................................. 217
Chwileczkę — tworzymy pętlę opóźnienia ............................................................ 219
Pętla do while ............................................................................................................... 221
Pętle i wprowadzanie danych tekstowych .................................................................... 224
Najprostsza wersja cin ............................................................................................ 224
cin.get(char) na odsiecz .......................................................................................... 225
Która cin.get()? ....................................................................................................... 227
IX
Koniec pliku ........................................................................................................... 227
Jeszcze inna wersja cin.get() .................................................................................. 231
Pętle zagnieżdżone i dwuwymiarowe tablice ............................................................... 234
Inicjalizacja tablic dwuwymiarowych .................................................................... 236
Podsumowanie .............................................................................................................. 238
Pytania sprawdzające ................................................................................................... 239
Ćwiczenia programistyczne ......................................................................................... 230
ROZDZIAŁ 6 Instrukcje warunkowe i operatory logiczne ........................................ 243
Instrukcja if .................................................................................................................. 243
Instrukcja if else ...................................................................................................... 245
Formatowanie instrukcji if else .............................................................................. 247
Konstrukcja if else if else ....................................................................................... 248
Wyrażenia logiczne ...................................................................................................... 250
Logiczny operator alternatywy — || ....................................................................... 250
Logiczny operator koniunkcji — && .................................................................... 252
Operator negacji logicznej — ! .............................................................................. 257
O operatorach logicznych ....................................................................................... 259
Zapis alternatywny ................................................................................................. 260
Biblioteka cctype .......................................................................................................... 261
Operator ?: .................................................................................................................... 263
Instrukcja switch .......................................................................................................... 265
Użycie enumeratorów jako etykiet ......................................................................... 269
switch versus if else ................................................................................................ 270
Instrukcje break i continue ........................................................................................... 270
Uwagi o programie ................................................................................................. 272
Pętle wczytywania liczb ............................................................................................... 273
Uwagi o programie ................................................................................................. 277
Proste wejście-wyjście z pliku ...................................................................................... 277
Tekstowe wejście-wyjście i pliki tekstowe .............................................................. 277
Zapis do pliku tekstowego ...................................................................................... 279
Odczyt danych z pliku tekstowego ......................................................................... 283
Podsumowanie .............................................................................................................. 288
Pytania sprawdzające ................................................................................................... 289
Ćwiczenia programistyczne ......................................................................................... 291
ROZDZIAŁ 7 Funkcje — składniki programów w C++ ........................................... 295
Funkcje w skrócie ......................................................................................................... 295
Definiowanie funkcji .............................................................................................. 296
Prototypowanie i wywoływanie funkcji .................................................................. 299
Parametry funkcji i przekazywanie przez wartość ...................................................... 302
Wiele parametrów ................................................................................................... 304
Jeszcze jedna funkcja dwuargumentowa ................................................................ 306
Funkcje i tablice ........................................................................................................... 309
Jak wskaźniki umożliwiają tworzenie funkcji przetwarzających tablice? ............. 310
Skutki użycia tablic jako parametrów .................................................................... 311
X
Zgłoś jeśli naruszono regulamin