
- •Тема 1 Основні поняття мови Паскаль
- •Тема 2 Базові типи даних мови Паскаль
- •Тема 3 Структура програми мовою Паскаль
- •Тема 4 Операції над даними
- •Тема 5 Управління послідовністю дій у програмах мовою Паскаль
- •Тема 6 Організація циклічного обчислювального процесу
- •Тема 7 Організація масивів даних
- •Тема 8 Обробка файлів даних у програмах мовою Паскаль
- •Тема 9 Структура типів даних мови Паскаль
Тема 2 Базові типи даних мови Паскаль
Внутрішнє подання даних (формати даних)
Даними називається вся інформація, що введена для обробки в ЕОМ.
Дані можуть бути подані різним чином: числа, символьна інформація, графічні зображення та інше. Говорять, що дані подані в різній формі мають різний тип.
Тип даних – визначає множину значень, що може приймати змінна і припустимі над нею операції.
Скалярний (порядковий) тип даних – це тип, у якого множина припустимих значень обмежена і всі значення впорядковані.
Числові дані
В
сю
множину чисел можна умовно поділити на
дві категорії: цілі числа та дійсні
(рис. 1). В свою чергу по формі внутрішнього
подання числа розподіляються на знакові
(додатні та від’ємні) та беззнакові
(тільки додатні) цілі, дійсні з плаваючою
та фіксованою крапкою.
Діапазон припустимих значень залежить від розрядності числа. Наприклад, якщо для подання числа виділяється 1 байт (8 біт), то для беззнакового цілого мінімальне значення – 0, а максимально можливе значення буде 28=256. Для цілого зі знаком 1 (старший) біт відводиться для збереження знаку числа (1 – мінус, 0 – плюс). Це зменшує діапазон, тому мінімальне значення буде -27= -128, а максимально можливе значення 27=128 (рис.2).
У програмах мовою Паскаль для подання цілих чисел використовують 5 типів, характеристики яких наведені у табл. 1. Цілочисельні типи відносяться до скалярних типів даних.
а) № розряду 7 6 5 4 3 2 1 0 У десятковій
системі:
Значення 1 1 1 1 1 1 1 1 27+26+25+24+23+22+21+20=256
б) № розряду 7 6 5 4 3 2 1 0 У десятковій
системі:
Значення
Знак 1 1 1 1 1 1 1 26+25+24+23+22+21+20=128
Рис.2. Формати
цілих чисел (а – без знака, б – зі
знаком)
Таблиця 1 - Діапазон представлення цілих. |
||
Назва |
Діапазон значень |
Розрядність |
byte |
0 ... 255 |
8 бітів без знака |
word |
0 ... 65535 |
16 бітів без знака |
shortint |
-128 ... 127 |
8 бітів зі знаком |
integer |
-32768 ... 32767 |
16 бітів зі знаком |
longint |
-2147483648 ... 2147483647 |
32 біта зі знаком |
Для подання дійсних чисел припускаються дві форми:
-
з фіксованою крапкою.
Наприклад, 5.45, 0.009, 345.789 та інші. Це – канонічна форма запису дійсних чисел.
-
з плаваючою крапкою.
Наприклад, канонічне число 5.729 можна записати так – 0.5729101, де 0.5729 – мантиса, 10 – основа системи числення, 1 – порядок числа, або так – 0.5729Е1.
10 000 = 1.0 104 або 1.0Е4;
0.0000034 = 3.410-6 або 3.4Е-6.
Крім того, число треба записувати у нормалізованій формі: перед крапкою має бути одна значуща цифра (див. приклад).
Для дійсних чисел зберігаються значення мантиси і порядку. Вважається, що для подання використовується двійкова система числення. Від того скільки бітів відводиться для зберігання мантиси і порядку залежить точність числа, тобто кількість цифр числа з гарантованим значенням. Наприклад, при виконанні арифметичних операцій, можливе округлення результату. Точність визначає до якої значущої цифри відбудеться округлення.
Розміри порядку (експоненти) та мантиси числа наведені у табл. 2, формат запису двійкового числа на рис. 3, де M – кількість розрядів під мантису (відповідно до точності числа); P – кількість розрядів під експоненту; 1 розряд під знак числа (1 – від’ємне, 0 - додатне).
Розряди
К
К-1
К-2
…
3
2
1
0
Призначення
Знак Експонента
(порядок)
Мантиса
Кількість
бітів
P …
0
1
…
M
Рис. 3. Формат
двійкового числа з плаваючою крапкою
Таблиця 2 - Формати чисел з плаваючою крапкою.
Тип даних |
Кількість біт |
Кількість значущих цифр |
||
Загальна К |
Мантиса M |
Порядок P |
||
Коротке дійсне |
32 (4 байти) |
23 |
8 |
7 |
Довге дійсне |
64 (6 байт) |
52 |
11 |
15 -16 |
Розширене дійсне |
80 (8 байт) |
64 |
15 |
19 |
Для того щоб не зберігати від’ємний порядок, він подається у так званому зміщеному вигляді, тобто збільшеним на певну константу Т:
р’ = р + Т
Наприклад, для короткого дійсного на Т = 26 =64, довгого дійсного – 1023, розширеного дійсного – 16 383. Тобто для короткого дійсного замість -64p63, значення порядку буде 0 p’ 127, де p’< 64 - від’ємний порядок, р’ 64 - додатний порядок. Це спрощує дії над числами та полегшує виконання операцій порівняння.
У програмах мовою Паскаль для подання дійсних чисел використовують 5 типів, характеристики яких наведені у табл. 3.
Таблиця 3 – Дійсні типи даних мови Паскаль |
|||
Назва |
Розрядність |
Діапазон значень |
Кількість значущих цифр |
real |
6 байт |
2.910-38 ... 1.71038 |
11– 12 |
single |
8 байт |
1.510-45 ... 3.41038 |
7 – 8 |
double |
8 байт |
5.010-324 ... 1.710308 |
15 – 16 |
extended |
10 байт |
1.910-4951 ... 1.7104932 |
19 – 20 |
comp |
8 байт |
-2 63 +1... 2 63 –1 |
19 – 20 |
Докладніше про тип comp . Цей тип поєднує в собі властивості цілого та дійсного. Змінні цього типа можуть приймати тільки цілі значення (властивості цілих типів), але тип comp не є скалярним (порядковим) типом даних.
Використання типів, single, double, extended можливе тільки при наявності арифметичного співпроцесора.
Символьні дані
Значенням символьного типу є множина всіх символів ПК. Кожному символу ставиться у відповідність ціле число в діапазоні 0 .. 256. Це число служить кодом внутрішнього подання символу (див. додаток А). Для кодування використовується ASCII - код (American Standard Code for Information Interchange – американський стандартний код для обміну інформацією). [3]
Символьні дані описуються у програмі типом CHAR, для збереження такої змінної відводиться 1 байт.
Константою літерного типу є одна з допустимих літер, що взята в одиничні лапки ( ’ ’ ).
Наприклад, якщо задекларована змінна A: CHAR , то для присвоєння їй певного значення можна задати оператор:
A:=’d’;
Фактично змінна А буде зберігати код (згідно ASCII - стандарту) літери d.
Для прямого та зворотного зображення множини символьних значень на підмножину натуральних чисел в мові Паскаль використовуються дві стандартні функції:
ORD (c:char): byte - дає ASCII – код символу;
CHR (N: byte) :char - дає символ з кодом N.
Логічний (булів) тип даних
Змінна типу BOOLEAN може приймати тільки 2 значення: істина (TRUE=1) або лож (FALSE=0) і займає 1 байт. Змінні булового типу використовуються при обчисленні логічних виразів та при роботі операторів розгалуженого та циклічного обчислювальних процесів.
Контрольні запитання за темою
-
Що таке тип даних? Чому у програмі всі змінні мають бути описаними певним типом даних?
-
На які типи можна розділити всю множину чисел?
-
Від чого залежить діапазон припустимих значень цілого числа?
-
Чим за внутрішнім поданням відрізняються цілі зі знаком і цілі без знаку?
-
Які цілочисельні типи мови Паскаль ви знаєте?
-
Які форми запису дійсних чисел ви знаєте?
-
Як подаються в ЕОМ дійсні числа? Що таке експонента (порядок) числа і мантиса?
-
Як зберігаються числа, які мають від’ємну експоненту ?
-
Які дійсні типи мови Паскаль ви знаєте? Що таке точність числа?
-
Як подаються в ЕОМ символьні типи даних?
-
Що являє собою логічний тип даних?