Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00616 008417 10491663 na godz. na dobę w sumie
C++. Ćwiczenia zaawansowane - książka
C++. Ćwiczenia zaawansowane - książka
Autor: Liczba stron: 120
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-766-3 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> c++ - programowanie
Porównaj ceny (książka, ebook, audiobook).

'C++. Ćwiczenia zaawansowane' to kontynuacja książki 'C++. Ćwiczenia praktyczne' przeznaczona dla tych, którzy chcą pogłębiać swoją wiedzę o najpopularniejszym obecnie języku programowania. Przedstawia kolejne, niezwykle istotne zagadnienia związane z programowaniem w C++, mianowicie zasady programowania obiektowego. Przeczytasz o klasach, metodach i szablonach oraz poznasz w praktyce metody stosowania tych mechanizmów we własnych programach. Nauczysz się technik stosowania gotowych struktur danych, takich jak dynamiczna tablica, kolejka, lista oraz stos.

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

Darmowy fragment publikacji:

C++. Æwiczenia zaawansowane Autor: Andrzej Stasiewicz ISBN: 83-7361-766-3 Format: B5, stron: 120 „C++. Æwiczenia zaawansowane” to kontynuacja ksi¹¿ki „C++. Æwiczenia praktyczne” przeznaczona dla tych, którzy chc¹ pog³êbiaæ swoj¹ wiedzê o najpopularniejszym obecnie jêzyku programowania. Przedstawia kolejne, niezwykle istotne zagadnienia zwi¹zane z programowaniem w C++, mianowicie zasady programowania obiektowego. Przeczytasz o klasach, metodach i szablonach oraz poznasz w praktyce metody stosowania tych mechanizmów we w³asnych programach. Nauczysz siê technik stosowania gotowych struktur danych, takich jak dynamiczna tablica, kolejka, lista oraz stos. • Instalacja ġrodowiska programistycznego • Operacje zapisu i odczytu plików • Klasy — definiowanie i stosowanie • Konstruktorzy i destruktor klas • Hierarchia klas i dziedziczenie • Obs³uga wyj¹tków • Stosowanie szablonów IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Spis treści Wprowadzenie...................................................n...................................................n............. ...................................... 5 Rozdział 1. Piszesz pierwsze programy...................................................n........................................................................... 9 Instalacja środowiska programistycznego .......................................................................... 9 Funkcja main() i ogólny szkic programu .......................................................................... 11 Słowo kluczowe namespace, czyli przestrzenie nazw ...................................................... 14 Podsumowanie.................................................................................................................. 16 Rozdział 2. Operacje na plikach...................................................n.........................................................................................17 Otwieranie plików do zapisu i odczytu............................................................................. 17 Modyfikowanie standardowych operacji wejścia i wyjścia.............................................. 20 Podsumowanie.................................................................................................................. 23 Rozdział 3. Klasy, czyli Twoje własne typy danych...................................................n.................................................25 Deklarowanie i definiowanie klasy................................................................................... 25 Funkcje zaprzyjaźnione z klasami .................................................................................... 28 Statyczne składniki klasy.................................................................................................. 30 Funkcje statyczne klasy .................................................................................................... 32 Pola bitowe w klasach ...................................................................................................... 33 Słowo kluczowe this......................................................................................................... 34 Podsumowanie.................................................................................................................. 35 Rozdział 4. Konstruktory i destruktor ...................................................n............................................................................ 37 Konstruktor bezargumentowy, zwany domyślnym........................................................... 37 Konstruktory merytoryczne .............................................................................................. 38 Lista inicjalizacyjna konstruktora..................................................................................... 39 Konstruktor kopiujący ...................................................................................................... 40 Konstruktory konwertujące .............................................................................................. 42 Konstruktor a składniki stałe klasy ................................................................................... 42 Destruktor ......................................................................................................................... 43 Gdy w klasie brakuje konstruktora… ............................................................................... 44 Podsumowanie.................................................................................................................. 46 Rozdział 5. Przeciążanie operatorów ...................................................n............................................................................. 47 Operatory zadeklarowane w klasie ................................................................................... 47 Operator przypisania = ..................................................................................................... 50 Operatory zadeklarowane poza klasą ............................................................................... 52 Operator wyprowadzania danych ................................................................................ 53 Podsumowanie.................................................................................................................. 54 4 C++. Ćwiczenia zaawansowane Rozdział 6. Konwersje, czyli przekształcanie danych jednych typów w inne........................................... 55 Operator konwersji ........................................................................................................... 55 Niejawne konwersje za pomocą operatora konwersji....................................................... 57 Jednoargumentowe konstruktory konwersji ..................................................................... 58 Niejawne konwersje za pomocą konstruktora .................................................................. 58 Konstruktor jednoargumentowy explicit .......................................................................... 59 Operator static_cast .......................................................................................................... 60 Operator const_cast .......................................................................................................... 61 Operator dynamic_cast ..................................................................................................... 62 Operator reinterpret_cast .................................................................................................. 63 Podsumowanie.................................................................................................................. 63 Rozdział 7. Dziedziczenie, czyli hierarchie klas...................................................n...................................................... 65 Dziedziczenie po klasie a zawieranie klasy ...................................................................... 65 Rodzaje dziedziczenia ...................................................................................................... 67 Konstruktory klasy pochodnej.......................................................................................... 70 Konstruktor kopiujący klasy pochodnej ........................................................................... 72 Operator przypisania w klasie pochodnej ............................................................................ 73 Destruktor w klasie pochodnej ......................................................................................... 74 Funkcje wirtualne ............................................................................................................. 75 Funkcje czysto wirtualne i klasy abstrakcyjne.................................................................. 76 Polimorfizm...................................................................................................................... 77 Destruktor wirtualny......................................................................................................... 79 Podsumowanie.................................................................................................................. 80 Rozdział 8. Obsługa sytuacji wyjątkowych...................................................n................................................................ 83 Ogólny schemat obsługi wyjątków................................................................................... 83 Zgłaszanie i identyfikacja wyjątków ................................................................................ 84 Klasy wyjątków ................................................................................................................ 86 Wyjątki i nowy styl pisania nagłówków funkcji............................................................... 88 Hierarchia klas wyjątków ................................................................................................. 90 Wyjątki generowane przez funkcje biblioteczne .............................................................. 91 Podsumowanie.................................................................................................................. 93 Rozdział 9. Szablony funkcji i klas...................................................n.................................................................................. 95 Szablony funkcji............................................................................................................... 95 Szablony klas.................................................................................................................... 97 Domyślne typy — parametry szablonów ........................................................................ 99 Podsumowanie................................................................................................................ 100 Rozdział 10. Kontener vector...................................................n............................................................................................... 101 Rozmiary wektorów ....................................................................................................... 101 Iteratory .......................................................................................................................... 104 Wyszukiwanie elementu w wektorze.............................................................................. 107 Sortowanie elementów wektora...................................................................................... 108 Tablice wielowymiarowe................................................................................................ 109 Tablice klas..................................................................................................................... 110 Zewnętrzne funkcje relacji (predykaty) .......................................................................... 114 Podsumowanie................................................................................................................ 116 Zakończenie ...................................................n...................................................n.............. .......................................117 Rozdział 2. Operacje na plikach Otwieranie plików do zapisu i odczytu Ćwiczenie 2.1. Otwórz plik dyskowy o nazwie test.txt. W pierwszej linii zapisz w nim swoje nazwisko, w drugiej 10 kolejnych liczb naturalnych, rozdzielonych spacjami (rysunki 2.1a i 2.1b): KPENWFGKQUVTGCO KPENWFGHUVTGCO KPENWFGUVTKPI WUKPIPCOGURCEGUVF KPVOCKP ] UVTKPIVGMUV EQWV2QFCLPCYKUMQ EKP VGMUV QHUVTGCORNKM VGUVVZV  KH RNKM ] EQWV1VYCTVQRNKMVGUVVZVGPFN RNKMVGMUVGPFN EQWV9RKUCPQFQPKGIQPCYKUMQGPFN HQT KPVKK K ] EQWV9RKUCPQNKEDGKGPFN RNKMK _ _ _ C++. Ćwiczenia zaawansowane 18 Rysunek 2.1a. Efekt działania programu, wpisującego dane do pliku Rysunek 2.1b. Zawartość pliku test.txt, utworzonego w programie Standardowy plik do zapisu jest reprezentowany przez obiekt typu QHUVTGCO. Otwarcie pliku następuje w chwili deklaracji obiektu RNKM za pomocą konstruktora, którego argu- mentem jest dyskowa nazwa pliku. Zapis w pliku realizuje standardowy operator stru- mieniowego wyjścia . Ćwiczenie 2.2. Napisz program, który odczyta dane z pliku utworzonego w poprzednim ćwiczeniu (ry- sunek 2.2): KPENWFGKQUVTGCO KPENWFGHUVTGCO KPENWFGUVTKPI WUKPIPCOGURCEGUVF KPVOCKP ] UVTKPIVGMUV KPVKC KHUVTGCORNKM VGUVVZV  KH RNKM ] RNKM VGMUV EQWVVGMUVGPFN HQT KK K ] RNKM C EQWVC _ _ _ Rozdział 2. (cid:1) Operacje na plikach 19 Rysunek 2.2. Efekt działania programu odczytującego dane z pliku tekstowego Odczytywany plik jest reprezentowany przez obiekt typu KHUVTGCO. Standardowy odczyt danych jest wykonywany za pomocą operatora . Musisz zapamiętać, że operator ten pomija białe znaki przed znakami, składającymi się na daną (porównaj ćwiczenia 2.4 i 2.5). Ćwiczenie 2.3. Napisz program, który odczyta wskazany plik tekstowy i zliczy znajdujące się w nim znaki „a” (rysunek 2.3). KPENWFGKQUVTGCO KPENWFGHUVTGCO KPENWFGUVTKPI WUKPIPCOGURCEGUVF KPVOCKP ] UVTKPIPCYC EQWV2QFCLPCYGRNKMW EKP PCYC KPVUWOC EJCTPCM KHUVTGCORNKM PCYCEAUVT  YJKNG RNKM PCM ] KH PCM C  UWOC _ EQWV2NKMPCYCCYKGTCUWOCNKVGTGM C  _ Rysunek 2.3. Wynik zliczenia liter „a” w tekście źródłowym niniejszego programu W konstruktorze strumienia plikowego: KHUVTGCORNKM PCYCEAUVT  wywołujesz funkcję EAUVT , która podaje klasyczny wskaźnik typu EJCT do tekstu zgromadzonego w obiekcie PCYC, mającego typ UVTKPI. 20 C++. Ćwiczenia zaawansowane Modyfikowanie standardowych operacji wejścia i wyjścia Ćwiczenie 2.4. Napisz program, który odczyta wskazany plik tekstowy i jego treść wyświetli na ekranie. Problemem jest właściwość pomijania przez standardowy operator wejścia odstępów przed istotnymi znakami (rysunek 2.4): KPENWFGKQUVTGCO KPENWFGHUVTGCO KPENWFGUVTKPI WUKPIPCOGURCEGUVF KPVOCKP ] UVTKPIPCYC EQWV2QFCLPCYGRNKMWFQY[UYKGVNGPKC EKP PCYC KHUVTGCORNKM PCYCEAUVT  EJCTPCM KH RNKM ] YJKNG RNKM PCM EQWVPCM _ _ Rysunek 2.4. Niewłaściwy rezultat działania programu Program działa niewłaściwie, bo operator pobierania danych pomija białe znaki. Wła- ściwość ta bardzo przydaje się przy wczytywaniu danych z klawiatury, ale tutaj nie jest potrzebna. Ćwiczenie 2.5. W poprzednim programie zmodyfikuj sposób współpracy operatora z obiektem plik, by nie pomijał białych znaków (rysunek 2.5): KPENWFGKQUVTGCO KPENWFGHUVTGCO KPENWFGUVTKPI WUKPIPCOGURCEGUVF KPVOCKP ] UVTKPIPCYC EQWV2QFCLPCYGRNKMWFQY[UYKGVNGPKC EKP PCYC Rozdział 2. (cid:1) Operacje na plikach 21 Rysunek 2.5. Efekt działania programu modyfikującego pracę operatora KHUVTGCORNKM PCYCEAUVT  EJCTPCM KH RNKM ] RNKM PQUMKRYU YJKNG RNKM PCM EQWVPCM _ _ Ćwiczenie 2.6. Niech program oczekuje dwóch parametrów, określanych w linii poleceń (porównaj ćwi- czenie 1.3) — nazw plików wejściowego i wyjściowego. Treść pliku wejściowego niech zostanie zaszyfrowana i zapisana w pliku wyjściowym (rysunek 2.6): KPENWFGKQUVTGCO KPENWFGHUVTGCO KPENWFGUVTKPI WUKPIPCOGURCEGUVF KPVOCKP KPVCTIEEJCT CTIX=? ] KH CTIE ] EQWV9NKPKKRQNGEGPRQFCLRNKMK _ GNUG ] EJCTPCM KHUVTGCOKP CTIX=?  QHUVTGCOQWV CTIX=?  KH KPQWV ] EQWV5[HTWLG CTIX=? KCRKUWLG CTIX=?  KP PQUMKRYU YJKNG KP PCM 22 Rysunek 2.6. Wynik szyfrowania pliku źródłowego z ćwiczenia 2.5 C++. Ćwiczenia zaawansowane ] KH PCM PCM  PCM//szyfrowanie QWVPCM _ _ _ _ Ćwiczenie 2.7. Niech program wyprowadzi do pliku tablice.info wartości sinusa i cosinusa dla kątów z zakresu od 0 do 180 stopni co 1 stopień z dokładnością do dwóch miejsc po przecinku. Niech informacja będzie starannie sformatowana (rysunek 2.7): KPENWFGKQUVTGCO KPENWFGHUVTGCO KPENWFGEOCVJ WUKPIPCOGURCEGUVF KPVOCKP ] EQWV)GPGTCELCRNKMW VCDNKEGKPHQ  QHUVTGCOQWV VCDNKEGKPHQ  KH QWV ] KPVUGT FQWDNGZ QWVYKFVJ UGT  QWVZ QWVYKFVJ UGT  QWVUKP Z  QWVYKFVJ UGT  QWVEQU Z GPFNGPFN Rozdział 2. (cid:1) Operacje na plikach 23 Rysunek 2.7. Tablice matematyczne, wygenerowane przez program QWVRTGEKUKQP  //dwa miejsca po przecinku QWVUJQYRQKPV//zawsze widać kropkę dziesiętną QWVHKZGF//liczby nie w notacji wykładniczej HQT KPVCNHCCNHC CNHC ] ZCNHC /A2+ QWVYKFVJ UGT  QWVCNHC QWVYKFVJ UGT  QWVUKP Z  QWVYKFVJ UGT  QWVEQU Z GPFN _ _ _ Funkcja YKFVJ ustala szerokość pola dla najbliższej operacji zapisu, a RTGEKUKQP określa liczbę miejsc po przecinku w liczbie rzeczywistej. Manipulator UJQYRQKPV naka- zuje wyświetlanie kropki dziesiętnej, nawet gdy nie jest to konieczne, natomiast HKZGF wymusza stosowanie zapisu dziesiętnego, a nie wykładniczego w stylu 1.2e-2. Podsumowanie Obiekty KHUVTGCO i QUVTGCO reprezentują wejście i wyjście do i z pliku dyskowego. Po- siadają konstruktory, umożliwiające łatwe kojarzenie z plikiem za pomocą jego nazwy. Odczytywanie i zapisywanie sformatowanych danych wykonują (między innymi) ope- ratory i . Operatory te są przeciążone i potrafią pracować z danymi różnych typów. Potrafisz też dalej je przeciążać, definiując pracę z własnymi typami danych (porównaj ćwiczenie 5.8). Obiekty reprezentujące wejście i wyjście posiadają kilka użytecznych funkcji formatu- jących (między innymi YKFVJ , RTGEKUKQP ) oraz manipulatorów (między innymi GPFN, UJQYRQKPV, HKZGF).
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

C++. Ćwiczenia zaawansowane
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ą: