Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00162 009717 11027728 na godz. na dobę w sumie
C++. Przewodnik dla początkujących - książka
C++. Przewodnik dla początkujących - książka
Autor: Liczba stron: 400
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-8920-0 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> c++ - programowanie
Porównaj ceny (książka, ebook, audiobook).

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:

Poznaj moc C++!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Jumping into C++ Tłumaczenie: Ireneusz Jakóbik ISBN: 978-83-246-8920-0 Jumping into C++. Copyright © 2012 by F. Alexander Allain All rights reserved. This book or any portion thereof may not be reproduced or used in any manner whatsoever without the express written permission of the author except for the use of brief quotations in a book review. Polish edition copyright © 2014 by Helion S.A. All rights reserved. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/cppppo.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/cppppo Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści Część I. Wskocz w C++ ................................................................................................... 13 Podziękowania ...................................................................................................................................14 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 Kup książkęPoleć książkę Spis treści 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 4 Kup książkęPoleć książkę Spis treści 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 5 Kup książkęPoleć książkę Spis treści Rozdział 9. Co zrobić, kiedy(cid:125) 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 6 Kup książkęPoleć książkę Spis treści 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 7 Kup książkęPoleć książkę Spis treści 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 8 Kup książkęPoleć książkę Spis treści 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 9 Kup książkęPoleć książkę Spis treści 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 10 Kup książkęPoleć książkę Spis treści 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 11 Kup książkęPoleć książkę Spis treści 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 12 Kup książkęPoleć książkę (cid:132) (cid:132) (cid:132) 3R O Z D Z I A Ł 3 Interakcja z użytkownikiem. Zapisywanie informacji w zmiennych Wiesz już, jak napisać prosty program wyświetlający informacje wprowadzone przez Ciebie — to jest przez programistę — oraz w jaki sposób opisywać programy za pomocą komentarzy. To całkiem nieźle, ale co zrobić, gdybyś chciał wejść w interakcję z użytkownikiem? Aby współdziałać z użytkownikiem, powinieneś mieć możliwość przyjmowania danych wej- ściowych, czyli informacji pochodzących spoza programu. W tym celu musisz dysponować jakimś miejscem na przechowanie tych danych. W programach dane wejściowe, a także inne informacje, są zapisywane w zmiennych. Istnieje kilka różnych typów zmiennych, które prze- chowują różne rodzaje informacji (na przykład liczby albo litery). Kiedy mówisz kompilato- rowi, że deklarujesz zmienną, powinieneś podać mu jej typ, a także nazwę. Najczęściej używane podstawowe typy zmiennych, z których będziesz korzystać, to char, int i double. Zmienna typu char przechowuje pojedynczy znak, zmienne typu int przechowują liczby całkowite (czyli liczby bez miejsc dziesiętnych), natomiast zmienne typu double prze- chowują liczby z miejscami dziesiętnymi. Każdy z tych typów jest zarazem słowem kluczowym używanym podczas deklarowania zmiennej. Deklarowanie zmiennych w C++ Zanim użyjesz zmiennej, powinieneś poinformować o tym kompilator, deklarując ją (kompi- lator jest bardzo czuły na punkcie wcześniejszego informowania go o wszystkim). Aby zade- klarować zmienną, należy skorzystać ze składni typ zmienna ; (zwróć uwagę na średnik!). Oto kilka przykładów deklaracji zmiennych: int liczba_calkowita; char litera; double liczba_dziesietna; W jednym wierszu można zadeklarować wiele zmiennych tego samego typu. Wszystkie zmienne powinny być rozdzielone przecinkami. int a, b, c, d; Zalecam jednak deklarowanie każdej ze zmiennych w osobnym wierszu, co ułatwia czytanie kodu. Kup książkęPoleć książkę Rozdział 3. Interakcja z użytkownikiem. Zapisywanie informacji w zmiennych Korzystanie ze zmiennych Wiesz już, jak powiedzieć kompilatorowi o zmiennych, ale w jaki sposób z nich korzystać? To proste — należy skorzystać z instrukcji cin w celu pobrania danych wejściowych, operatora wstawiania skierowanego w prawą stronę ( ) oraz ze zmiennej, do której chcemy „wstawić” wartość wpisaną przez użytkownika. Oto przykładowy program ilustrujący użycie zmiennej: Przykładowy kod 5.: czytaj_liczbe.cpp #include iostream using namespace std; int main () { int tojestliczba; cout Prosz(cid:218) wprowad(cid:283) liczb(cid:218): ; cin tojestliczba; cout Wprowadzi(cid:239)e(cid:258): tojestliczba ; } Rozłóżmy nasz kod na składniki i przeanalizujmy go wiersz po wierszu. Pierwszą część pro- gramu już znasz, a zatem skupmy się na ciele funkcji main. int tojestliczba; W wierszu tym zadeklarowano zmienną typu całkowitego tojestliczba. Następna nowa linia to: cin tojestliczba; Funkcja cin tojestliczba powoduje zapisanie wprowadzonej wartości w zmiennej tojest (cid:180)liczba. Zanim liczba zostanie odczytana przez program, użytkownik musi nacisnąć Enter. Co zrobić, gdy program błyskawicznie kończy działanie? Jeżeli Twój poprzedni program błyskawicznie kończył działanie i musiałeś użyć instrukcji cin.get (), aby temu przeciwdziałać, może się zdarzyć, że okno z obecnym programem także od razu zostanie zamknięte, nawet jeśli dołączysz wywołanie funkcji cin.get (). Możesz omi- nąć ten problem, dodając przed instrukcją cin.get () następujący wiersz: cin.ignore (); Funkcja ta odczytuje i pozbywa się znaku — w tym przypadku jest to Enter naciśnięty przez użytkownika. Tak! Kiedy użytkownik wprowadza do komputera dane, program odczytuje także ten znak. Nie jest on nam potrzebny i dlatego możemy się go pozbyć. Zazwyczaj powyższy wiersz będzie wymagany tylko wtedy, gdy używasz instrukcji cin.get () w celu wstrzymania działania programu w oczekiwaniu na naciśnięcie klawisza. Bez niego cin.get () wczyta znak nowego wiersza (Enter), a działanie Twojego programu zostanie od razu zakończone. Pamiętaj, że zmienna tojestliczba jest zadeklarowana jako liczba całkowita. Jeśli użytkownik wprowadzi liczbę z miejscami dziesiętnymi, zostanie ona obcięta (miejsca po przecinku będą 48 Kup książkęPoleć książkę Zmiana wartości zmiennych oraz ich porównywanie pomijane; na przykład 3,1415 zostanie odczytane jako 3). Po uruchomieniu programu spróbuj wpisać ciąg liter albo liczbę dziesiętną. Reakcja programu będzie zależeć od wprowadzonych danych, ale w żadnym przypadku nie będzie pożądana. Na razie nie zajmiemy się obsługą błędów, która jest potrzebna, aby radzić sobie w takich sytuacjach. cout Wprowadzi(cid:239)e(cid:258): tojestliczba ; W wierszu tym wypisywana jest liczba podana przez użytkownika. Zwróć uwagę, że przy wyświetlanej zmiennej nie użyto znaków cudzysłowu. Gdybyśmy wokół zmiennej tojestliczba zastosowali cudzysłowy, na ekranie pokazałby się napis Wprowadzi(cid:239)e(cid:258): tojestliczba. Brak znaków cudzysłowu informuje kompilator, że ma do czynienia ze zmienną i że przed wyświe- tleniem jej na ekranie powinien sprawdzić jej wartość w celu zastąpienia nazwy zmiennej jej treścią. Przy okazji, nie dziw się dwóm oddzielnym operatorom wstawiania umieszczonym w jednym wierszu. Taki zapis jest jak najbardziej poprawny, a informacje wyjściowe zostaną wyświetlone w odpowiednich miejscach. W rzeczywistości literały łańcuchowe (czyli napisy zawarte między cudzysłowami) muszą być oddzielane od zmiennych za pomocą operatorów wstawiania ( ). Próba wyświetlenia zmiennej razem z literałem łańcuchowym przy użyciu jednego tylko ope- ratora wywoła błąd o następujące treści: Z(cid:146)Y KOD cout Wprowadzi(cid:239)e(cid:258): tojestliczba; Tak jak w przypadku wszystkich innych funkcji, wiersz kończy się średnikiem. Jeśli o nim zapo- mnisz, podczas próby skompilowania programu kompilator wyświetli komunikat informujący o błędzie. Zmiana wartości zmiennych oraz ich porównywanie Odczytywanie i wyświetlanie zmiennych bardzo szybko robi się nudne. Zajmijmy się możli- wością modyfikowania zmiennych oraz wpływania na zachowanie programu w zależności od ich wartości. Dzięki temu będziemy mogli w różny sposób reagować na różne dane wprowa- dzane przez użytkownika. Zmiennej można przypisać wartość za pomocą operatora przypisania, którym jest znak równości =. int x; x = 5; Powyższy zapis nadaje zmiennej x wartość 5. Mógłbyś pomyśleć, że znak równości porównuje wartości z jego lewej i prawej strony, ale tak nie jest. W C++ do sprawdzania równości jest używany oddzielny operator, składający się z dwóch znaków równości ==. Ze znaku tego będziesz często korzystać w instrukcjach warunkowych albo pętlach. W kilku kolejnych rozdziałach będziemy używać operatora porównania podczas poznawania sposobów na wybieranie różnych ścieżek działania programu w zależności od danych wprowadzonych przez użytkownika. a == 5 // NIE przypisuje wartości 5 do zmiennej a, tylko sprawdza, czy zmienna ta jest równa 5. Na zmiennych możesz przeprowadzać operacje arytmetyczne. 49 Kup książkęPoleć książkę Rozdział 3. Interakcja z użytkownikiem. Zapisywanie informacji w zmiennych * Mnoży dwie wartości - Odejmuje jedną wartość od drugiej Dodaje dwie wartości Dzieli jedną wartość przez drugą + / Oto kilka przykładów: a = 4 * 6; // Daje w wyniku 24 (zwróć uwagę na użycie średnika oraz komentarza) a = a + 5; // Daje w wyniku poprzednią wartość zmiennej a powiększoną o 5 Skrócone zapisy na dodawanie i odejmowanie jedynki W C++ bardzo często zachodzi potrzeba zwiększenia zmiennej o jeden: int x = 0; x = x + 1; Z podobnym wzorcem będziesz mieć do czynienia w dalszej części tej książki, kiedy zaczniemy poznawać takie koncepcje jak pętle. Jest on do tego stopnia powszechny, że nawet istnieje operator, którego jedynym celem jest zwiększanie zmiennej o jeden: ++. Pokazany wcześniej kod można zapisać następująco: int x = 0; x++; Po wykonaniu powyższych instrukcji zmienna x przyjmie wartość 1. Operator ten jest znany pod nazwą operatora inkrementacji, a dodanie 1 do zmiennej nazywane jest inkrementacją tej zmiennej. Operator -- działa podobnie, tylko że odejmuje od zmiennej 1. Jest on znany pod nazwą ope- ratora dekrementacji, natomiast odjęcie 1 od zmiennej nazywane jest dekrementacją tej zmiennej. Wiedząc to, możesz domyślić się, skąd pochodzi nazwa C++. C++ bazuje na języku progra- mowania C. C++ znaczy dosłownie „C plus jeden”. C++ to bardziej C z pewnymi dodatkami niż zupełnie nowy język. Myślę, że gdyby twórcy C++ wiedzieli, o ile potężniejszy będzie ten język od C, nadaliby mu nazwę C do kwadratu. Istnieje podobny, skrócony operator umożliwiający dodanie dowolnej wartości do zmiennej: x += 5; // Dodaje 5 do x Są także operatory odejmowania, mnożenia i dzielenia: x -= 5; // Odejmuje 5 od x x *= 5; // Mnoży x przez 5 x /= 5; // Dzieli x przez 5 Operatory ++ i -- możesz umieszczać nie tylko po zmiennej, ale także przed zmienną: --x; ++y; Różnica między zapisami „przed” i „po” kryje się w wartości, jaka jest zwracana w danym wyrażeniu. Jeśli napiszesz: 50 Kup książkęPoleć książkę Poprawne i niepoprawne użycie zmiennych int x = 0; cout x++; Zostanie wyświetlone 0. Dzieje się tak dlatego, że pomimo zmodyfikowania zmiennej x została zwrócona jej wartość początkowa. Ponieważ operator ++ występuje po zmiennej, zwiększenie jej wartości ma miejsce już po jej odczytaniu. Jeżeli umieścisz operator przed zmienną, uzyskasz nową wartość: int x = 0; cout ++x; Zostanie wyświetlone 1, ponieważ najpierw nastąpi zwiększenie zmiennej x o 1, a dopiero później pobranie jej wartości. Znając wszystkie te operacje, możesz napisać w C++ niewielki kalkulator. Przykładowy kod 6.: kalkulator.cpp #include iostream using namespace std; int main() { int pierwszy_argument; int drugi_argument; cout Podaj pierwszy argument: ; cin pierwszy_argument; cout Podaj drugi argument: ; cin drugi_argument; cout pierwszy_argument * drugi_argument = (cid:180)pierwszy_argument * drugi_argument endl; cout pierwszy_argument + drugi_argument = (cid:180)pierwszy_argument + drugi_argument endl; cout pierwszy_argument / drugi_argument = (cid:180)pierwszy_argument / drugi_argument endl; cout pierwszy_argument
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

C++. Przewodnik dla początkujących
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: