Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Podstawy programowania
PP – LAB3 Wojciech Pieprzyca
2
Operatory arytmetyczne
Podstawowe operatory arytmetyczne i operator modulo + dodawanie - odejmowanie * mnożenie / dzielenie % reszta z dzielenia Liczba1 Liczba2 Liczba1/Liczba2 Liczba1%Liczba2 5 10 1 11 19 9
3
Przykład – formatowanie wydruku
Operator modulo można wykorzystać także do formatowanie wydruku np. wstawianie nowej linii po wyświetlaniu w pętli kolejnych 10 wartości. int i; for (int i=1; i<=100; i++) { cout << i << ” ”; if (i%10==0) cout << endl; }
4
Operatory inkrementacji i dekrementacji
Operator inkrementacji (zwiększanie wartości zmiennej o jeden) zmienna++ jest równoważny wykonaniu instrukcji przypisania zmienna = zmienna+1, Operator dekrementacji (zmniejszanie wartości zmiennej o jeden) zmienna-- jest równoważny wykonaniu instrukcji przypisania zmienna = zmienna-1, Rozróżniamy: postinkrementację zmienna++ postdekrementację zmienna--, preinkrementację ++zmienna, predekrementację --zmienna,
5
Różnica między post i pre
W ogólności możemy powiedzieć, że preinkrementacja i predekrementacja wykonywana jest PRZED użyciem zmiennej która zwiększamy/zmniejszamy, z kolei postinkrementacja i postdekrementacja wykonywana jest PO użyciu zwiększanej/zmniejszanej zmiennej. Przykład: x = 3; y = 2; if( x == y++ ) // porównaj x z y, potem zwiększ y (y=3) a = 1; x++; // zwiększ x (x=4) if( x == ++y ) // zwiększ y (y=4), potem porównaj x z y b = 2;
6
Operatory logiczne i porównania
Operator koniunkcji (i) && Operator alternatywy (lub) || Operator negacji ! Operatory porównania: mniejsze < mniejsze lub równe <= większe > większe lub równe >= równe == różne !=
7
Przykłady Przykłady: Liczby z zakresu 0-10
(liczba>=0 && liczba<=10) Liczby mniejsze od 0 lub większe od 10 (liczba<0 || liczba>10) Liczby różne od 10 (liczba!=10)
8
Liczby binarne (1) Liczby binarne przedstawiane są w postaci ciągu bitów tzn. wartości zero-jedynkowych. Mówimy, że dany bit może być włączony (ma wartość 1) lub wyłączony (ma wartość 0). Liczby dziesiętne całkowite z zakresu mogą być zapisane w postaci binarnej przy użyciu 8 bitów tzn. jednego bajta (wynika to z tego, iż liczba kombinacji zero-jedynkowych dla 8 bitów jest równa 256). Każdy bit liczby binarnej ma swoją wagę. Najmniejszą wagę mają bity najmłodsze, a największą bity najstarsze liczby.
9
Liczby binarne (2) 8 bitowa liczba binarna x x x x x x x x
Przykład: Liczba 10 (wagi 8+2 = 10) Liczba 15 (wagi = 15) Liczba 255 (wagi = 255)
10
Operatory bitowe (1) przesunięcie w lewo <<
przesunięcie w prawo >> bitowy iloczyn logiczny & bitowa suma logiczna | bitowa negacja ~ Przykłady: Przesunięcie w lewo o 2 bity: int liczba = 10; //bitowo (10) liczba = liczba << 2; //bitowo (40)
11
Operatory bitowe (2) x y x&y 1 Przesunięcie w prawo o 2 bity:
int liczba = 10; //bitowo (10) liczba = liczba >> 2; //bitowo (2) Iloczyn logiczny dwóch liczb int x = 14; //bitowo int y = 5; //bitowo int wynik = x&y; //bitowo ======== (4) x y x&y 1
12
Operatory bitowe (3) x y x|y 1 x ~x 1 Suma logiczna dwóch liczb
1 int x = 14; //bitowo int y = 5; //bitowo int wynik = x|y; //bitowo ======== (15) Negacja logiczna liczby x ~x 1 int x = 14; //bitowo int wynik = ~x; //bitowo ~( ) = (241)
13
Operatory przypisania
Dwuargumentowy operator przypisania dokonuje przypisania do zmiennej x stojącej po lewej stronie operatora, wartości wyrażenia y, stojącego po prawej stronie operatora. Przykładowe operatory przypisania wraz z opisem ich działania: Operator Przykład Działanie = x = y += x += y x = x + y -= x -= y x = x – y *= x *= y x = x * y /= x /= y x = x / y %= x %= y x = x% y >>= x >>= y x = x >> y <<= x <<= y x = x << y &= x &= y x = x & y
14
Konwersje typów (1) Konwersja typów polega na zmianie jednego typu danych na inny. Dotyczy ona zwykle sytuacji, gdy argumenty operatora (np. dodawania) są różnego typu i w celu wykonania prawidłowego działania konieczne jest przeprowadzenie konwersji. Wyróżniamy konwersję niejawną przeprowadzaną automatycznie przez kompilator i konwersję jawną wymuszoną przez programistę. Przykład konwersji: double d=2.123; int i = 5; d = i;
15
Konwersje typów (2) W przypadku konwersji niejawnej typ o mniejszej liczbie bajtów jest przekształcany na typ o większej liczbie bajtów np. short int na int, float na double, itp. Mówimy wtedy, że typ „węższy” jest przekształcany na typ „obszerniejszy” bez utraty informacji. Bezpieczna konwersja argumentu węższego (mniej bitów) do szerszego typu nazywana jest promocją typu. Typowym przykładem promocji jest automatyczna konwersja typu char do int. Powód - wszystkie predefiniowane operacje na zmiennych typu char są faktycznie wykonywane na liczbach porządkowych znaków pobieranych ze zbioru kodów maszynowych (tj. ASCII).
16
Konwersje typów (3) Poniżej podano kolejność w jakiej odbywa się promocja typów od typu najwęższego do najszerszego. Konwersja polega na przekształceniu węższego typu występującego jako pierwszy na typ występujący jako następny (szerszy). Gdy np. argumentami operatora są liczby typu int i double, to nastąpi konwersja typu int do double, ponieważ double jest typem szerszym od int. short int int unsigned int long unsigned long float double long double
17
Przykład konwersji niejawnej
int l1=10; double l2 = l ; W tym przypadku zmienna l1 typu int zostanie rozszerzona do typu double. Dzięki temu operator + będzie działał na dwóch zmiennych typu double. int l1 = 10; int l3 = l ; Ten przykład pokazuje konwersję zawężającą. Co prawda liczba l1 typu int zostanie rozszerzona do typu double, ale następnie wynik zostanie skonwertowany do typu int, aby mógł zmieścić się w zmiennej l3.
18
Konwersja jawna Konwersja jawna jest wywoływana przez programistę w ramach pisanego programu przy użyciu operatora rzutowania, który ma następującą postać: (typ) wyrażenie Przykład: double l1 = ; cout << (int)l1; Przykład pokazuje, że liczba typu double przed wyświetleniem zawężana jest do typu int. Spowoduje to wyświetlenie tylko części całkowitej liczby (w tym przypadku 12).
19
Przykład konwersji jawnej
Ponieważ każdy ze znaków alfanumerycznych ma przyporządkowany swój numer w tabeli ASCII to możliwa jest konwersja liczb (odpowiednich kodów ASCII) na znaki i znaków na liczby. Przykłady: char znak = ‘a’; cout << ”Ten znak ma numer: ” << (int)znak; Wynik: Ten znak ma numer: 65 Int liczba = 65; cout << ”Ta liczba odpowiada znakowi: ” << (char)liczba; Wynik: Ta liczba odpowiada znakowi: a
20
Tabela kodów ASCII
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.