wstep-do-programowania-w-jezyku-c++ pełna wersja.pdf

(12589 KB) Pobierz
709973971 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Wstêp do
programowania
w jêzyku C++
SPIS TREŒCI
KATALOG KSI¥¯EK
KATALOG ONLINE
Autor: Rados³aw Sokó³
ISBN: 83-246-0179-1
Format: B5, stron: 400
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Jêzyki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych
mo¿liwoœciach. Wykorzystywane s¹ do tworzenia systemów operacyjnych
i oprogramowania u¿ytkowego. Dziêki niskiemu poziomowi abstrakcji nadaj¹ siê
równie¿ do tworzenia programów rezydentnych i sterowników urz¹dzeñ. C++,
opracowany w latach 1983-1985, jest w pe³ni obiektowym jêzykiem programowania
pozwalaj¹cym na prost¹ implementacjê nawet rozbudowanych algorytmów i struktur
danych. Jego popularnoœæ wyra¿a siê w ogromnej liczbie aplikacji tworzonych za jego
pomoc¹, bogactwie dostêpnych narzêdzi programistycznych i tysi¹cach witryn WWW
poœwiêconych temu jêzykowi.
Ksi¹¿ka „Wstêp do programowania w jêzyku C++” to podrêcznik opisuj¹cy zasady
tworzenia aplikacji za pomoc¹ C++. Dowiesz siê z niej, jak zainstalowaæ kompilator
MinGW i edytor kodu Ÿród³owego Crimson Edit, poznasz podstawowe elementy
i konstrukcje jêzyka C++ i w oparciu o zdobyt¹ wiedzê napiszesz proste programy.
Nauczysz siê implementowaæ operacje wejœcia i wyjœcia, zarz¹dzaæ pamiêci¹ i tworzyæ
mechanizmy obs³ugi b³êdów. Przeczytasz tak¿e o programowaniu obiektowym
i wykorzystasz mechanizmy obiektowe w swoich aplikacjach.
Instalacja oprogramowania narzêdziowego
Proces tworzenia programów w jêzyku C++
Deklarowanie zmiennych
Sterowanie przebiegiem dzia³ania programu
Struktury danych
Operacje wejœcia i wyjœcia
Przydzielanie pamiêci i stosowanie wskaŸników
Programowanie obiektowe
Korzystanie z szablonów
Obs³uga wyj¹tków
Budowanie aplikacji wielomodu³owych
Jeœli chcesz ³atwo i szybko opanowaæ podstawy C++, siêgnij po tê ksi¹¿kê
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
709973971.001.png 709973971.002.png 709973971.003.png 709973971.004.png
Spis treści
Wstęp .............................................................................................. 9
Część I Oprogramowanie narzędziowe ........................................15
Rozdział 1. Instalacja pakietu MinGW ............................................................... 17
Instalacja pakietu MinGW .............................................................................................. 17
Konfiguracja systemu w celu łatwego korzystania z narzędzi pakietu MinGW ............. 22
Testowanie działania pakietu MinGW ........................................................................... 24
Rozdział 2. Crimson Editor: edytor programisty ................................................. 27
Instalacja edytora Crimson Editor .................................................................................. 29
Uruchamianie edytora .................................................................................................... 31
Dostosowywanie programu do własnych potrzeb .......................................................... 32
Przechodzenie do wybranego wiersza programu ............................................................ 35
Rozdział 3. Tworzenie i kompilacja programów w języku C++ ............................. 37
Translator, interpreter, kompilator .................................................................................. 37
Translator ................................................................................................................. 37
Interpreter ................................................................................................................. 37
Kompilator ............................................................................................................... 38
Kompilator JIT ......................................................................................................... 39
Problem jajka i kury ................................................................................................. 39
Twój pierwszy program .................................................................................................. 40
Kompilacja programu ..................................................................................................... 43
Opcje kompilacji ............................................................................................................ 43
Uruchamianie skompilowanego programu ..................................................................... 45
Podsumowanie ............................................................................................................... 45
Część II Język C++ .....................................................................47
Rozdział 4. Wprowadzanie, wyprowadzanie i przechowywanie danych ................. 49
Funkcja main() ............................................................................................................... 50
Umieszczanie tekstu na ekranie ...................................................................................... 52
Komentarze .................................................................................................................... 56
Zmienne ......................................................................................................................... 57
Deklaracje zmiennych .............................................................................................. 58
Zmienne typu rzeczywistego .................................................................................... 61
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
Zgłoś jeśli naruszono regulamin