wykład 2 Agata Półrola Wydział Matematyki i Informatyki...
Transcript of wykład 2 Agata Półrola Wydział Matematyki i Informatyki...
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Wstęp do programowaniawykład 2
Agata PółrolaWydział Matematyki i Informatyki UŁ
sem. zimowy 2016/2017
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Liczby
Korzystanie z liczn
C++ “zna” różne rodzaje liczb (różne typy liczbowe) i “potrafi”wykonywać na nich różne operacje arytmetyczne.
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Podstawowe działania na liczbach całkowitych
#include <iostream >using namespace std;int main(){
cout << "20 + 2 = " << 20+2 << endl;cout << "20 - 2 = " << 20-2 << endl;cout << "20 * 2 = " << 20*2 << endl;cout << "20 / 2 = " << 20/2 << endl;cout << "20 / 3 = " << 20/3 << endl;cout << "20 % 2 = " << 20%2 << endl;cout << "20 % 3 = " << 20%3 << endl;
return 0;}
użyte operatory arytmetyczne: + - dodawanie, − - odejmowanie, ∗- mnożenie, / - dzielenie, % - modulo (reszta z dzielenia)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Podstawowe działania na liczbachrzeczywistych
Liczby rzeczywiste zapisujemy z kropką dziesiętną(przecinek zamiast kropki nie jest dozwolony!!)
#include <iostream >using namespace std;int main(){
cout << "20 + 2.0 = " << 20+2.0 << endl;cout << "20 - 2.0 = " << 20 -2.0 << endl;cout << "20 * 2.0 = " << 20*2.0 << endl;cout << "20 / 2.0 = " << 20/2.0 << endl;cout << "20 / 2.1 = " << 20/2.1 << endl;
return 0;}
operatory arytmetyczne: + - dodawanie, − - odejmowanie, ∗ -mnożenie, / - dzielenie (nie ma operatora modulo!)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Dzielenie
dzielenie dwóch liczb całkowitych daje wynik będący liczbącałkowitą (wykonywane jest dzielenie całkowite - 20/2 daje10, 20/3 daje 6)
jeśli przynajmniej jedna z liczb jest rzeczywista, wynik jestliczbą rzeczywistą
... zatem jeśli chcemy uzyskać “poprawny” wynik dzielenia,musimy przynajmniej jedną z liczb zapisać z kropką dziesiętną(możliwe zapisy: 20.0/3 albo 20/3.0 albo 20.0/3.0)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Dzielenie
dzielenie dwóch liczb całkowitych daje wynik będący liczbącałkowitą (wykonywane jest dzielenie całkowite - 20/2 daje10, 20/3 daje 6)
jeśli przynajmniej jedna z liczb jest rzeczywista, wynik jestliczbą rzeczywistą
... zatem jeśli chcemy uzyskać “poprawny” wynik dzielenia,musimy przynajmniej jedną z liczb zapisać z kropką dziesiętną(możliwe zapisy: 20.0/3 albo 20/3.0 albo 20.0/3.0)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Literały
Literały są rodzajem stałych (wyrażeń o ustalonej, niezmiennejwartości). Umożliwiają umieszczenie w kodzie źródłowymprogramu konkretnych wartości (liczb, znaków, napisów),reprezentujac je za pomocą odpowiedniej notacji.Literały numeryczne reprezentują wartości liczbowe. Wyróżniamyliterały całkowite reprezentujące wartości całkowite oraz literałyzmiennoprzecinkowe (ang. floating-point literals) reprezentującewartości rzeczywiste.
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Literały całkowite
liczby dziesiętne: 12, -12, 1234
liczby ósemkowe (system o podstawie 8): 012, -012 (cyfryliczby są poprzedzone zerem)
liczby szesnastkowe (system o podstawie 16): 0xab, 0x12,-0X12, -0XAB (cyfry liczby są poprzedzone znakami 0x albo0X, cyfry w tym systemie to 0..9, a..f)
liczby binarne (system o podstawie 2) - zapis dozwolony odstandardu C++14: 0B001, -0b1111 (cyfry liczby poprzedzonesą znakami 0b albo 0B)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Literały całkowite - cd
Domyślnym typem literałów całkowitych nie mającychprzyrostka specyfikującego typ jest int. Przyrostkiumożliwiające przypisanie literału całkowitego do innego typuliczbowego to: (o typach – za chwilę)u lub U – typ unsigned intl lub L – typ long intll lub LL – typ long long int
(przyrostki można [odpowiednio] łączyć - np. ul oznaczaunsigned long int. Przykłady: 75l, 75ul, 75LL).
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Literały rzeczywiste
Reprezentują liczby rzeczywiste, z kropką dziesiętną i/lubwykładnikiem.
notacja “standardowa”: 12.3, -4.5
notacja naukowa (wykładncza) : -3.3e5, 4.6E-2
domyślnym typem literałów rzeczywistych jest double.Przyrostki umożliwiające przyisanie literału rzeczywistego doinnego typu rzeczywistego:f lub F – typ floatl lub L – typ long double
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Literały rzeczywiste
Reprezentują liczby rzeczywiste, z kropką dziesiętną i/lubwykładnikiem.
notacja “standardowa”: 12.3, -4.5
notacja naukowa (wykładncza) : -3.3e5, 4.6E-2domyślnym typem literałów rzeczywistych jest double.Przyrostki umożliwiające przyisanie literału rzeczywistego doinnego typu rzeczywistego:f lub F – typ floatl lub L – typ long double
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Typy liczbowe
W języku zdefiniowane są pewne (tzw. predefiniowane) typyliczbowe. Podstawowe to:
int, short int, long int, long long int służące doreprezentowania liczb całkowitych; każdy z nich może być zeznakiem (signed, domyślnie) lub bez znaku (unsigned).Przykład: unsigned short int - typ “krótki całkowity” bezznaku(dozwolone jest używanie skróconych nazw typów: short, long, long long )
float, double i long double służące do reprezentowanialiczb rzeczywistych
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Zakresy typów
Wartości danego typu T reprezentowane są w pamięci komputeraprzy użyciu pewnej, ustalonej dla danego typu, liczby bitów (jakociągi zer i jedynek).Z tego powodu każdy typ ma swój zakres - istnieje w nim wartośćnajmniejsza i największa
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Wyświetlenie zakresu typu int
#include <iostream >#include <limits >using namespace std;
int main(){
cout << "zakres int: od " << std:: numeric_limits <int >:: min() << "do " << std:: numeric_limits <int >:: max() << endl;
cout << "rozmiar wartosci typu int w bajtach: "<< sizeof(int) << endl;
return 0;}
Zakresy innych typów liczbowych można uzyskać w podobnysposób
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Zmienne
Aby móc zapamiętać (przechować) w pamięci komputerawprowadzoną z klawiatury albo wyliczoną w programie wartośćpewnego typu, musimy zdefiniować zmienną tego typu (angvariable)
w tym celu piszemytyp zmiennej nazwa zmiennej ; (e.g., int a; )nazwy zmiennych muszą być indentyfikatorami (nie będącymisłowami kluczowymi)wynik: w odpowiednim momencie uruchamiania programu wpamięci zostaje zarezerwowany pewien obszar o rozmiarzeodpowiednim dla przechowania wartości danego typu.Odwołujemy się do niego przez nazwę zmiennej.
można zdefiniować naraz kilka zmiennych tego samego typu:int a,b,c;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Zmienne
Aby móc zapamiętać (przechować) w pamięci komputerawprowadzoną z klawiatury albo wyliczoną w programie wartośćpewnego typu, musimy zdefiniować zmienną tego typu (angvariable)
w tym celu piszemytyp zmiennej nazwa zmiennej ; (e.g., int a; )nazwy zmiennych muszą być indentyfikatorami (nie będącymisłowami kluczowymi)wynik: w odpowiednim momencie uruchamiania programu wpamięci zostaje zarezerwowany pewien obszar o rozmiarzeodpowiednim dla przechowania wartości danego typu.Odwołujemy się do niego przez nazwę zmiennej.można zdefiniować naraz kilka zmiennych tego samego typu:int a,b,c;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Definicja a deklaracja
deklaracja informuje kompilator że dana nazwa jest już znana,ale nie powoduje alokacji (rezerwacji) pamięci(przykład: extern int a; - informuje że zmienna a jestzdefiniowana w innym pliku będącym częścią programu)
definicja określa dokładnie czym jest dany identyfikator.Zdefiniowanie zmiennej skutkuje zarezerwowaniem pamięci dlatej zmiennej
Każda definicja jest deklaracją, ale nie każda deklaracja jestdefinicją.
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Przypisanie
Wartość zmiennej może ulegać zmianie w trakcie działaniaprogramu
Operator przypisania (=) pozwala nadać zmiennej pewnąwartość
przypisywana wartość musi oczywiście mieścić się z zakresietypu do którego należy zmenna
zmienna, której nie przypisano w programie żadnej wartości,ma wartość przypadkową
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Przypisanie
Wartość zmiennej może ulegać zmianie w trakcie działaniaprogramu
Operator przypisania (=) pozwala nadać zmiennej pewnąwartośćprzypisywana wartość musi oczywiście mieścić się z zakresietypu do którego należy zmenna
zmienna, której nie przypisano w programie żadnej wartości,ma wartość przypadkową
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Przykład (Użycie instrukcji przypisania)
deklaracje zmiennych: int a,b,i;
i = 2;
a = 2+2;
b = a+i;weź wartość zmiennej a, dodaj do niej wartość zmiennej i, otrzymany wynik
przypisz zmiennej b
a = a + 5;weż wartość zmiennej a, dodaj do niej 5, otrzymany wynik przypisz z powrotem
zmiennej a
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Przykład użycia zmiennych
#include <iostream >using namespace std;int main(){
int a;int b,c;
a=3;b=6;c = a+b;
cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "a + b = " << c << endl;
return 0;}
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Inicjalizacja zmiennych
Zmiennej możemy nadać wartość już w momencie jej definiowania(inicjalizacja zmiennej). Przypisywana wartość powinna mieścic sięw zakresie typu.Postać: typ zmiennej nazwa zmiennej = wyrażenie;
Przykłady
int i = 0;
float s= 2.5234 + 3.234;
int k, l=100, m;tylko jedna zmienna ma nadaną wartość początkową 100
powyższe wartości początkowe mogą być oczywiście zmienione w trakcie działania
programu
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Inicjalizacja zmiennych
Zmiennej możemy nadać wartość już w momencie jej definiowania(inicjalizacja zmiennej). Przypisywana wartość powinna mieścic sięw zakresie typu.Postać: typ zmiennej nazwa zmiennej = wyrażenie;
Przykłady
int i = 0;
float s= 2.5234 + 3.234;
int k, l=100, m;tylko jedna zmienna ma nadaną wartość początkową 100
powyższe wartości początkowe mogą być oczywiście zmienione w trakcie działania
programu
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Przykład (inicjalizacja zmiennych,oraz C++ to nie Excel ;-) )
#include <iostream >using namespace std;int main(){int a = 3;int x, b=10;int c = a*b;
cout << "niezainicjalizowany x = " << x << endl;a = 6;cout << "a = " << a << " b = " << b << " c = " << c
<< endl; /* wartosc zmiennej a zmieniona ,wartosc c bez zmiany (nadal 30) */
return 0;}
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Stałe
Oprócz zmiennych możemy wprogramie używać także stałych.Stałe nie mogą zmieniać swojej wartości. Wartość nadajemy im wmomencie ich definiowania:
definicja stałej:const nazwa typu nazwa stałej = wyrażenie;
Przykłady
const int procent podatku = 18;
const float przyspieszenie ziemskie = 9.80665;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Stałe
Oprócz zmiennych możemy wprogramie używać także stałych.Stałe nie mogą zmieniać swojej wartości. Wartość nadajemy im wmomencie ich definiowania:
definicja stałej:const nazwa typu nazwa stałej = wyrażenie;
Przykłady
const int procent podatku = 18;
const float przyspieszenie ziemskie = 9.80665;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Program używający stałych
#include <iostream >using namespace std;int main(){
float netto_price = 123.40;const float vat = 0.22;float brutto_price;
brutto_price = netto_price + netto_price * vat;cout << "cena netto to " << netto_price << ", alez podatkiem VAT zaplacisz " << brutto_price <<endl;
return 0;}
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Wyrażenia arytmetyczne
Wyrażenia konstruuje się z literałów, nazw stałych i zmiennychoraz operatorów arytmetycznych, używając nawiasów ( ) w raziepotrzeby.Wyrażenia służą do obliczania wartości które są następnie np.przypisywane stałym, zmiennym lub wypisywane na ekraniepojedyncza zmienna lub literał to także wyrażenia
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Operatory używane w wyrażeniach arytmetycznych
Podstawowe operatory to + - * / i % (modulo, dla wartościcałkowitych)
kolejnośc wykonywania działań (priorytet operatorów) odpowiadamatematyce:
wyrażenie w nawiasie obliczane jest w pierwszej kolejności; jeślinawiasy są zagnieżdżone, pierwszy przetwarzany jest nawias“najbardziej wewnętrzny”,następnie wykonywane są działania mnożenia, dzielenia imodulo; jeśli jest ich kilka, wykonywane są od lewej do prawej,dodawanie i odejmowanie wykonywane jest na końcu; jeśli jestich kilka, wykonywane są od lewej do prawej
typ wyniku operacji arytmetycznej jest taki jak “najdokładniejszy”spośród typów wartości będących argumentami operacji; typ wynikuzłożonego wyrażenia arytmetycznego można określić stosującpowyższą zasadę w kolejnych krokach obliczania jego wartości
dzielenie dwóch liczb całkowitych daje wynik całkowity, nawet jeśli występuje
np. w wyrażeniu zawierającym liczby rzeczywiste jak 12/5 + 7.2
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Operatory używane w wyrażeniach arytmetycznych
Podstawowe operatory to + - * / i % (modulo, dla wartościcałkowitych)
kolejnośc wykonywania działań (priorytet operatorów) odpowiadamatematyce:
wyrażenie w nawiasie obliczane jest w pierwszej kolejności; jeślinawiasy są zagnieżdżone, pierwszy przetwarzany jest nawias“najbardziej wewnętrzny”,następnie wykonywane są działania mnożenia, dzielenia imodulo; jeśli jest ich kilka, wykonywane są od lewej do prawej,dodawanie i odejmowanie wykonywane jest na końcu; jeśli jestich kilka, wykonywane są od lewej do prawej
typ wyniku operacji arytmetycznej jest taki jak “najdokładniejszy”spośród typów wartości będących argumentami operacji; typ wynikuzłożonego wyrażenia arytmetycznego można określić stosującpowyższą zasadę w kolejnych krokach obliczania jego wartościdzielenie dwóch liczb całkowitych daje wynik całkowity, nawet jeśli występuje
np. w wyrażeniu zawierającym liczby rzeczywiste jak 12/5 + 7.2Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
“Skompresowane” (szybkie) przypisania
a = a + x może być zapisane jako a += xpodobnie:a = a - x może być zapisane jako a -= xa = a * x może być zapisane jako a *= xa = a / xmoże być zapisane jako a /= x
gdzie a jest zmienną, a x – dowolnym wyrażeniem(przykłady: a +=10, a-=3*x)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Inne operatory: inkrementacja i dekrementacja
Dodawanie i odejmowanie jedynki są na tyle częstymi operacjamiże doczekały się specjalnych operatorów:
++ - inkrementacja
-- - dekrementacja
Sposób użycia (a jest zmienną):
a++;a--;(post-inkrementacja / post-dekrementacja)
++a;--a;(pre-inkrementacja . pre-dekrementacja)
[szczegóły będa wyjaśnione później]
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Przykład (Inkrementacja - przykłady)
#include <iostream >using namespace std;int main() {
int i, x;
i=2; x=4;i = x++;cout << " i = " << i << " x = " << x << endl;// i=4, x=5 ("x najpierw uzyty w przypisaniu ,potem zwiekszony ")
i=2; x=4;i = ++x;cout << " i = " << i << " x = " << x << endl;// i=5, x=5 ("x najpierw zwiekszony , potemuzyty w przypisaniu ")
return 0; }Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Konwersja typów (rzutowanie)
Konwersja typów (rzutowanie typów, ang. type casting)zamienia wartość jednego typu na odpowiadającą jej wartośćinnego typudozwolone są dwie formy zapisu:
zapis funkcyjny:nazwa typu( obiekt do przekonwertowania) -np. y = int(x) ;zapis “w stylu C”:( nazwa typu) obiekt do przekonwertowania -np. y =(int) x ;
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Operacje wejścia i wyjścia dla wartości liczbowych
Strumień wejściowy std::cin
Aby przypisać zmiennej wartość wprowadzoną przezużytkownika możemy użyć strumienia wejściowego std::cin
możemy uważać ten strumień za skojarzony z standardowymwejściem (zwykle klawiaturą) (“płynący od klawiatury’)
polecenie std::cin >> zmienna; “przekierowuje” dane zklawiatury do zmiennej podanej po operatorze >>
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
#include <iostream >using namespace std;int main(){
int eggs1 , eggs2 , totaleggs , people;
cout << "Give the number of eggs of the 1stperson : ";
cin >> eggs1;cout << "Give the number of eggs of the 2ndperson : ";
cin >> eggs2;totaleggs = eggs1 + eggs2;cout << "They have together " << totaleggs <<" eggs " << endl;
cout << "How many people do you want to feed?"; cin >> people;
cout << "Eggs for person: " << totaleggs /float(people) << endl; // conversion tofloat
return 0;}
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Formatowanie wyjścia: manipulatory
Manipulatory to specjalne wartości które mogą być“wstawione” do strumienia wyjściowego, zmieniając sposóbwyświetlania danych
większość manipulatorów działa “do odwołania” (tj. domomentu zastąpienia ustawienia innym)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Manipulatory - cd
Manipulatory bezparametrowe:hex, dec, oct - tylko dla wartości całkowitych, określają system wktórym są one wypisywane / pobierane (wartość domyślna: dec)
showpoint, noshowpoint - przełączniki wyświetlania częściułamkowej poprzedzonej kropką gdy ta część jest zerowa(domyślnie: showpoint)
showpos, noshowpos - przełączniki wyświetlania znaku “+” dlaliczby dodatniej (domyślnie: noshowpos)
showbase, noshowbase - pzełączniki wyświetlania symbolupodstawy podczas wypisywania liczb w systemie innym niżdziesiętny (domyślnie: noshowbase)
fixed, scientific - przełączniki wyświetlania liczb rzeczywistychw postaci dziesiętnej / wykładniczej
endl- przejście do nowej linii
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
#include <iostream >using namespace std;int main() {
cout << "12 osemkowo: " << oct << 12 << endl;cout << "inna wersja " << showbase << oct << 12 <<
endl;cout << noshowbase; // powrot do ustawiendomyslnych
cout << "12 szesnastkowo: " << hex << 12 << endl;cout << 123 << endl; // hex nadal obowiazujecout << dec; // przywrocenie domyslnegocout << 123 << endl; // dziesiatkowocout << showpoint << 12.00 << noshowpoint << " vs. " << 12.00 << endl;
cout << fixed << 12e02 << " vs. " << scientific <<12e02 << endl;
cout << 4.4 << endl;// notacja wykladniczacout << showpos << 4 << " vs. " << noshowpos << 4<< endl;
return 0; }
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
Manipulatory - cd
Manipulatory z parametrami, wymagają dołączenia iomanip
setw(n) gdzie n jest wartością całkowitą - określa szerokośćwypisywania liczb na n , działa tylko dla najbliższej operacjiwejścia/wyjścia
setfill(n), gdzie n jest znakiem - określa znak wypełniającypusty obszar wypisywania (domyślnie spacja)
setprecision(n), gdzie n jest wartością całkowitą - określadokładność wypisywania wartości rzeczywistych (albocakowitą liczbę cyfr znaczących, albo liczbę cyfr częściułamkowej jeśli występuje w połączeniu z fixed)
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania
Liczby Typy liczbowe Zmienne i stałe Wyrażenia arytmetyczne I/O dla wartości liczbowych
#include <iostream >#include <iomanip >using namespace std;
int main(){
cout << std:: setprecision (5) << 100.1234567899 <<endl << "vs. " << endl;
cout << fixed << std:: setprecision (5) <<100.1234567899 << endl;
cout << 12 << endl;cout << setw (10) << 12 << endl;cout << setw (10) << setfill(’.’) << 12 << endl;
return 0;}
Agata Półrola Wydział Matematyki i Informatyki UŁ
Wstęp do programowania