- •Куперштейн л.М.
- •Та інтелектуальних систем
- •Рецензент: к.Т.Н., доцент Ревенок в.І.
- •Тема 1. Програмне забезпечення системного оброблення інформації
- •1.2 Системне програмування
- •1.3 Поняття мови програмування та їх історичний розвиток
- •1.4 Етапи підготовки програми
- •1.5. Поняття операційної системи
- •Тема 2. Засоби створення програмних додатків
- •2.2. Класифікація додатків, що використовують бази даних
- •2.3. Огляд засобів створення програмних додатків
- •2.1. Класифікація засобів розробки додатків
- •2.2. Класифікація додатків, що використовують бази даних
- •Тема 3: Мова визначення даних
- •Компоненти скбд
- •Осн. Поняття sql.
- •Типи даних sql.
- •Команды управления транзакциями
- •Преимущества языка sql
- •Символьные данные
- •Битовые данные
- •Точные числа
- •Округленные числа
- •Дата и время
- •Базові команди sql (доопр)
- •Розділ group by
- •Розділ having
- •2. Перенесення додатку на інший комп'ютер.
- •Типи даних
- •3. Представлення значень у комп’ютері.
- •1. Умовні оператори Оператор if
- •Оператор switch
- •Оператор break
- •Оператор continue
- •Оператор повернення
- •Оператор goto
- •Помічений оператор
- •Порожній оператор
- •1. Структури.
- •Тема 9. Вступ до проблеми штучного інтелекту
- •Тема 10. Експертні системи як різновид систем штучного інтелекту
- •Тема 11. Методологія проектування експертних систем
- •1. Етипи проектування експертних систем.
- •Тема 12. Технологія проектування експертних систем на основі продукційної моделі
- •Тема 13. Технологія проектування експертних систем на основі логічної моделі подання знань.
- •Тема 14. Поняття семантичної мережі та її використання в експертних системах. Семантичні мережі
- •Побудова та використання семантичних мереж
- •Використання семантичних мереж
- •Тема 15. Технологія проектування експертних систем на основі фреймової моделі подання знань
- •Тема 16. Характеристика програмних засобів створення експертних систем
- •Тема 17. Базові концепції нейронних мереж
3. Представлення значень у комп’ютері.
Десяткове представлення
З десятковим представленням ми користуємося у повсякденному житті. Так число «п’ять» ми записуємо у десятковому представленні, а саме – 5.
Для десяткового представлення використовується 10 різних символів, а саме цифр (0…9) для запису довільного числа.
Наприклад,
8735 = 8000 + 700 + 30 + 5 = 8·103 + 7·102 + 3·101 + 5·100
87,35 = 80 + 7 + 0,3 + 0,05 = 8·101 + 7·100 + 3·10-1 + 5·10-2
Хоча ми і будемо записувати числа в програмі у десятковому представленні (бо ми до такого представлення звикли), але варто пам’ятати, що компілятор усі значення переводить у двійкове представлення. Усі числа в пам’яті комп’ютера зберігаються у двійковому представленні.
Двійкове представлення
В двійковому представленні записуються біти цілих чисел.
Д
розряд 7 6 5 4 3 2 1 0 біти 0 0 0 0 0 1 0 1
Так байт для числа «п’ять» має вигляд: 00000101
= 0·27 + 0·26 + 0·25 + 0·24 + 0·23 + 1·22 + 0·21 + 1·20 = 5 (десяткове представлення)
Десяткове предст. |
Двійкове предст |
Десяткове предст. |
Двійкове предст |
1 |
00000001 |
7 |
00000111 |
2 |
00000010 |
8 |
00001000 |
3 |
00000011 |
9 |
00001001 |
4 |
00000100 |
10 |
00001010 |
5 |
000000101 |
………. |
……. |
6 |
000000110 |
255 |
11111111 |
Перетворимо число 5 з десяткового представлення у двійкове. Для цього необхідно справа від числа 5 записати остачу від ділення на два, а саме 1. Цілу частину від ділення числа 5 на 2 (а саме число 2) записуємо під числом 5. Цей процес продовжуємо доти, поки зліва не отримаємо 0.
5 |
1 |
Нульвий розряд |
2 |
0 |
Перший розряд |
1 |
1 |
Другий розряд |
0 |
|
|
Шістнадцяткове представлення.
Використовується для представлення адрес, а саме адрес команд та значень у пам’яті. Використовується 16 різних символів: 0…9, A, B, C, D, E, F для запису довільного числа.
Наприклад,
число «п’ятнадцять»: у десятковому представленні – 15
у шіснадцятковому представленні - F
Представлення символьних значень
Для представлення символьних значень використовується 1 байт (у відповідності з таблицею ASCII). Таблиця ASCII складається з 255 символів. Код довільного символу лежить в межах 0..255. Для кодування 1 символу достатньо 1 байта (8 біт).
З 7 по 13 символи – це коди невидимих символів (Esc, Enter, пробіл, тощо)
128…159 – буква А…Я
160…175 – букви а…п
224…239 – букви р…я
Представлення чисел з плаваючою крапкою
Число 0.0028 можна представити:
-
.28Е-2 (математичний запис 0.28·10-2) або
-
2.8Е-3 (математичний запис 2.8·10-3) або
-
28.0Е-4 (математичний запис 28·10-4) або
-
.0028Е0 (математичний запис 0.0028·100)
Розрізняють нормалізоване та ненормалізоване представлення.
Представлення f нормалізоване, якщо:
Для числа 0.0028
-
.28Е-2 – нормалізоване представлення
-
2.8Е-3
-
28.0Е-4 - ненормалізовані представлення
-
.0028Е0
Усі дійсні значення в пам’яті комп’ютера зберігаються та обробляються в нормалізованому представлення з плаваючою крапкою. Це пов’язано з тим, що деяке дійсне число в звичному для нас представленні з фіксованою крапкою обробляється набагато повільніше ніж це число у представленні з плаваючою крапкою.
Забезпечує обробку дійсних чисел з плаваючою крапкою так званий співпроцесор.
Варто також пам'ятати, що у випадку представлення чисел з крапкою, що плаває операції множення та ділення мають незначну похибку, а віднімання та додавання – значну похибку.
Тема 6. Вирази та операції C++ Builder 6
План
-
Арифметичні операції.
-
Операції інкременту та декременту.
-
Команда присвоєння, суміщена з арифметичною операцією.
-
Математичні функції.
Арифметичні операції над даними (слайд 1)
Приорітет |
Операції |
Зміст операції |
1. |
+, - |
Присвоєння знака |
2. |
*, / , % |
Множення, ділення, остача від ділення. |
3. |
+, - |
Додавання, віднімання. |
4. |
==, != , < , <= , > , >= |
Порівняння (відношення) |
Операції наведені відповідності до приорітету їх виконання. Виконання кожної операції здійснюється з урахуваням їхніх приорітетів (тут 1 – найвищий). Для зміни звичайного порядку виконання операцій використовують круглі дужки.
Опреації присвоєння знака - визначають діапазон значень від -∞ і до 0 відповідно для знаку «-», та від 0 до +∞(нуль також входить в цей діапазон).
Операції : Множення, ділення, остача від ділення, додавання, віднімання виконують відповідні відомі операції.
Розглянемо приклади виконання даних операцій:
2*-5+4= -6;
2*(-5+4)= -2;
7%3= 1;
12/4-2= 1;
12/(4 - 2)= 6;
7%3* -5= -5.
Розглянемо операції порівняння. Операція == означає дорівнює, != відповідно означає «не дорівнює», <= відповідно менше або рівне, >= - більше або рівне.
Приклад 2.
Нехай х=3, у=5.
1. |
х==у |
False (хибність) |
Адже 3 не дорівнює 5 |
2. |
х!=у |
True (істина) |
|
3. |
х > у |
False (хибність) |
Вираз 3>5 невірний. |
4. |
х <= (у-2) |
True (істина) |
3 <= (5-2 ) вірно. Вираз 3 >= (5-2 ) також вірний. |
Операції інкременту (++) та декрименту (--). Операції інкременту та декрименту існують в двох формах – префіусній та ппостфіксній. Якщо символи ++ (--) записані перед зміною – тоце інкремент (декримент) у префіксній формі, а якщо після змінної – постфіксній. Операція інкременту має вигляд
++<змінна> або <змінна>++
Дія операції. Значення зміної збільшується на одиницю. Команди ++а, а++ рівносильні команді а=а+1. форма інкременту (дектементу) впливає на порядок виконання операцій у виразах. Розгялнемо цена прикладі:
Приклад 3. результати виконання команд
int b, a=2;
b=3*++a;
будуть такими: а=3, b=3*3=9. Тут використано операцію інкременту у префіксній формі: спочатку збільшується значення змінної а на одиницю, а пізніше обчислюється вираз.
Приклад 4. Розглянемо команди
с=5; d=(c++)+4;
Тут спочатку обчислюється вираз (для d) з c=5, а потім збільшується значення змінної c на одиницю. Тобто d=c+4=5+4=9, c=c+1=5+1=6 (це операція інкременту у постфіксній формі). Оскільки у виразі записаео три знаки плюс «+» підряд, то для однозначного значення порядку операцій використано круглі дужки.
Аналогічно операція декременту має вигляд:
++<змінна> або <змінна>++
Значення змінної зменшується на одиницю. Команди --а та а-- діють як команда а=а-1.
Пирклад 5. Результати виконання команд
Х=4;
У=15/--х;
Будуть такими: х=3, у=15/3=5. Тут спочатку значення змінної х зменшуються на одиницю, а пізніше обчислюється вираз для у.
Приклад 6. Під час виконання виконання команд
f=20;
g=(f--)-10;
змінним f, g будуть надані значення 19 і 10 відповідно.
Команда присвоєння, суміщена з арифметичною операцією.
Команда присвоєння, суміщена з арифметичною операцією. Щоб надати значення змінній, можн скористатися командою присвоєння, суміщеною з деякою арифметичною опнрацією, а саме: +=, -=, *=, /=, %=. Загальний вигляд команди присвоєння, суміщеної з арифметичною опнрацією, такий:
<змінна><символ арифметичної операції>=<вираз>
Зауважимо, що між символом арифметичної операції та символом «=» пропуск не допукається (це лексема.)
Наприклад, команди
а=а+10 та а+=10 – рівносильні.
Виконавши їх одержимо однаковий результат, хоча оптимальніше використовувати а+=10. А замість команди с=4*с можна написати с*=4.
Математичні функції
Усі стандартні математичні функції у С++ поисані у бібліотеці math.h. Тому, якщо вони використовуються, на початку програми необхідно записати рядок підєднання потрібного файлу заголовків
#include<math.h>;
Основні математичні функції бібліотеки math.h. наведені у таблиці, аргументи функцій записані в круглих дужках.
Назва функції |
Математичний запис |
Назва функції |
Математичний запис |
abs(x) |
|x| |
fabs(x) |
|x| |
cos(x) |
cos(x) |
acos(x) |
arcos(x) |
sin(x) |
sin(x) |
asin(x) |
arsin(x) |
tan(x) |
tg(x) |
atan(x) |
artg(x) |
log(x) |
ln(x) |
ceil(x) |
Заокруглює число х до більшого цілого |
sqrt(x) |
Корінь х |
floor(x) |
Відкриває дробову частину числа х |
exp(x) |
е в степені х |
fmod(x, y) |
Обчислює остачу від ділення числа х на число у. |
pow10(x) |
10 в степені x |
||
log10(x) |
lg(x) |
|
|
Усі наведені функції, крім abs(x) і pow10(x), мають тип аргументу і результат double. Для функції abs(x) та pow10(x) типом аргументу і результатом є int.
Приклад 7.
Int x =-2,x1,a=3;
float pi =3.1415926,m=16,kut,k;
тоді у результаті виконання команд
x1=abs(x); a=pow10(a);
kut=cos(2*pi);
k=pow(m, 1./4);
m=sgrt()m;
змінними х1, а, k, kut, m будуть надані наступні значення:
x1=abs(-2)=|-2|=2;
a=pow10(3)==1 000;
kut=cos(2*3.1415926)=1;
Тема 7. Цикли та розгалуження в C++ Builder 6
План
-
Умовні оператори
-
Оператори циклу
-
Оператори вибору