Бублик Володимир Васильович Процедурне програмування C/C++ Лекція 2. Базові поняття програмування. Арифметичні типи даних Лекції для студентів 2 курсу.

Презентация:



Advertisements
Похожие презентации
Числовим виразом називається запис, складений із чисел, знаків арифметичних дій і дужок. Числовий вираз має лише одне значення. Порядок операцій у числовому.
Advertisements

Типи даних. Змінні в С++. Присвоєння значень змінним Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії.
Лекция 2. Фундаментальные типы данных и основные конструкции Красс Александр СПбГУ ИТМО, 2008.
Вказівники Вказівник (або покажчик) – особливий тип даних, значенням якого є адреса певного байта оперативної памяті. Значення покажчика - це беззнакове.
Бублик Володимир Васильович Процедурне програмування C/C++ Лекція 10. Статичний поліморфізм Лекції для студентів 2 курсу Консультації: середа год.,
Урок 22 7 клас ЕЛЕКТРОННІ ТАБЛИЦІ ТП MS EXCEL. Використання формул і функцій
Електронні таблиці EXCEL Введення формул до ЕТ. Формули призначені для виконання дій над вмістом клітинок (над даними) згідно з умовою конкретної задачі.
Урок 23 7 клас ВИКОРИСТАННЯ ВБУДОВАНИХ ФУНКЦІЙ У ТП EXCEL.
Алфавіт мови програмування Pascal. Величини. Типи даних. Набір функцій та операцій для кожного з типів.
Ділення десяткових дробів. Як називається числа а, b і с у запису a : b = c? Як перевірити правильність рівності а : b = с? Як знайти невідомий множник?
Оператор розгалуження Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії Конотопської міської ради.
Сьогодні на уроці ми: повторимо відомості про числові вирази, вирази із змінними, набуті в 5-6 класах; познайомимося із цілими та раціональними виразами;
Вступ до програмування на Python. Особливості Python Простий Свобідний і відкритий Мова високого рівня Портується Інтерпретується Об'єктно-орієнтований.
Лекція 2 Тема: Операції. Вирази. Оператори.. План Операції Основні операції Порядок виконання операцій Додаткові операції Вирази Оператори Оператор присвоєння.
Дискретні структури Лекція 4 Елементи математичної логіки 4.1. Висловлювання та операції над ними 4.2. Булева алгебра 4.3. Булеві функції.
Основні поняття математичної логіки. Висловлення. Логічні константи. Логічні операції Один з розділів логіки - математична логіка є наукою про закони.
ДОДАВАННЯ І ВІДНІМАННЯ МНОГОЧЛЕНІВ. Робота з випереджальним домашнім завданням Запис 1) Перетворення 2) ПеретворенняВідповідьКорекція Сума Різниця.
Типи даних мови Visual Basic та їх опис. Опис величин Величина - це об'єкт, який має стале або змінне значення. Основні характеристики величин: ім'я,
Блок- схеми з основ початкового курсу математики Підготувала Совальська І.І.
Бублик Володимир Васильович Процедурне програмування C/C++ Лекція 7. Базові поняття програмування. Структури даних Лекції для студентів 2 курсу Консультації:
Транксрипт:

