
- •М іністерство транспорту та Зв’язку україни Дніпропетровський національний університет залізничного транспорту імені академіка в. Лазаряна
- •49010, Вул. Акад. Лазаряна, 2, Дніпропетровськ, 10 Лабораторна робота n 3 Тема: Типи даних. Організація циклів.
- •1. Мета роботи
- •2. Підготовка до роботи
- •3. Порядок виконання роботи
- •5. Короткі теоретичні відомості
- •5.1. Типи даних
- •5.1.1. Стандартні типи даних
- •5.1.2. Користувацькі типи даних
- •5.2. Вирази, операнди, операції
- •5.2.1. Арифметичні вирази й операції
- •5.2.2. Вирази й операції співвідношення
- •5.2.4. Пріоритет операцій
- •6. Приклади розробки алгоритмів і програм
- •Протокол роботи програми lr1a:
- •Обчислення нод. Розкладаємо числа на прості множники:
- •Протокол роботи програми lr1 b:
- •7. Завдання до лабораторної роботи № 3 Розробити три програми (у кожній по одному з операторів циклу)
- •Лабораторна робота № 4 Тема: Структуровані типи даних. Масив.
- •4. Короткі теоретичні відомості.
- •4.1. Масив. Опис типу
- •4.2. Дії над елементами масиву
- •5. Приклад
- •6. Варіанти індивідуальних завдань до лабораторної роботи
5.1.2. Користувацькі типи даних
Інтервальний тип (це користувальницький тип) дозволяє задавати дві константи, що визначають межі діапазону значень для даної змінної. Компілятор при кожній операції зі змінною інтервального типу генерує підпрограми перевірки, що визначають, чи залишається значення змінної усередині встановленого для неї діапазону.
Обидві константи повинні належати одному зі стандартних типів (нагадаємо, що тип real тут неприпустимий). Значення першої константи повинне бути обов'язково менше значення другої.
Формат: Туре <ім'я типу> = <константа1> . . <константа2>;
Var <ідентифікатор, . . . > : <ім'я типу>;
Приклад.
Туре Dni = 1 .. 31;
Var RabDni, BolnDni : Dni;
У цьому прикладі перемінні RabDni і BolnDni мають тип Dni і можуть приймати будь-які значення з діапазону 1..31. Вихід з діапазону викликає програмне переривання.
Можна визначити интервальный тип і більш універсальним способом, задавши границі, діапазону не значеннями констант, а їх іменами :
Const Min = 1; Max = 31;
Type Dni = Min .. Max;
Var RabDni, BolnDni : Dni;
Структуровані типи у своїй основі мають один або кілька скалярних типів даних і визначають упорядковану сукупність скалярних перемінних і характеризуються типом своїх компонентів. До структурованих типів відносяться рядки, масиви, множини, записи, файли, покажчики, процедурні типи й об'єкти. Усі вони вимагають окремого розгляду і докладно будуть розглянуті в наступних лабораторних роботах.
5.2. Вирази, операнди, операції
Перемінні і константи всіх типів використовуються у виразах. Вираз задає порядок виконання дій над елементами даних і складається з операндів (констант, перемінних, звертань до функцій), круглих скобок і знаків операцій. Операції визначають дії, який треба виконати над операндами. Наприклад, у вираженні (X + Y - 10) X, Y і 10 - операнди; "+", "-" - знаки операцій додавання і вирахування. У найпростішому випадку вираз може складатися з однієї перемінної або константи. Круглі скобки ставляться так само, як і в звичайних арифметичних виразах для керування асоціативністью і порядком виконання операцій.
Операції в мові Паскаль підрозділяються на:
Арифметичні
операції співвшдношення
логічні (булевскі) операції,
операцію @,
Три перші групи операцій описані в даній роботі, інші будуть розглянуті при описі відповідних типів даних.
5.2.1. Арифметичні вирази й операції
Арифметичний вираз породжує ціле або дійсне значення. Найбільш простими формами арифметичних виразів є: ціла або дійсна константа без знака; ціла або дійсна змінна; елемент масиву цілого або дійсного типу; функція, що приймає ціле або дійсне значення.
Значення змінної або елемента масиву повинне бути визначене до їхньої появи в арифметичному виразі. Інші арифметичні вирази складаються з перерахованих вище простих форм шляхом застосування круглих скобок і арифметичних операцій.
Арифметичні операції виконують арифметичні дії у виразах над значеннями операндів цілих і дійсних типів. Таблиця 5. Арифметичні операції
Операція |
Дія |
Типи операндів |
Тип результату |
Бінарні операції |
|||
+ |
Додавання |
Цілий |
Цілий |
Додавання |
Дійсний |
Дійсний |
|
- |
Вирахування |
Цілий |
Цілий |
Вирахування |
Дійсний |
Дійсний |
|
* |
Множення |
Цілий |
Цілий |
Множення |
Дійсний |
Дійсний |
|
/ |
Ділення |
Цілий |
Дійсний |
Ділення |
Дійсний |
Дійсний |
|
div |
Ділення цілих |
Цілий |
Цілий |
mod |
Ділення по модулю |
Цілий |
Цілий |
and |
Логічне множення |
Цілий |
Цілий |
or |
Логічне додавання |
Цілий |
Цілий |
xor |
Виняткове |
Цілий |
Цілий |
shl |
Зсув вліво |
Цілий |
Цілий |
shr |
Зсув вправо |
Цілий |
Цілий |
Операції додавання ( + ), вирахування (-), множення (*) і ділення (/) виконуються так само, як і в звичайних арифметичних виразах.
Ділення цілих (div) відрізняється від звичайної операції ділення тим, що повертає цілу частина частки, дробова частина відкидається. Перед виконанням операції обидва операнди округляються до цілих значень.
Вираз Результат
11 div 5 2
10 div 3 3
2 div 3 0
Ділення по модулю (mod) – (залишок від ділення цілих) відновлює залишок, отриманий при виконанні ділення цілих. Вираз Результат
11 mod 5 1
10 mod 3 1
Логічні операції (not,and,or,xor) виконуютьсянад логічними аргументами, тобто такими, що приймають значення 1 (true) чи 0 (false).
Логічне множення (and) виконується у відповідності із наступною таблицею істиності, тобто значення логічної одиниці результат прийме лише тоді і тільки тоді коли обидва аргументи мають значення логічної одиниці.
Аргумент 1 |
Аргумент 2 |
Результат |
True |
True |
True |
True |
False |
False |
False |
False |
False |
False |
True |
false |
Приклад:
Var a , b, c doolean;
Begin
a := true;
b := false;
c := b and a
{c = false}
Логічна сума (or) виконується у відповідності із наступною таблицею істиності, тобто значення логічної одиниці результат прийме лише тоді і тільки тоді коли хоча б один з двох аргументыв дорівнює логічній одиниці.
Аргумент 1 |
Аргумент 2 |
Результат |
True |
True |
True |
True |
False |
True |
False |
False |
Talse |
False |
True |
True |
|
|
|
Сума за модулем 2 (xor) виконується у відповідності із наступною таблицею істиності.
Аргумент 1 |
Аргумент 2 |
Результат |
True |
True |
False |
True |
False |
True |
False |
False |
True |
False |
True |
False |
Логічне заперечення (not) виконується у відповідності із наступною таблицею істиності.
Аргумент 1 |
Результат |
True |
False |
False |
True |
Зсув вліво (К shl N) відновлює як результат значення, отримане шляхом зсуву позицій уліво двійкового числа К.
Приклад. Обчислити результат виконання виразу 2 shl 7. Число 2 займає в пам'яті 2 байти й у двійковій формі має вигляд 0000000000000010. Зрушуємо кожен біт на 7 позицій уліво, одержуємо 0000000100000000, що відповідає числу 256 у десятковій формі. Отже, 2 shl 7 = 256.
Зсув вправо (shr) виконується аналогічно, з тією лише різницею, що зсув виробляється вправо.
Вираз Результат
160 shr 2 40
90 shr 2 22
256 shr 7 2