ОТ Методичка
.pdfКороткі теоретичні відомості
Прості типи даних
Будь-які дані, тобто константи, змінні, значення функцій або виразів, в Turbo Pascal характеризуються власними типами. Тип визначає множину припустимих значень, які може приймати той або інший об’єкт, а також множину припустимих операцій, які можна над ним виконувати. Крім того тип визначає формат внутрішнього представлення даних у пам’яті ЕОМ. Структура типів даних Turbo Pascal наведена на рис. 2.1.
|
|
|
Перелічува |
|
|
|
льні |
|
|
|
Тип- |
|
|
|
діапазон |
|
Порядкові |
|
Логічний |
|
|
||
|
Прості |
|
Символьни |
|
Дійсні |
|
|
|
|
й |
|
|
|
|
|
|
Файли |
|
Цілі |
|
Записи |
|
|
|
Структуров |
|
|
Типи |
ані |
|
|
Множини |
|
|
Вказівники
Масиви
Строковий
тип
Поцедурни
й
Об'єкти
Рис. 2.1. Структура типів Turbo Pascal.
Порядкові типи характеризуються тим, що кожен з них має кінцеву множину можливих значень. Ці значення можливо певним способом впорядкувати, відповідно кожному значенню порядкового типу можна спів ставити певне ціле число - його порядковий номер.
Дійсні типи також мають кінцеву кількість значень, яка визначається внутрішнім представленням дійсного числа. Але кількість значень настільки
велика, що спів ставити кожному значенню порядковий номер вважається неможливою задачею.
|
|
|
|
|
|
|
|
|
Таблиця 2.1. Порядкові типи даних |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Група |
|
|
Тип |
Розмір в байтах |
Діапазон |
||||||||
|
|
Цілі |
|
|
byte |
1 |
|
|
0..255 |
|
|
|
||
|
|
|
|
|
shortint |
1 |
|
-128..127 |
|
|
|
|||
|
|
|
|
|
integer |
2 |
|
-32678..32677 |
|
|
|
|||
|
|
|
|
|
longint |
4 |
|
-2147483648..2147483647 |
|
|
|
|||
|
|
|
|
|
|
word |
2 |
|
0..65535 |
|
|
|
||
|
Логічний |
|
boolean |
1 |
|
true, false |
|
|
|
|||||
|
Символьний |
|
|
char |
1 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Таблиця 2.2. Дійсні типи даних |
|||||
|
|
|
|
|
|
|
Кількість цифр |
|
|
|||||
Група |
|
Тип |
|
Промір в байтах |
Діапазон |
|
|
|||||||
Дійсні |
|
real |
|
|
6 |
10-39..1038 |
|
11-12 |
|
|
|
|||
|
|
|
single |
|
|
4 |
10-45..1038 |
|
7-8 |
|
|
|
||
|
|
|
double |
|
|
8 |
10-324..10308 |
|
15-16 |
|
|
|
||
|
|
|
extended |
|
|
10 |
10-4951..104932 |
|
19-20 |
|
|
|
При використанні процедур та функцій з цілочисельними параметрами потрібно керуватися «вкладеністю» типів, тобто наприклад де може використовуватись тип word? допускається використання типу byte, але не навпаки, оскільки тип byte повністю входить у діапазон значень типу word.
При роботі з цілими числами тип результату буде відповідати типу операндів, якщо операнди відносяться до різних типів даних, то результат буде приведений до типу з максимальним діапазоном значень. Переповнення типів даних не контролюється, топу це може призвести до непорозуміння, помилки.
Значеннями логічного типу може бути одним з двох: true (істина), false (брехня). Розглянемо декілька прикладів логічних виразів (табл. 2.3).
|
|
Таблиця 2.3. Приклади логічних виразів |
|
|
|
|
|
Вираз |
Результат |
Пояснення |
|
4=4 |
true |
Твердження істинне |
|
5>=4 |
true |
Твердження істинне |
|
0<0 |
false |
Твердження хибне, 0 рівний 0 |
|
1>7 |
false |
Твердження хибне |
|
Значеннями символьного типу є множина всіх символів ПК. Кожному символу присвоюється ціле число в діапазоні 0..255. Це число є кодом внутрішнього представлення числа. Для кодування символів використовується код ASCII (American Standard Code for Information Interchange – американський стандартний код для обміну інформацією) Це 7- бітний код, за допомогою якого можна закодувати лише 128 символів в діапазоні 0..127. Використання 8-го біту дозволяє закодувати в два рази більше символів. Перша половина символів ПК з кодами 0..127 відповідає стандарту ASCII. Друга половина символів з кодами 128..255 не обмежена стандартом і може різнитися в залежності від типів ПК. Таблиця кодів ASCII наведена в додатку 2.
Перелічувальний тип задається поліченням тих значень, котрі він може отримувати. Кожне значення іменується певним ідентифікатором та розташовується в переліку, обрамленому в круглі дужки. Наприклад:
Type
tWeekDay=(Mon, Tue, Wed, Thu, Fri, Sat, Sun);
Тип-діапазон є підмножиною свого базового типу, у якості якого може виступати будь-який порядковий тип, крім типу-діапазон.Тип-діапазон задається межами власних значень всередині базового типу:
Type tDigit=0..9;
tNumber99=10..99;
На відміну від порядкових типів, значення яких завжди можна спів ставити з рядом цілих чисел, а відповідно представляються в ПК абсолютно точно, значення дійсних типів визначають будь-яке число з певною кінцевою точністю, яка залежить від внутрішнього формату дійсного числа.
Основні операції Turbo Pascal
Таблиця 2.4. Математичні операції
Пріоритет |
Позначення |
Назва |
Тип |
|
|
|
|
операндів |
|
|
|
|
|
|
|
|
|
Змішаний |
|
2 |
* |
Множення |
(цілі, |
|
|
|
|
дійсні) |
|
|
|
|
|
|
2 |
/ |
Ділення |
Змішаний |
|
2 |
div |
Ціла частина |
Цілий |
|
від ділення |
||||
|
|
|
||
2 |
mod |
Остача від |
Цілий |
|
ділення |
||||
|
|
|
||
3 |
+ |
Додавання |
Змішаний |
|
|
|
|
|
|
3 |
- |
Віднімання |
Змішаний |
|
|
|
|
|
Пріоритет |
Позначення |
Назва |
|
|
|
|
|
1 |
not |
Логічне заперечення «НЕ» |
|
|
|
|
|
2 |
and |
Логічне «І» |
|
|
|
|
|
3 |
or |
Логічне «АБО» |
|
|
|
|
|
3 |
xor |
Логічне «ВИКЛЮЧАЮЧЕ |
|
АБО» |
|||
|
|
Тип результату
Змішаний, якщо обидва операнди цілі, результат буде теж цілим
Дійсний
Цілий
Цілий
Змішаний, якщо обидва операнди цілі, результат буде теж цілим
Змішаний, якщо обидва операнди цілі, результат буде теж цілим
Таблиця 2.5. Логічні операції
Тип |
Тип |
операндів |
результату |
Логічний, |
Логічний, |
цілий |
цілий |
Логічний, |
Логічний, |
цілий |
цілий |
Логічний, |
Логічний, |
цілий |
цілий |
Логічний, |
Логічний, |
цілий |
цілий |
Таблиця 2.6. Операції порівняння
Пріоритет |
Позначення |
Назва |
Тип операндів |
Тип результату |
4 |
= |
Рівне |
Змішаний |
Логічний |
4 |
<> |
Не рвіне |
Змішаний |
Логічний |
4 |
> |
Більше |
Змішаний |
Логічний |
4 |
< |
Менше |
Змішаний |
Логічний |
4 |
>= |
Більше або рівне |
Змішаний |
Логічний |
4 |
<= |
Менше або рівне |
Змішаний |
Логічний |
Вбудовані функції та процедури
Таблиця 2.7. Математичні функції
Назва |
Математичний |
Тип |
Тип |
|||
|
|
|
еквівалент |
аргументу |
результату |
|
|
|
|
|
|
|
|
abs(x) |
| | |
|
цілий, |
цілий, дійсний |
||
|
дійсний |
|||||
sin(x) |
sin |
дійсний |
дійсний |
|||
cos(x) |
дійсний |
дійсний |
||||
arctan(x) |
cos |
дійсний |
дійсний |
|||
sqrt(x) |
|
|
|
дійсний |
дійсний |
|
√ |
||||||
sqr(x) |
цілий, |
цілий, дійсний |
||||
|
|
|
|
дійсний |
|
|
exp(x) |
|
|
|
дійсний |
дійсний |
|
|
|
|
|
|
|
|
ln(x) |
ln |
дійсний |
дійсний |
|||
|
|
|
||||
pi |
|
|
дійсний |
|||
frac(x) |
|
|
|
дійсний |
дійсний |
|
int(x) |
|
|
|
дійсний |
дійсний |
|
random |
|
|
|
|
дійсний |
|
|
|
|
|
|
|
|
random(x) |
|
|
|
Word |
Word |
|
|
|
|
|
|
|
|
succ(c) |
|
|
|
Порядковий |
Порядковий |
|
pred(c) |
|
|
|
Порядковий |
Порядковий |
Результат розрахунку
абсолютне значення «x»
сінус «х» рад косинус «х» рад арктангенс «х»,
22
корінь квадратний з «х»
квадрат «х»
значення константи «е» в степені «х» натуральний логарифм «х»,
0
вбудована константа дробова частина «х» ціла частина «х» Випадкове число
01
Випадкове число
0
наступний за «с» символ попередній за «с» символ
|
|
Таблиця 2.8. Математичні процедури |
||
|
|
|
|
|
Назва |
Тип аргументу |
Тип значення |
Результат розрахунку |
|
inc(x) |
цілий |
цілий |
Збільшує «х» на 1 |
|
dec(x) |
цілий |
цілий |
Зменшує «х» на 1 |
|
inc(x,n) |
цілий |
цілий |
Збільшує «х» на «n» |
|
dec(x,n) |
цілий |
цілий |
Зменшує «х» на «n» |
|
|
|
|
Таблиця 2.9. Функції перетворення типів змінних |
|
|
|
|
|
|
Назва |
Тип аргументу |
Тип |
|
Результат розрахунку |
|
|
значення |
|
|
|
|
|
|
|
trunc(x) |
дійсний |
longint |
|
ціла частина «х» |
round(x) |
дійсний |
longint |
|
Округлює «х» до цілого |
odd(x) |
цілий |
логічний |
|
повертає «true» якщо «х» непарне |
chr(x) |
byte |
char |
|
Символ ASCII коду «х» |
ord(c) |
char, |
byte, longint |
|
ASCII код символу «с», порядковий номер |
|
порядковий |
|
|
символу «с» |
|
|
|
|
|
Приклад часткового розв’язку задачі
Дано вираз:
√ |
|
де , |
, |
|
||
Знайдемо ОДЗ виразу. Розіб’ємо вираз на окремі частини, випишемо ОДЗ для кожної з них, а потім об’єднаємо результат.
|
|
|
Вираз |
ОДЗ |
|
|
Пояснення |
||||||
|
| |
|
| |
|
|
|
|
0 |
|
|
0 |
|
Степенева функція |
|
|
|
|
|
|
|
|
|
Ділення на 0 |
||||
|
|
|
|
|
|
|
|
|
|
Підкореневий вираз |
|||
|
|
| |
| |
|
|
|
|
|
|
0 |
|
Ділення на 0 |
|
|
|
|
|
|
|
|
|
|
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
|
|
|
0 |
|
|
|
Підкореневий вираз |
||
|
√ |
|
|
|
|
|
|
|
|
0 |
Підлогарифмічний вираз |
||
|
|
|
√ |
|
|
|
|||||||
|
|
|
√ |
|
|
Результуюче ОДЗ:
0
0
Запишемо вираз на мові Turbo Pascal:
y=(x+exp( ln(x)*exp(x) )/sqrt( (a+x)/abs(a+x) )+ln(x+exp( ln(x)/n)/ln(5)
ОДЗ Pascalвиразу не змінилось.
Контрольні питання
1.Що таке тип даних?
2.Назвіть цілочисельні типи даних.
3.Назвіть дійсні типи даних.
4.Які значення може приймати значення логічного типу даних?
5.Яка різниця між типом shortint та byte?
6.Які значення може приймати змінна типу byte?
7.Яка різниця між типом longint та char?
8.Для чого використовується операція div?
9.Для чого використовується операція mod?
10.Які типи даних можуть використовуватись з операціями div або mod?
11.Який тип даних використовується для представлення символів? 12.Назвіть арифметичні операції які є в Turbo Pascal. Розташуйте
арифметичні операції по пріоритетам.
13.Назвіть вбудовані тригонометричні функції які є в Turbo Pascal. 14.Яким чином виконати в Turbo Pascal операцію піднесення до
степеню виду ax .
15.За допомогою якої функції можна отримати квадратний корінь числа.
16.За допомогою яких функцій можна збільшити або зменшити цілочисельної змінної на 1.
17.Виконайте перетворення арифметичного виразу у вираз на мові Turbo Pascal. Випишіть ОДЗ для арифметичного виразу та виразу на мові Turbo Pascal. Порівняйте отримані ОДЗ між собою. Вираз задає викладач.
18.Як чином використовується форматований вивід в Turbo Pascal?
19.Для чого потрібно виконувати форматування тексту програми?
20.Виконайте форматування тексту програми. Текст програми надає викладач.
Лабораторна робота №3
Процеси розгалуження
Мета
Навчитись використовувати оператори розгалуження IF та CASE. Мати поняття про вкладення операторів. Мати поняття про операторні дужки.
Хід роботи
Вирішити задачу трьома способами в межах однієї програми:
•З використанням оператора IF та логічних операцій. Перевірка виразу на ОДЗ є обов’язковою.
•З використанням оператора IF та без використання логічних операцій. Перевірка виразу на ОДЗ є обов’язковою.
•З використанням оператора Case. Селектор вибору має цілий тип даних та набуває свого значення в одному із розв’язків задачі за допомогою оператора IF.
|
Варіанти завдань |
0, |
0 |
|
1. |
, |
0 |
||
|
, |
1, |
1, |
|
|
, |
0, |
0 |
|
,
2. , 2 , 0 ,в інших випадках
3. |
|
|
|
, |
|
0, |
0 |
|
|
|
|
|
, |
|
0, |
|
0 |
|
|
|
|
, |
|
0 |
|
|
4. |
z |
. |
| | |
, |
, |
0, |
0 |
0 |
|
|
|
, |
, |
|
0 |
5 |
|
|
|
|
|
|
0, |
5.,
,
, 5, 10
6.,
, 20, 0
7. |
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
8. |
|
|
|
|
|
|
|
, |
|
|
, |
20 |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
,| |
|
|
| |
|
|
|
|
|
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
, |
|
0 |
|
|
|||
|
|
|
|
|
|
0, |
|
|
|
|
|||
9. |
|
|
|
|
|
, |
0, |
|
|
0 |
|
|
|
|
|
|
|
|
|
, |
0, |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
,в інших випадках |
||||||
10. |
|
|
|
|
|
|
|
, |
|
6 |
|||
|
|
|
|
|
|
|
|
,| |
| |
,
11.
12.
|
13.
14.
15.√
16.
|
17.|
18.
. |
|
|
|
|
,| |
| |
|
||||
|
|
|
|
|
|
|
,| |
| |
1 |
||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
, |
|
, |
|
0 |
|
|
|
|
|
|
|
|
| | |
6 |
|
|||
| |
, |
|
|
||||||||
, |
|
0, |
|
0 |
|||||||
|
|
|
|
|
, |
|
0,4 |
3 |
10 |
||
|
|
|
|
|
|
||||||
| |
|
|
, |
, |
0, |
||||||
|
|
| |
0, |
0 |
|||||||
|
|
|
|
|
|
, |
0, |
|
; ; |
||
|
|
|
|
|
|
, |
|
|
|
, |
0 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
, |
,в інших випадках |
|||||
|
|
|
|
|
|||||||
|
|
|
|
|
, |
| |
, |
|
0 |
|
|
|
|
|
|
|
,| |
, |
|
, |
6 |
||
|
|
|
|
|
| |
, |
, |
|
4 |
||
| |
|
|
, |
|
, |
. |
|||||
|
|
|
, |
|
|
|
, |
0 |
|||
, |
|
|
0 |
, |
|
|
|
0 |
|
||
, |
|
|
0 |
|
|
|
|
|
|
,
19.,
,в інших випадках
20. |
, |
0, |
0 |
|
| | |
, |
4 |
4, 2 |
2 |
, |
|