Похожие презентации:
Типи даних
1.
Розглянемо речення на мові Сcout << x/y;
х – фактично пов’язано з якоюсь ділянкою
пам’яті, з її початковою адресою.
Там нулі та одинички.
Що має з’явитися на екрані?
2.
Типи данихБудь-які дані в пам'яті комп'ютера
зберігаються як послідовності
нулів та одиниць.
Але для того, щоб визначити,
що означає така послідовність,
необхідно знати,
до якого типу вона відноситься.
3.
Типи данихНаприклад,
нехай в пам'яті комп'ютера записана послідовність
нулів та одиниць (4 байти)
0100 0010 0100 0011 0100 0100 0000 0000.
Якщо розглядати її як дані типу int,
то це буде ціле число 1111704576,
а якщо припустити, що це рядок сималів,
то отримаємо “BCD”.
4.
А якщо float?5.
Типи данихТип даних визначає:
• спосіб кодування інформації;
• обсяг пам'яті, який займає змінна цього типу,
(а відповідно і діапазон значень);
• перелік допустимих операцій для даних цього
типу;
• правила виконання операцій над даними.
6.
Типи данихОсновні типи
char – тип для символів;
int – тип для цілих чисел;
float – тип для дійсних чисел;
double – дійсні числа подвійної точності;
void – змінна, що не має значень.
7.
Модифікатори типівsigned – із знаком (для char, int);
unsigned – без знаку (для char, int);
long – довгий (для int, double);
short – короткий (для int);
Наприклад: unsigned long long int;
Довжина в байтах:
sizeof(<ім'я типу, змінної або константа>)
8.
Деякі нові типи даних (С++)bool – тип змінної, що може приймати
значення true або false;
bool ok=true;
Але можна і так:
int ans = false;
bool promise = -100;
9.
Деякі нові типи даних (С++)string – тип для рядків символів
string name=“Тарас ”;
string fam=“Шевченко”;
string fullName=name + fam;
10.
Оголошення зміннихint j, k, n;
short int m = -10, p=20;
unsigned long long int fact;
Окрім того, у С++ оголошувати змінні можна де
завгодно, але до першого використання.
11.
Константи з модифікаторами25LL 10000U
123.12F 2.37E-10F
1234.567L
12.
Операції та вирази13.
Операція присвоєння<змінна> = <вираз>;
int x = 10;
x = x + 1;
14.
Операція присвоюванняУ Сі присвоєння - є операцією!
(= не плутати з операцією порівняння ==)
Пріоритет операції = низький.
Операція має результат,
отже, можна написати
a = b = c + (d = x * y)
15.
Математичні операціїЗнак
Операція
*
Множення
/
Ділення (у тому числі ділення націло )
%
Остача від ділення (для цілих)
+
Додавання
-
Віднімання
16.
Операції із знаком присвоєнняm +=20, те саме, що m=m+20;
m -=20, те саме, що m=m-20;
m *=20, те саме, що m=m*20;
m /=10, те саме, що m=m/10;
m%=10, те саме, що m=m%10;
…
17.
Операції порівнянняОперація
==
>
<
>=
<=
!=
Опис
Дорівнює
Більше
Менше
Більше або дорівнює
Менше або дорівнює
Не дорівнює
18.
Логічні операції (усі типи)Операція
Опис
||
&&
!
Або
(a||b) && !(a&&b)
b>=4 && b<5
і
Ні
Виключно або (xor)
Дужки не потрібні
19.
Результати логічних операційОперації
Перший
операнд
Другий
операнд
&&, &
(і)
||,
|
(або)
^
розбіж-ність)
(
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
20.
Побітові операції (для цілих)Операція
Опис
|
&
~
>>
<<
^
Або
i
Ні
Зсув праворуч
Зсув ліворуч
Виключно або (xor)
21.
Побітові операції10 & 5
1010
0101
0000
0xd | 5
1101
0101
1101
Операції зсувів >> <<
11 >> 2
5 << 2
1011 -> 10 (2)
101 -> 10100 (20)
22.
Операції інкременту (для всіх)Операто
р
Приклад
Опис
Еквівалентний
вираз
++
i ++;
Постфіксна
i =i+1; або i+=1;
++
++ i;
Префіксна
i =i+1; або i+=1;
--
i - -;
Постфіксна
i =i-1; або i-=1;
--
- - i;
Префіксна
i =i-1; або i-=1;
23.
Операції інкрементуПрефіксні операції мають найвищий пріоритет.
Виконуються до будь якої іншої операції.
Наприклад:
int d=1;
int a = ++d*3 + d;
Результат a=8 d=2.
24.
Операції інкрементуПостфіксні операції мають найменший пріоритет
і виконуються останніми.
b=2, c=1;
a = b + c++;
Результат a=3 c=2.
Що це означає? // Для допитливих
int x=10; while(x-->0) {…}
int c=-10; while(c++) {…}
25.
Тернарний оператор(від слова три)
? :
Вираз_1 ? Вираз_2 : Вираз_3;
Наприклад:
stip = ball<4.0 ? 0 : ball<5 ? 40 : 50;
26.
Операція послідовного обчисленняСимвол операції
,
Вираз_1 , Вираз_2
Обчислюється Вираз_1 , потім Вираз_2.
Повертається результат Виразу_2
Наприклад
x = (y = 3, y += 1, y++); х = 4, y = 5;
27.
Перетворення типівв операції присвоювання
Результат отриманий у правій частині
приводиться до типу лівої частини
int x; char ch; float f; unsigned int u;
x = 0xFC41;
// x = 64577
ch = x;
// ch = ‘A’
x = f = -25.7 - ch; // f=-90,7 // x = -90
u = f;
// u = 4294967206
f = u;
// f = 4.29497e+009
x = f;
// -2147483648
28.
ВиразиВираз - це послідовність операндів,
об’єднаних знаками операцій та
круглими дужками.
Операнди – це змінні, константи
та звертання до функцій
29.
ВиразиУ мовах високого рівня
вираз мало відрізняється від формули.
Основна відмінність полягає в тому,
що вираз записується в один рядок.
30.
Приклади запису виразівФормула
a b
( a b) x
Вираз
(a+b)/(a-b)/x
2
sin x b
sqrt(sin(x)*sin(x) + b)
2.5 x
exp(2.5*x)
1 .5 b
pow(a, 1.5+b)
e
a
31.
Перетворення типів у виразахПо-перше,
char, short int (integral promotion)
Далі використовується принцип ”найбільшого
операнду ”,відповідно до ряду:
long double, double, float,
usigned long long, long long,
unsigned int, int
32.
Явне приведення типів(тип) вираз
Наприклад:
int x=5; float y;
y=(float)(x / 2.0)
33.
Операції з вказівниками& - операція отримання адреси змінної,
наприклад:
int *p, count = 10, c;
p = &count;
* - операція отримання значення за вказаною
адресою,
наприклад: int c = *p;
34.
Операції++ -- () [] . ->
! ~ +a -a (type) sizeof *a &a
* / %
+ << >>
< > <= >=
= = !=
& ^ | && ||
?:
= += -= *= /= %= &= ^= |= >>=
++ -- ,
Пріоритет
1
2
3
4
5
6
7
8,9,10,11,12
13
14
15
35.
Деякі функції бібліотеки cmath.36.
Приклад зверненняЩо обчислює
fabs(вираз)
Модуль числа
sqrt(вираз)
Квадратний корінь
pow(вираз, ступінь)
Піднесення до ступеню
exp(вираз для степеню числа e)
Експонента
log(вираз)
Натуральний логарифм
log10(вираз)
Логарифм за основою 10
sin(вираз)
Синус
cos(вираз)
Косинус
tan(вираз)
Тангенс
37.
Приклад зверненняЩо обчислює
asin(вираз)
Арксинус
acos(вираз)
Арккосинус
atan(вираз)
Арктангенс
sinh(вираз)
Гіперболічний синус
cosh(вираз)
Гіперболічний косинус
tanh(вираз)
Гіперболічний тангенс
celi(вираз)
Округлення до найближчого більшого
floor(вираз)
Округлення до найближчого меншого
fmod(вираз ділене, вираз дільник)
Залишок від ділення з плаваючою точкою
38.
Функція printf()//Прототип
int printf(const char *format, arg-list);
//Приклад
printf("Сума чисел %d та %d дорівнює %d\n",
10, 5, 10 + 5);
39.
%с%d
%lld
%е
%f
%g
%Lg
%о
%s
%u
%llu
%х
%llх
%р
%*
%%
Символ типу char
Десяткове число цілого типу зі знаком
Десяткове число цілого типу long long зі знаком
Наукова нотація (е нижнього регістру)
Десяткове число з плаваючою точкою
Використовує код% е або% f - той з них, який коротше
Для типу long double (або %Le, або %Lf)
Вісімкове ціле число без знаку
Рядок символів
Десяткове число цілого типу без знаку
Десяткове число цілого типу long long без знаку
Шістнадцяткове ціле число (літера х нижнього регістру)
Те саме для типу long long
Вказівник на якийсь елемент
Вказівник на значення, яке буде підставлено у формат
Вивести знак %
40.
Чи є тут помилки?int x = 2, a1 =3, u =4; // cos(x/3);
cout << log10(x+a1*(0,5*x+1,8)) << endl;
float f2 = log10(x+a1/((1/2)*x+(18/10)));
cout<<pow(sqrt(3),(u+tan(u*x*x))/(log(2*x)-u*u*u) );
double f4 = pow(u+ pow(x,2) - pow(u,3), 1/3);
41.
Ще раз про двійкові числа0 –> 0
1 -> 1
2 -> 10
3 -> 11
4 -> 100
5 -> 101
6 -> 110
7 -> 111
8 -> 1000
9 -> 1001
10 -> 1010
11 -> 1011
12 -> 1100
13 -> 1101
14 -> 1110
15 -> 1111
A
B
C
D
E
F
42.
Переведення цілого 10 у 2113/2 –> 1
56/2 -> 0
28/2 -> 0
14/2 -> 0
7/2 -> 1
3/2 -> 1
1/2 -> 1
1
( 2)
( 4)
( 8)
16
32
64
113 -> 1110001
43.
10 -> 16 -> 2Частка
Залишок
16
2
46 : 16
2
14
Е
1110
2 : 16
0
2
2
10
46 => 0x2E
44.
0.10 -> 0.20.46 * 2
0.92*2
0.84*2
0.68*2
0.36*2
0.64*2
Дробова частина
Ціла частина
0.92
0.84
0.68
0.36
0.64
0.28
0
1
1
1
0
1
45.
Побітові операції10 & 5
1010
0101
10 | 5
1010
0101
0000
1111
Операції зсувів
>> <<
11 >> 2
1011 -> 10 (2)
5 << 2
101 -> 10100 (20)
Программирование