język c++. szkoła programowania. wydanie v full.pdf

(24721 KB) Pobierz
888044418.001.png
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
Dodatkowe przykłady funkcji i tablic ..................................................................... 314
Funkcje korzystające z zakresów tablic .................................................................. 320
Wskaźniki i modyfikator const ............................................................................... 322
Funkcje i tablice dwuwymiarowe ................................................................................. 325
Funkcje i łańcuchy w stylu C ....................................................................................... 327
Funkcje z łańcuchami w stylu C jako parametrami ............................................... 327
Funkcje zwracające łańcuchy w formacie C .......................................................... 329
Funkcje i struktury ....................................................................................................... 331
Przekazywanie i zwracanie struktur ....................................................................... 332
Inny przykład użycia funkcji i struktur .................................................................. 334
Przekazywanie adresu struktury ............................................................................. 339
Funkcje i obiekty klasy string ...................................................................................... 341
Rekurencja .................................................................................................................... 343
Rekurencja w pojedynczym wywołaniu ................................................................. 343
Rekurencja w wielu wywołaniach .......................................................................... 345
Wskaźniki na funkcje ................................................................................................... 347
Wskaźniki na funkcje — podstawy ........................................................................ 347
Przykład użycia wskaźników na funkcje ................................................................ 350
Podsumowanie .............................................................................................................. 351
Pytania sprawdzające ................................................................................................... 352
Ćwiczenia programistyczne ......................................................................................... 353
ROZDZIAŁ 8 Funkcje — zagadnienia zaawansowane ............................................. 357
Funkcje inline ............................................................................................................... 357
Zmienne referencyjne ................................................................................................... 361
Tworzenie zmiennej referencyjnej .......................................................................... 361
Referencje jako parametry funkcji .......................................................................... 364
Właściwości referencji ............................................................................................ 368
Ostrożnie ze zwracaniem referencji ....................................................................... 375
Użycie referencji z obiektami ................................................................................. 376
Obiekty po raz wtóry — obiekty, dziedziczenie i referencje .................................. 380
Kiedy korzystać z referencji jako parametrów? ..................................................... 383
Parametry domyślne ..................................................................................................... 384
Uwagi o programie ................................................................................................. 387
Przeciążanie funkcji ..................................................................................................... 387
Przykład przeciążania funkcji ................................................................................ 390
Kiedy korzystać z przeciążania funkcji? ................................................................ 392
Szablony funkcji ........................................................................................................... 393
Przeciążone szablony .............................................................................................. 397
Specjalizacje jawne ................................................................................................. 399
Tworzenie egzemplarzy i specjalizacje .................................................................. 404
Którą wersję funkcji kompilator wybierze? ........................................................... 406
Podsumowanie .............................................................................................................. 412
Pytania sprawdzające ................................................................................................... 413
Ćwiczenia programistyczne ......................................................................................... 414
XI
Zgłoś jeśli naruszono regulamin