wykład 2 Agata Półrola Wydział Matematyki i Informatyki...

41
Liczby Typy liczbowe Zmienne i stale Wyrażenia arytmetyczne I/O dla wartości liczbowych Wstęp do programowania wyklad 2 Agata Pólrola Wydzial Matematyki i Informatyki UL sem. zimowy 2016/2017 Agata Pólrola Wydzial Matematyki i Informatyki UL Wstęp do programowania

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