Бублик Володимир Васильович Процедурне програмування C/C++ Лекція 2. Базові поняття програмування. Арифметичні типи даних Лекції для студентів 2 курсу London, Tower

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 2 Арифметичні типи даних Основні типи: –Логічний bool: true, false, –Символьний сhar: a, b,… –Цілий int: 0, 1, -1, 2,… –Дійсний (з подвоєною точністю) double: 0.0, 3.14,… Інші арифметичні типи служать предметом особливих застосувань (оптимізація, системне програмування, тощо).

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 3 Логічний тип false < true bool b = true; cout << noboolalpha << b << " == " << boolalpha << b << endl; 1 == true false+false == false false+true == true true+false == true true+true == true

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 4 Доповнений код (Повторення) Як обчислити двійковий код -1 1.Записати код 1 2.Інвертувати його 3.Додати 1: одержимо

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 5 Доповнений код (Ще повторення) Як обчислити двійковий код Записати код Інвертувати його 3.Додати 1: одержимо -128 Пам'ятайте: == -128 (sorry)

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 6 Символьний тип char Без знаку від 0 до 255 (FF) unsigned Зі знаком від -128 до 127 signed

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 7 Короткий цілий тип short int Без знаку від 0 до unsigned Зі знаком від до signed

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 8 Дійсний тип float порядокмантиса Мінімальний порядок -37, максимальний 38 Кількість десяткових знаків мантиси

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 9 Арифметичні типи даних Назва типуПозначенняДіапазон значень Логічний (булів) bool false, true (true+true==true) Символьний сhar, unsigned сhar від 0 до 255 ( 255+1=0 ) signed сhar від -128 до 127 ( 127+1=-128 ) Цілий short (short int) Визначається з умов 1sizeof(char) sizeof(short) sizeof(int) sizeof(long); 1 sizeof(bool) sizeof(long); sizeof(N)sizeof(signed N)sizeof(unsigned N); unsigned short (unsigned short int) int (signed int) unsigned (unsigned int) long (long int) unsigned long (unsigned long int) Довгий символ wchar_t unsigned short Дійсний, звичайна точність float sizeof(float) sizeof(double) sizeof(long double) подвоєна точність double розширена точність long double

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 10 Розрядність #include using namespace std; int main() { bool b; char c; unsigned char cu; signed char csg; short s; short int is; signed short int issg; unsigned short int ius; unsigned short su; int i; signed int isg; unsigned int iu; signed sg; unsigned u; long int il; signed long int ilsg; long l; signed long lsg; unsigned long int ilu; unsigned long lu; float f; double d; long double ld;

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 11 Розрядність cout << "\n bool= " << sizeof(b) << "\n char= " << sizeof(c) << "\n unsigned char = " << sizeof(cu) << "\n signed char = " << sizeof(csg) << "\n short = " << sizeof(s) << "\n short int= " << sizeof(is) << "\n signed short int = " << sizeof(issg) << "\n unsigned short int = " << sizeof(ius) << "\n unsigned short = " << sizeof(su) << "\n int = " << sizeof(i)

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 12 Розрядність << "\n signed int = " << sizeof(isg) << "\n unsigned int = " << sizeof(iu) << "\n signed int = " << sizeof (isg) << "\n unsigned int = " << sizeof (iu) << "\n signed = " << sizeof (sg) << "\n unsigned= " << sizeof (u) << "\n long int= " << sizeof (il) << "\n signed long int= " << sizeof (ilsg) << "\n long = " << sizeof (l) << "\n signed long = " << sizeof (lsg)

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 13 Розрядність << "\n unsigned long int= " << sizeof(ilu) << "\n unsigned long = " << sizeof(lu) << "\n float = " << sizeof (f) << "\n double = " << sizeof (d) << "\n long double = " << sizeof (ld) << endl; return 0; }

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 14 Розрядність bool= 1 char= 1 unsigned char = 1 signed char = 1 short = 2 short int = 2 signed short int = 2 unsigned short int = 2 unsigned short = – 1 = – 1 =

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 15 Розрядність int = 4 signed int = 4 unsigned int = 4 signed = 4 unsigned= 4 long int = 4 signed long int = 4 long = 4 signed long = 4 unsigned long int = 4 unsigned long = = 2 2(2 10 ) 3 4 (10 3 ) 3 = – 1 = = 2 4(2 10 ) 6 16 (10 3 ) 6 = = Основна тотожність інформатики

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 16 Розрядність float = 4 Скільки десяткових знаків містить дійсне число? double = 8 long double = 8 Скільки десяткових знаків містить дійсне число подвоєної точності? 2 32 = 2 2(2 10 ) 3 4 (10 3 ) 3 = – 1 = = 2 4(2 10 ) 6 16 (10 3 ) 6 = = Як кодуються дійсні числа?

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 17 Стандартна бібліотека #include Приклади застосування numeric_limits ::min();// numeric_limits ::max();// numeric_limits ::max();// numeric_limits ::max();// e+038 numeric_limits ::max(); // e+308 numeric_limits ::max_exponent10; //308 numeric_limits ::digits10;//15

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 18 Перелік (enumeration) enum week { monday, tuesday, wednesday, thursday, friday, saturday, sunday }; cout<<monday;//?

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 19 Ініціалізований перелік enum week { monday = 1, tuesday, wednesday, thursday, friday, saturday, sunday }; cout<<monday;//?

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 20 Розріджений перелік enum number { two=2, eight=8, ten=10, hex=16 };

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 21 Арифметичні операції Символ операціїНазваСпосіб використання * Множення op1 * op2 / Ділення op1 / op2 % Остача op1 % op2 + Додавання op1 + op2 - Віднімання op1 - op2, Кома op1, op2

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 22 Операції порівняння Символ операціїНазваСпосіб використання < Менше op1 < op2 <= Менше або рівне op1 <= op2 > Більше op1 > op2 >= Більше або рівне op1 >= op2 == (не плутати з =) Рівне op1 == op2 != Не рівне op1 != op2 Найрозповсюдженіша помилка початківців if (x=0) /*never come here*/; else cout<<x;

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 23 Логічні операції Символ операціїНазваСпосіб використання ! Заперечення ! op && Конюнкція op1 && op2 || Дизюнкція op1 || op2 ? : Імплікація (true ? x: y) == x (false ? x: y) == y (op1 ? op2: op3) Чим (x < y ? x : y) відрізняється від if (x<y) x; else y; ?

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 24 Двійкові коди цілих чисел чи чи - 1

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 25 Шістнадцяткові коди цілих чисел 0 7 FF F

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 26 Логічні побітові операції Символ операціїНазваСпосіб використання ~ Заперечення ~ op << Зсування вліво op1 << op2 >> Зсування вправо op1 >> op2 & Конюнкція op1 & op2 ^ Виключна дизюнкція op1 ^ op2 | Дизюнкція op1 | op2

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 27 Логічні побітові операції Програмування на низькому, близькому до машинного, рівні: найпростіше ці операції вживати до типу unsigned int або unsigned long (int), що відповідатиме роботі з машинними словами. У випадку коротших типів або при наявності знаку результат може залежати від типу компілятора.

© 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 28 Логічні побітові операції Приклад unsigned int a = ; // fb fc fd fe int k = 0; cout >k)&0xff<<endl;// fb fc fd fe k = 8; cout >k)&0xff<<endl;// 00 fb fc fd k =16; cout >k)&0xff<<endl;// fb fc k =24; cout >k)&0xff<<endl;// fb

Висновок Слідкуйте за типами Чи може статися таке, що (x/2)*2 != x? x+1 == x? x+1 < x? (x+x)/2 != x? © 2006 Бублик В.В. Процедурне програмування. 2. Базові поняття програмування. Арифметичні типи даних 29