wstęp do programowania w języku c++ helion.pdf

(6166 KB) Pobierz
4
Wstęp do programowania w języku C++
Zmienne logiczne ..................................................................................................... 62
Zmienne
łańcuchowe
............................................................................................... 63
Wypisywanie zawartości zmiennych ....................................................................... 64
Rzutowanie typów zmiennych ................................................................................. 67
Badanie rozmiaru zmiennych w pamięci ................................................................. 68
Pobieranie danych z klawiatury ...................................................................................... 69
Podsumowanie ............................................................................................................... 73
Rozdział 5. Tablice, pętle i wyrażenia warunkowe .............................................. 75
Tablice ............................................................................................................................ 76
Deklarowanie zmiennych tablicowych ..................................................................... 76
Zapisywanie i odczytywanie elementów tablicy ...................................................... 77
Tablice wielowymiarowe ......................................................................................... 77
Zmienne
łańcuchowe
jako tablice ............................................................................ 82
Skracanie wyrażeń algebraicznych ................................................................................. 83
Wyrażenia warunkowe ................................................................................................... 86
Instrukcja if .............................................................................................................. 88
Uproszczone wyrażenie warunkowe ........................................................................ 91
Pętle ................................................................................................................................ 93
Pętle typu while ........................................................................................................ 94
Pętle typu do…while ................................................................................................ 96
Pętle typu for ............................................................................................................ 98
Przerywanie pętli .................................................................................................... 101
Podsumowanie ............................................................................................................. 102
Rozdział 6. Programowanie proceduralne ........................................................ 105
Deklarowanie i wywoływanie podprogramów ............................................................. 106
Parametry i zmienne w podprogramach ....................................................................... 109
Zmienne globalne i lokalne .................................................................................... 109
Statyczne zmienne lokalne ..................................................................................... 113
Przekazywanie parametrów podprogramom .......................................................... 115
Parametry domyślne ............................................................................................... 119
Zwracanie danych przez funkcję ............................................................................ 120
Zwracanie danych poprzez parametry .................................................................... 124
Parametry tekstowe ................................................................................................ 127
Przerywanie działania programu z wnętrza podprogramu ...................................... 128
Programy przykładowe ................................................................................................. 129
Zamiana kropki dziesiętnej na przecinek ............................................................... 130
Eleganckie wczytywanie tekstu z klawiatury ......................................................... 134
Gra „Tor saneczkowy” ........................................................................................... 137
Podsumowanie ............................................................................................................. 143
Rozdział 7. Wyliczenia, struktury, napisy ......................................................... 145
Wyliczenia .................................................................................................................... 145
Definiowanie wyliczenia ........................................................................................ 146
Wartości liczbowe wyliczeń ................................................................................... 147
Deklarowanie i używanie wyliczeń ........................................................................ 148
Wyrażenie warunkowe switch ............................................................................... 148
Zamiana wyliczeń na liczby ................................................................................... 156
Struktury danych .......................................................................................................... 157
Definiowanie struktury danych .............................................................................. 158
Deklarowanie zmiennej strukturalnej ..................................................................... 159
Odwoływanie się do struktur i elementów struktury .............................................. 160
Kopiowanie struktur ............................................................................................... 161
Spis treści
5
Napisy .......................................................................................................................... 161
Kopiowanie zawartości zmiennych
łańcuchowych
................................................ 162
Dołączanie tekstu do zmiennej ............................................................................... 163
Porównywanie tekstu ............................................................................................. 164
Wyszukiwanie tekstu ............................................................................................. 165
Podsumowanie ............................................................................................................. 168
Rozdział 8. Operacje wejścia-wyjścia .............................................................. 171
Standardowe wejście i standardowe wyjście ................................................................ 172
Standardowe wyjście .............................................................................................. 172
Standardowe wyjście komunikatów błędów .......................................................... 174
Standardowe wejście .............................................................................................. 175
Tworzenie filtru danych ......................................................................................... 177
Parametry działania programu ...................................................................................... 182
Parametry podawane przy uruchamianiu ............................................................... 182
Zwracanie kodu błędu ............................................................................................ 185
Dostęp do plików ......................................................................................................... 185
Własne potoki danych ............................................................................................ 186
Otwieranie pliku ..................................................................................................... 186
Zamykanie pliku .................................................................................................... 188
Testowanie faktu otwarcia pliku ............................................................................ 188
Sprawdzanie faktu dotarcia do końca pliku ............................................................ 189
Odczytywanie i zapisywanie danych ...................................................................... 189
Program szpaltujący ............................................................................................... 190
Zapisywanie i odczytywanie struktur danych ........................................................ 195
Zmiana aktualnej pozycji wewnątrz pliku .............................................................. 201
Zapisywanie i odczytywanie napisów .................................................................... 208
Podsumowanie ............................................................................................................. 212
Rozdział 9. Pamięć operacyjna i wskaźniki ...................................................... 215
Informacje podstawowe ............................................................................................... 216
Typy bloków pamięci ............................................................................................. 216
Terminologia .......................................................................................................... 216
Wskaźniki ..................................................................................................................... 217
Deklarowanie wskaźników .................................................................................... 218
Wskazywanie na zmienne ...................................................................................... 218
Odczytywanie i zapisywanie danych wskazywanych przez wskaźnik ................... 220
Wskaźniki a struktury ............................................................................................ 221
Wskaźniki a tablice ................................................................................................ 221
Wskaźniki a zmienne
łańcuchowe
......................................................................... 222
Operacje na wskaźnikach ....................................................................................... 222
Pamięć przydzielana dynamicznie ................................................................................ 225
Alokowanie bloku pamięci ..................................................................................... 227
Dealokowanie bloku pamięci ................................................................................. 229
Wypełnianie i zerowanie bloku pamięci ................................................................ 232
Kopiowanie bloku pamięci ..................................................................................... 234
Dynamiczne struktury danych ...................................................................................... 236
Lista jednostronnie
łączona
.................................................................................... 237
Lista dwustronnie
łączona
...................................................................................... 241
Stos ........................................................................................................................ 245
Podsumowanie ............................................................................................................. 248
6
Wstęp do programowania w języku C++
Rozdział 10. Programowanie obiektowe ............................................................ 251
Struktury danych .......................................................................................................... 252
Deklaracja struktury ............................................................................................... 252
Konstruktor ............................................................................................................ 252
Konstruktory pobierające parametry ...................................................................... 253
Konstruktor z parametrami domyślnymi ................................................................ 255
Destruktor .............................................................................................................. 255
Funkcje składowe ................................................................................................... 258
Dziedziczenie ............................................................................................................... 264
Dziedziczenie proste .............................................................................................. 264
Prawa dostępu do pól i funkcji ............................................................................... 267
Struktury a klasy .................................................................................................... 270
Dziedziczenie wielokrotne ..................................................................................... 271
Dziedziczenie a konstruktory ................................................................................. 272
Dziedziczenie a destruktory ................................................................................... 273
Pełna wersja programu-magazynu ................................................................................ 273
Nakrywanie funkcji i funkcje wirtualne ....................................................................... 280
Nakrywanie funkcji ................................................................................................ 280
Funkcje nakryte a wskaźniki do obiektów ............................................................. 285
Funkcje wirtualne ................................................................................................... 287
Funkcje prawdziwie wirtualne ............................................................................... 289
Operator this ................................................................................................................. 290
Przeciążanie operatorów ............................................................................................... 291
Tworzenie operatorów ........................................................................................... 292
Operatory ++ i -- .................................................................................................... 295
Operator indeksowy [] ............................................................................................ 297
Konstruktor kopiujący ............................................................................................ 299
Operator przypisania a konstruktor kopiujący ........................................................ 300
Statyczne pola i funkcje składowe klas ........................................................................ 301
Podsumowanie ............................................................................................................. 303
Rozdział 11. Szablony C++ ............................................................................... 309
Szablony funkcji ........................................................................................................... 310
Szablony klas ............................................................................................................... 313
Tworzenie szablonu klasy ...................................................................................... 314
Szablony z parametrami ......................................................................................... 314
Struktury danych realizowane za pomocą szablonów .................................................. 315
Lista dwustronnie
łączona
...................................................................................... 316
Stos ........................................................................................................................ 325
Podsumowanie ............................................................................................................. 328
Rozdział 12. Obsługa sytuacji wyjątkowych ....................................................... 331
Czym jest sytuacja wyjątkowa ..................................................................................... 332
Czy obsługa sytuacji wyjątkowych jest szybka ............................................................ 332
Tworzenie bloku instrukcji mogących spowodować błąd ............................................ 333
Tworzenie bloku instrukcji obsługujących błędy ......................................................... 334
Generowanie własnych sytuacji wyjątkowych ............................................................. 334
Różnicowanie obsługi sytuacji wyjątkowych ............................................................... 337
Zmienne i obiekty a blok instrukcji try ......................................................................... 339
Dynamiczna alokacja pamięci a blok instrukcji try ...................................................... 341
Sytuacje wyjątkowe a destruktory ................................................................................ 343
Sytuacje wyjątkowe a konstruktory .............................................................................. 343
Przekazywanie informacji o przyczynie zgłoszenia sytuacji wyjątkowej ..................... 343
Podsumowanie ............................................................................................................. 347
Spis treści
7
Rozdział 13. Budowanie programów wielomodułowych ...................................... 349
Testowanie funkcjonowania ......................................................................................... 349
Asercje ................................................................................................................... 350
Kompilowanie programu w wersji finalnej ............................................................ 352
Zastępowanie asercji własnymi fragmentami kodu ................................................ 354
Uruchamianie zewnętrznych programów ..................................................................... 356
Dzielenie programów na moduły ................................................................................. 358
Wydzielanie modułu bibliotecznego ...................................................................... 358
Kompilowanie programu wielomodułowego ......................................................... 361
Pliki nagłówkowe ................................................................................................... 363
Wielomodułowe programy obiektowe ................................................................... 364
Zmienne globalne w programach wielomodułowych ............................................. 367
Przestrzenie nazw ......................................................................................................... 368
Tworzenie przestrzeni nazw ................................................................................... 368
Używanie przestrzeni nazw .................................................................................... 369
Wymuszanie użycia przestrzeni nazw .................................................................... 371
Podsumowanie ............................................................................................................. 373
Dodatki ......................................................................................375
Dodatek A Tabela kodów znaków ASCII ......................................................... 377
Dodatek B Polskie znaki diakrytyczne w programach pisanych w języku C++ ... 383
Skorowidz ..................................................................................... 387
Zgłoś jeśli naruszono regulamin