Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОТ Методичка

.pdf
Скачиваний:
7
Добавлен:
17.03.2016
Размер:
618.24 Кб
Скачать

Короткі теоретичні відомості

Прості типи даних

Будь-які дані, тобто константи, змінні, значення функцій або виразів, в 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

,