logo search
методичка_1_05_ВНУ

Стандартні типи даних

Цілий тип

Значеннями типу integer є елементи підмножини цілих чи­сел. Цю підмножину визначає конкретна реалізація мови. Для кожної реалізації є деяке число maxint - ціла стала, така, що ціле число N можна використати в програмі, якщо воно не ви­ходить за межі діапазону -maxint<=N<=maxint.

Цілий тип у ТР наводять за допомогою п'яти стандартних типів (табл. 2.1).

Шістнадцяткові сталі в ТР записують зі знаком $ перед числом: $8В34, $312.

Спроба обчислити вираз, значення якого виходить за межі діапазону, призводить до помилки під час виконання програми.

Таблиця 2.1. Цілий тип у Турбо Паскалі

Тип

Діапазон

Ємність пам'яті, байт

shortint

-128.. 127

1

integer

-32768..32767

2

longint

-2 1 47483648. .2 1 47483647

4

Byte

0..255

1

Word

0.. 65535

2

Наступні операції, застосовані до цілих операндів (тобто змінних, сталих, над якими виконують операції), дають цілі значення: + , - , * , div (ділення з відкиданням остачі) і mod (взяття остачі від ділення).

Відповідно й вирази, які об'єднують цими знаками ціло­числові змінні і сталі, даватимуть цілі значення. Приклад ціло­числових виразів:

const

d=10;

var

a, b, c: integer;

Тоді можна будувати такі цілочислові вирази:

а+b;

a+b div с; b-100; b mod d+1;

Операції множення, ділення і взяття остачі рівноцінні щодо послідовності виконання і виконуються перед додаванням та відніманням. Як і в звичайних алгебраїчних позначеннях, по­слідовністю виконання операцій можна керувати за допомо­гою дужок: (3+6)*2=18.

У результаті цілочислового ділення одержують завжди ціле число, остачею ігнорують:

5 div 2 = 2, (-7) div 2 =-3, (-7) div (-2) = 3, 3 div 4 = 0,

тобто результат операції div дорівнює 0, якщо дільник більший від діленого.

Знаходять остачу так:

14 mod 5 = 4, 3 mod 5 = 3, (-14) mod 3 = 1.

Значення цілочислового виразу можна присвоїти змінній як цілого, так і дійсного типів. У другому випадку ціле значення виразу перетворюється до дійсного типу і присвоюється змін­ній дійсного типу. Це так зване неявне перетворення типу.

Якщо п - ціла змінна, то процедура read(n) приводить до введення числа із зовнішнього середовища, перетворення його до цілого значення і присвоєння цього значення змінній n. Якщо числам, що вводять, передують пропуски, то процедура read їх ігнорує.

Аналогічно процедура write(n:p), де п - змінна типу integer або вираз цілого типу, виводить ціле число на зовнішній пристрій (р - ширина поля). Ціле число буде розміщене в правій частині поля, а ліва доповниться пропусками. Якщо заданої ширини поля замало для розміщення числа, то поле автома­тично розширюється. Параметр "ширина поля" можна і не за­значати, тоді буде деяка стандартна ширина поля для заданої системи, наприклад 10, тобто write(n) тотожне write(n:10).

Такі функції дають цілочисловий результат:

abs(n) - абсолютне значення числа п, де п - ціле;

sqr(n) - піднесення до квадрата числа п. Однак, якщо аргумент цих функцій - дійсне число, то результатом теж буде дійсне число.

Функції pred і succ мають завжди цілочислові аргументи і дають цілочислове значення:

pred(i) - дає попереднє ціле значення, що дорівнює (М);

succ(i) - дає наступне ціле значення, що дорівнює (і+1).

Функції sin, cos, arctan, In, exp і sqrt можна виконувати з ці­лочисловими аргументами, проте результат буде завжди дійс­ний.

Функції trunc і round можна виконувати тільки з дійсними аргументами, однак вони дають цілочисловий результат:

trunc(r) - якщо r - дійсне, то результат - його ціла частина, оскільки дробова відкидається: trunc(3.7)=3;

round(r) - якщо r - дійсне, то результат - заокруглене ціле; round(r) для r>0 означає trunc(r+0.5), а для r<0 - trunc(r-0.5).