- •Методичні рекомендації до виконання лабораторних робіт
- •Для спеціальностей
- •Лабораторна робота № 1 Лінійні програми
- •Теоретичні відомості
- •Вирази, операнди, операції.
- •Аналогічно не можна змішувати літерні та числові типи даних,тобто вираз типу:
- •Введення-виведення інформації.
- •Завдання
- •Лабораторна робота № 2 Використання операторів умовного та безумовного переходів
- •Теоретичні відомості
- •Оператор умови if
- •Завдання
- •Лабораторна робота № 3 Використання операторів циклу
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 4 Обробка табличних елементів
- •Теоретичний матеріал
- •1 Спосіб
- •2 Спосіб
- •Завдання
- •Лабораторна робота № 5 Сортування елементів масиву
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 6 Робота з даними типу String
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 7 Використання множин даних
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 8 Обробка даних типу запис
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 9 Файлові типи даних
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 10 Типизовані файли
- •Теоретичний матеріал
- •Типизовані файли
- •Завдання
- •Лабораторна робота № 11 Організація підпрограм з використанням функцій
- •Теоретичний матеріал
- •Завдання
- •Лабораторна робота № 12 Організація підпрограм з використанням процедур
- •Теоретичний матеріал
- •Параметри-значення
- •2. Параметри-змінні
- •Завдання
- •Лабораторна робота № 13 Модульна організація програм
- •Теоретичний матеріал
- •Завдання
- •Варіант 1. Робота з матрицями
- •Варіант 2. Арифметичні дії з цілими числами, які не визначаються типом Longint
- •Варіант 3. Цілочисельна арифметика
- •Варіант 4. Опрацювання лінійного масиву даних
- •Варіант 5. Аналіз текстового рядка
- •Варіант 6. Трикутник
- •Варіант 7. Опрацювання масиву даних
- •Варіант 8. Опрацювання масиву даних
- •Варіант 9. Опрацювання двовимірних масивів
- •Лабораторна робота № 14 Створення графічних зображень
- •Теоретичний матеріал
- •Завдання
- •Список літератури
Вирази, операнди, операції.
Змінні і константи всіх типів використовуються у виразах.
Вираз задає порядок виконання дій над елементами даних і складається з операндів (констант, змінних, звертань до функцій), круглих дужок і знаків операцій.
Круглі дужки ставляться, як і в математиці, для керування порядком виконання операцій. Якщо дужки відсутні, операції виконуються в залежності від їх пріоритетів, про що буде сказано далі.
Операції в мові Паскаль підрозділяються на:
арифметичні,
відношення (порівняння),
логічні, та ін.
Операції можуть бути унарними та бінарними. У першому випадку операція відноситься до одного операнду і завжди записується перед ним, у другому операція виражає відношення між двома операндами і записується між ними.
Арифметичні операції задають арифметичні дії у виразах над значеннями операндів цілих та дійсних типів. Найбільш часто використовуються арифметичні операції, що подані в наступній таблиці:
Операція |
Дія |
Типи операндів |
Тип результату |
Бінарні |
|
|
|
+ |
Додавання |
Цілий Дійсний |
Цілий Дійсний |
- |
Віднімання |
Цілий Дійсний |
Цілий Дійсний |
* |
Множення |
Цілий Дійсний |
Цілий Дійсний |
/ |
Ділення |
Цілий Дійсний |
Дійсний Дійсний |
Div |
Ділення націло |
Цілий |
Цілий |
mod |
Залишок від ділення |
Цілий |
Цілий |
Унарні |
|
|
|
+ |
Збереження знака |
Цілий Дійсний |
Цілий Дійсний |
- |
Заперечення знака |
Цілий Дійсний |
Цілий Дійсний |
Операції відношення виконують порівняння двох операндів і визначають, значення виразу є істинним або хибним. Результат завжди має булівський тип і приймає одне з двох значень: True (істина) або False (хибність). Всі операції відношення зведені в наступну таблицю:
Операції |
Назва |
Вираз |
Результат |
= |
Дорівнює |
А=В |
True, якщо А дорівнює В |
<> |
Не дорівнює |
A<>B |
True, якщо А не дорівнює В |
> |
Більше |
A>B |
True, якщо А більше В |
< |
Менше |
A<B |
True, якщо А менше В |
>= |
Більше або дорівнює |
A>=B |
True, якщо А більше або дорівнює В |
<= |
Менше або дорівнює |
A<=B |
True, якщо А менше або дорівнює В |
Результатом виконання логічного (булевського) виразу є логічне значення True або False. Операндами служать дані тільки булівського типу. Список логічних операцій наведений у таблиці:
Операція |
Дія |
Вираз |
А |
В |
Результат |
not |
Логічне заперечення |
not A |
True False |
|
False True |
and |
Логічне “ТА” |
A and B |
True True False False |
True False True False |
True False False False |
or |
Логічне “АБО” |
A or B |
True True False False |
True False True False |
True True True False |
Виконання кожної операції відбувається з урахуванням її пріоритету. Значення пріоритетів зазначені в наступній таблиці:
Операція |
Пріоритет |
Вид операції |
Not, унарні «-» і «+» |
Перший (вищий) |
Унарна операція |
*, /, div, mod, and |
Другий |
Операції типу множення |
+, -, or |
Третій |
Операції типу додавання |
=, <>, <, >, <=, >= |
Четвертий (нижчий) |
Операції відношення |
Арифметичні вирази у якості операндів можуть містити імена функцій. З поняттям функції ми будемо знайомитись пізніше в курсі програмування, але стандартні функції (cos, sin, x2 та інші) Вам знайомі з курсу математики і їх використання у курсі інформатики відрізняється тільки правилами запису (синтаксису). Так, на відміну від математики, в програмуванні аргумент функції обов’язково береться в круглі дужки. Нижче подана таблиця, що містить ці функції. Літерами Х та І позначені відповідно: Х – цілі та дійсні типи, І – тільки цілі.
Abs(X) |
Обчислення абсолютного значення (модулю) Х. Тип результату збігається з типом параметра. |
ArcTan(X) |
Обчислення кута, тангенс якого дорівнює Х, значення кута подано в радіанах і може знаходитися в діапазоні від -/2 до /2. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/. Результат має дійсний тип. |
Cos(X) |
Обчислення косинуса Х, параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/. Результат має дійсний тип. |
Frac(X) |
Знаходження дробової частини Х. Результат має дійсний тип. |
Int(X) |
Знаходження цілої частини Х (дробова частина відкидається). Результат має дійсний тип. |
Pi |
Повертає значення числа (3.1415926). |
Sin(X) |
Обчислення синуса Х. Параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/. Результат має дійсний тип. |
Sqr(X) |
Пiднесення до квадрату значення Х. Тип результату збігається з типом параметра. |
Sqrt(X) |
Обчислення квадратного кореня з Х. Тип результату дійсний. |
Random |
Генерує значення випадкового числа з діапазону від 0 до 0.99. Тип результату дійсний. |
Random(P) |
Генерує значення випадкового числа з діапазону від 0 до P. Тип результату цiлий. Щоб випадкові числа були “більш випадковими”, необхідно періодично змінювати базу генерації. Для цього використовується процедура Randomize, що дозволяє при кожному новому запуску програми отримувати різні випадкові числа. |
Зверніть увагу на те, що звичайні дроби, багатоповерхові дроби, складні функціональні залежності і таке інше у мові програмування записуються в один рядок, причому порядок виконання дій контролюється за допомогою круглих дужок. Наприклад, такий математичний вираз:
на мові Паскаль буде мати наступний вигляд:
(a-b)/(2*c+(a/(c+(b-5)/(c-b))))
А такий:
на мові Паскаль:
1E+04*a-34.2*cos(beta).
Дуже важливим при створенні виразів являється слідкування за типами операндів. Як було зазначено вище, тип даних дозволяє встановлювати внутрішній формат збереження даних та контролювати дії, що виконуються над ними. Контроль за використанням змінних на етапі компіляції програми – важлива перевага мови Паскаль над іншими мовами програмування. Але з іншого боку іноді не дуже зручно те, що Паскаль майже не дозволяє автоматичне перетворення типів. Виключення зроблено тільки у відношенні до констант та змінних цілих типів, що дозволяється використовувати у виразах дійсного типу. Наприклад, якщо змінні X та Y описані наступним чином:
Var
X: integer;
Y: real;
то оператор
Y := X+2;
синтаксично не має помилок, хоча типи змінних і не співпадають. Перетворення типів (з цілого у дійсний) в цьому випадку виконується автоматично. В той же час оператор:
X := 2.78;
буде помилковим, тому що автоматичне перетворення дійсних типів у цілі не виконується. Зверніть увагу, що константа 12.0 з точки зору компілятора буде також дійсною, хоча дробова частина і дорівнює нулю, тому що константа містить десяткову точку.