Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Pascal.rtf
Скачиваний:
5
Добавлен:
22.11.2019
Размер:
2.69 Mб
Скачать

Тема 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.5729×101, де 0.5729 – мантиса, 10 – основа системи числення, 1 – порядок числа, або так – 0.5729Е1.

10 000 = 1.0 ×104 або 1.0Е4;

0.0000034 = 3.4×10-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. Тобто для короткого дійсного замість -64£p£63, значення порядку буде 0£ p’ £127, де p’< 64 - від’ємний порядок, р’ ³ 64 - додатний порядок. Це спрощує дії над числами та полегшує виконання операцій порівняння.

У програмах мовою Паскаль для подання дійсних чисел використовують 5 типів, характеристики яких наведені у табл. 3.

Таблиця 3 – Дійсні типи даних мови Паскаль

Назва

Розрядність

Діапазон значень

Кількість значущих цифр

real

6 байт

2.9×10-38 ... 1.7×1038

11– 12

single

8 байт

1.5×10-45 ... 3.4×1038

7 – 8

double

8 байт

5.0×10-324 ... 1.7×10308

15 – 16

extended

10 байт

1.9×10-4951 ... 1.7×104932

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 байт. Змінні булового типу використовуються при обчисленні логічних виразів та при роботі операторів розгалуженого та циклічного обчислювальних процесів.

Контрольні запитання за темою

  1. Що таке тип даних? Чому у програмі всі змінні мають бути описаними певним типом даних?

  2. На які типи можна розділити всю множину чисел?

  3. Від чого залежить діапазон припустимих значень цілого числа?

  4. Чим за внутрішнім поданням відрізняються цілі зі знаком і цілі без знаку?

  5. Які цілочисельні типи мови Паскаль ви знаєте?

  6. Які форми запису дійсних чисел ви знаєте?

  7. Як подаються в ЕОМ дійсні числа? Що таке експонента (порядок) числа і мантиса?

  8. Як зберігаються числа, які мають від’ємну експоненту ?

  9. Які дійсні типи мови Паскаль ви знаєте? Що таке точність числа?

  10. Як подаються в ЕОМ символьні типи даних?

  11. Що являє собою логічний тип даних?