> C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1426512600
> Typy wyliczeniowe * Służą do łatwiejszej kontroli nad stałymi. * Ustawianie parametrów o ściśle określonym zbiorze wartości. *...i w zasadzie tylko do tego. * Obostrzenia jak do zmiennych: deklaracja przed użyciem ++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 2 / 12
> Struktury * Takie kontenery, typy złożone z kilku pól różnych typów. * Żeby z niego skorzystać, trzeba zadeklarować nową zmienną o typie przez nas zdefiniowanym. ++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 3 / 12
> Unie * Takie kontenery, typy złożone z kilku pól różnych typów, ale tylko jedno pole może być naraz ustawione. * Służą do zmniejszenia zajętości pamięci. * Rozmiar unii wynika z rozmiaru największego ze składowych elementów. ++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 4 / 12
> Ćwiczenia wybierz dwa 1. Napisz program do obsługi książki adresowej. Każdy kontakt to oddzielna struktura (imię, nazwisko, gg). Program ma umożliwiać zapisanie do 100 kontaktów, odczyt całej książki adresowej, szukanie konkretnej osoby po nazwisku. 2. Napisz program wykonujący działania na dwóch liczbach zespolonych podawanych z klawiatury (każda liczba to struktura): dodawanie, odejmowanie, mnożenie. 3. Zadeklaruj zmienną typu enum w której zapiszesz stałe określające z ilu jednostek czasu składa się rok (tj. np. 4 kwartały, 12 miesięcy, 365 dni, x godzin, y minut, z sekund). Następnie sprawdzaj, ile dni/godzin/sekund zostało do końca roku. 4. Użytkownik ma bazę danych dłużników. Ich długi różnią się o złotówkę. Najmniejszy dług wynosi 456 zł. Po wpisaniu imienia dłużnika otrzymuje kwotę długu. C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 5 / 12
> Konwersje napis <-> liczba C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 6 / 12
C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 7 / 12
> Ćwiczenie Napisz aplikację, która na wejściu dostaje napis postaci: W Roku Pańskim 1345, władca Henryk 12, na rzecz swoich 143209 poddanych uchwalił dekret o 20 procentowej zniżce podatków. Twoim zadaniem jest wyłuskać wszystkie liczby i wyświetlić ich sumę. C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 8 / 12
> Ćwiczenie Napisz aplikację, która na wejściu dostaje napis postaci: W Roku Pańskim 1345, władca Henryk 12, na rzecz swoich 143209 poddanych uchwalił dekret o 20 procentowej zniżce podatków. Twoim zadaniem jest wyłuskać wszystkie liczby i wyświetlić ich sumę. Podpowiedź: przy podziale na wyrazy można skorzystać z: while ( getline ( strumień_źródłowy, bufor_na_wyraz, znak_rozdzielający) ) Przykładowo: while ( getline ( ss, wyraz, ) ) gdzie: ss wypełniony strumień stringstream wyraz zmienna typu string C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 8 / 12
> Zmiany trybu formatowania width (int) określa minimalną liczbę znaków do wypisania liczby; działa tylko raz! domyślnie: tyle, ile potrzeba poczytaj: setw(int) z iomanip fill (char) wypełnia podanym znakiem domyślnie: spacja poczytaj: setfill(char) z iomanip precision (int) dokładność wypisywania liczb zmiennoprzecinkowych domyślnie: 6 miejsc (oprócz nieznaczących zer) poczytaj: setprecision(int) z iomanip int liczba = 13; cout.width(4); cout << liczba << endl; cout.fill(. ); cout.precision(9); ++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 9 / 12
> Ćwiczenie Wyświetl ładnie tabliczkę mnożenia (10x10) na ekran. Ładnie, to znaczy tak, aby poszczególne elementy były wyrównane do prawej i zajmowały tyle samo miejsca. Wykonaj ćwiczenie używając cout. Poczytaj o printf. Wykonaj ćwiczenie z użyciem tej komendy. C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 10 / 12
> Praca domowa Poczytaj o instrukcjach preprocesora (#define, #include, #error, makrach). Za pomocą tej wiedzy napisz kilka szybkich makr automatyzujących liczenie np. sinusa lub cosinusa. C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 11 / 12
slán leat C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia 12 / 12