МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ПРОСТІ ПРОГРАМИ ЛІНІЙНОЇ СТРУКТУРИ
ІНСТРУКЦІЯ ДО ЛАБОРАТОРНОЇ РОБОТИ № 1
З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”
для студентів спеціальності 6.0914
“Комп’ютеризовані системи, автоматика і управління”
Затверджено на засiданнi кафедри “Автоматика і
телемеханiка”, протокол
№11 від 15.03.2001 р.
Львів – 2001
Прості програми лінійної структури: інструкція до лабораторної роботи №1 з курсу “Алгоритмічні мови і програмування” для студентів спеціальності 6.0914 “Комп'ютеризовані системи, автоматика і управління” / Укл.: Р.А.Гордійчук, В.І.Отенко, А.Е.Лагун - Львів: НУЛП, 2001.- 13 с.
Укладачі: Р.А.Гордійчук, ст. викладач,
В.І.Отенко, канд. техн. наук, доцент,
А.Е.Лагун, асистент.
Відповідальний за випуск:
І. М. Ковела, канд. техн. наук, доцент.
Рецензент: В.В.Самотий, доктор техн. наук, професор.
Мета роботи - вивчити прості типи даних, операції, стандартні проце-дури і функції мови Турбо-Паскаль, навчитися складати та відлагоджувати прості розрахункові програми лінійної структури
1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Загальна структура програми.
[ program <ім'я_програми>;] {заголовок програми}
[ Uses <модуль_1>, <модуль_2>,...;] {додаткові (бібліотечні) модулі}
[ label <мітка_1>, <мітка_2>,...;] {розділ опису міток)
[ const <константа_1> = <значення_1>;
<константа_2> = <значення_2>;
...; ] {розділ визначення констант)
[ type <тип_1> = <структура типу_1>;
<тип_2> = <структура типу_2>;
...; ] {розділ визначення типів)
[ var <змінна> [, <змінна>, ...] : <тип_1>;
<змінна> [, <змінна>, ...] : <тип_2>;
... ] {розділ опису змінних}
[ procedure ...;] {розділ опису процедур}
[ function ...;] {розділ опису функцій}
BEGIN
[<оператор_1>;
<оператор_2>;
…] {розділ операторів}
END.
У програмах, написаних мовою Турбо-Паскаль, для відокремлення синтаксичних одиниць та структур (описів типів, змінних, процедур і функцій, операторів) використовуються символи-розділювачі: “ “ (символ пропуск), “,”, “;”.
1.2. Ідентифікатори.
Алфавіт мови Турбо-Паскаль утворюють: великі та малі літери латинсь-кого алфавіту (А...Z, a...z); арабські цифри (0...9); спеціальні символи ( + , - , * , / , = , , , . , : , ; , < , > , [ , ] , { , } , ^ , @ , $ , # , _ ). Ідентифікатор - це ім'я константи, змінної, мітки, типу, процедури, функції, модуля чи поля запису. Максимальна довжина ідентифікатора, яку розрізняє компілятор, становить 63 символи. Ідентифікатор будується за таким правилом:
ідентифікатор = літера { літера | цифра | _ }.
У мові Турбо-Паскаль с зарезервовані слова, які не можуть бути використані як ідентифікатори:
absolute file mod shr
and for nil string
array forward not then
begin function of to
case goto or type
const if packed unit
div implementation procedure until
do in program uses
downto inline record var
else interface repeat while
end interrupt set with
external lable shl xor
1.3. Прості типи даних.
До простих типів даних в Турбо-Паскалі належать порядкові (цілий, логічний, символьний, перелічуваний, тип-діапазон) та дійсні типи. Інформація про прості типи даних Турбо-Паскаля подана в табл.1.
Таблиця 1
Тип
Назва
Довжина,
байт
Діапазон значень
Цілі типи
byte
shortint
word
integer
longint
1
1
2
2
4
0...255
128...127
0...65535
32768...32767
7483648...2147483647
Логічний
boolean
1
true, false
Символьний
char
1
0...255
Перелічуваний
type <ім'я типу>=(<перелік значень>)
Тип-діапазон
type <ім'я типу>=<мін. значення>..<макс. значення>
Дійсні типи
single
real
double
emended
comp
4
6
8
10
8
1.5е-45...3.4е38
2.9е-39...1.7е38
5.0е-324...1.7е308
1.9е-4951...1.1е4932
-263+1...263-1
1.4. Операції.
У Турбо-Паскалі передбачені такі операції:
- унарні not, @
- мультиплікативні *, / , div , mod , and , shl, shr
- адитивні + , - , or, xor
- відношення = , <> , <= , >= , in
Загальна інформація про операції в Турбо-Паскалі подана в табл.2. Операції перераховані в послідовності зростання їх пріоритету.
Таблиця 2
Операція
Виконувана дія
Тип операндів
Тип результату
not
заперечення
Boolean
цілий
Boolean
цілий
*
множення
цілий
дійсний
цілий
дійсний
/
ділення
дійсний
extended (Real)
div
цілочислове ділення
цілий
менший цілий
mod
залишок ділення
цілий
менший цілий
and
логічне І
Boolean
цілий
Boolean
менший цілий
shl
зсув ліворуч
цілий
менший цілий
shr
зсув праворуч
цілий
менший цілий
+
додавання
цілий
дійсний
менший цілий extended (Real)
-
віднімання
цілий
дійсний
менший цілий extended (Real)
or
логічне АБО
Boolean
цілий
Boolean
менший цілий
xor
виняткове АБО
Boolean
цілий
Boolean
менший цілий
=
дорівнює
простий
Boolean
<>
не дорівнює
простий
Boolean
<
менше
простий
Boolean
<=
менше-дорівнює
простий
Boolean
>
більше
простий
Boolean
>=
більше-дорівнює
простий
Boolean
1.5. Стандартні процедури і функції.
Стандартні процедури і функції Турбо-Паскаля, які можуть бути використані в програмі без звертання до бібліотечних файлів (turbo.tpl та ін.), наведені в табл.3.
Таблиця.3
Виклик
Виконувана дія
Тип аргументів
Тип результату
Примітки
Ord(x)
Повертає порядковий номер аргументу х
порядковий
цілий
функція
Pred(x)
Повертає значення ord(x)-1
порядковий
цілий
функція
Succ(x)
Повертає значення оrd(x)+1
порядковий
цілий
функція
dec(x[,n])
Зменшує х на n (якщо n не вказано, n=1)
цілий
цілий
процедура
inc(x[,n])
Збільшує х на n (якщо n не вказано, n=1)
цілий
цілий
процедура
Chr(a)
Повертає символ
byte
char
функція
Hi(x)
Повертає старший байт аргументу х
цілий
byte
функція
Lo(x)
Повертає молодший байт аргументу х
цілий
byte
функція
Odd(x)
Повертає true, якщо х –непарне, чи false, якщо х – парне
цілий
boolean
функція
Swap(x)
Міняє місцями байти в слові
integer, word
-
процедура
Abs(x)
Повертає модуль х
цілий,
дійсний
тип
аргумету
функція
Arctan(x)
Арктангенс х (радіани)
дійсний
дійсний
функція
Cos(x)
Косинус х (кут в радіанах)
дійсний
дійсний
функція
Sin(x)
Синус х (кут в радіанах)
дійсний
дійсний
функція
Exp(x)
Експонента(ех)
дійсний
дійсний
функція
Ln(x)
Логарифм натуральний від х
дійсний
дійсний
функція
Sqr(x)
Квадрат х (х2)
цілий,
дійсний
тип
аргумету
функція
Sqrt(x)
Корінь квадратний від x
дійсний
дійсний
функція
Int(x)
Ціла частина х
дійсний
дійсний
функція
Frac(x)
Дробова частина х
дійсний
дійсний
функція
Pi
Повертає значення числа ?=3.141592...
-
дійсний
функція
Random
Рівномірне псевдовипадкове число в діапазоні 0...1
-
дійсний
функція
Random(x)
Рівномірне псевдовипадкове число в діапазоні 0...x
цілий
цілий
функція
Round(x)
Округляє х до найближчого цілого
цілий
integer
функція
Trunc(x)
Округляє x, відкидаючи дробову частину
цілий
integer
функція
1.6. Присвоєння значень змінним.
Оператор присвоєння призначений для присвоєння змінній деякого значення. Синтаксис:
<змінна> := <вираз>,
де <змінна> - ім'я змінної (ідентифікатор);
<вираз> - константа (ідентифікатор або значення), вираз, виклик функції, тип яких сумісний з типом змінної.
1.7. Виведення результатів та повідомлень програми на екран.
Повідомлення та результати роботи програми виводяться на екран дисплея процедурою
write[ln] (<список_виведення>),
де <список_виведення> - послідовність виразів типу char, string, boolean, а також цілих та дійсних типів, розділених символом “,”.
Якщо використовується процедура writeln, то після виведення <списку_виведення> курсор екрана переміщується на початок наступного рядка.
1.8. Побудова блок-схем алгоритмів програм.
Основні умовні графічні позначення для побудови блок-схем алгоритмів програм та правила їх використання наведені в табл.4
Таблиця 4
Умовне графічне позначення
Правила використання
Початок програми (підпрограми)
Кінець програми (підпрограми)
Введення/виведення даних для стандартних пристроїв введення-виведення (клавіатура, дисплей); у межах блока вказуються ідентифікатори змінних для введдення даних або вирази, значення яких виводяться
Виконання дій; у межах блока вказуються дії, які необхідно виконати. У даному випадку обчислюється значення виразу і обчислене значення присвоюється змінній
Розгалуження алгоритму програми залежно від виконання умови; у межах блока вказується вираз, результат якого визначає подальший хід виконання алгоритму програми
Виконання циклу; у межах блока вказуються межі діапазону значень параметру циклу та алгоритм (вираз), за яким змінюється параметр циклу
Виконання підпрограми (процедури чи функції); у межах блока вказується заголовок (ім’я та параметри) підпрограми(процедури чи функції)
Виведення даних на папір (принтер); у межах блока вказується список виразів, значення яких виводяться
Лінії з’єднань між блоками
Перехід на іншу сторінку; використовуються, якщо блок-схема розташована на кількох сторінках; N і М - відповідно, номер сторінки і блока до яких здійснюється перехід, К і L -відповідно, номер сторінки і блока від яких здійснюється перехід
Перехід у межах однієї сторінки; замість цифр можна використовувати літери латинського алфавіту
2. ЗАВДАННЯ
2.1. Домашня підготовка до роботи
Ознайомитися із загальною структурою програми, написаною мовою Турбо-Паскаль.
Ознайомитися з простими типами даних мови Турбо-Паскаль.
Ознайомитися з операціями та стандартними процедурами і функціями мови Турйо-Паскаль.
Вивчити правила побудови ідентифікаторів, виразів та присвоєння значень змінним мови Турбо-Паскаль.
Ознайомитися з умовними графічними позначеннями для побудови блок-схем алгоритмів.
Скласти блок-схему алгоритму та програму мовою Турбо-Паскаль для розрахунку значення виразу. Забезпечити ввід значень аргументів з клавіатури і вивід результату розрахунку на дисплей. Дані для роботи беруться з табл.5 за вказівкою викладача.
Таблиця 5
№ п/п
Вираз
Значення аргументів
1
x=2.632, y=0.731
2
x=3.142, z=0.543
3
x=4.112, y=1.628
4
x=2.361, y=1.149
5
x=2.735, z=7.218
6
y=6.153, z=1.001
7
x=12.394, y=7.139
8
z=9.761
9
x=2.14, y=0.578
10
x=1.155, y=3.981
11
x=15.241, y=7.118
12
x=0.067, y=3.017
13
x=5.168, z=1.569, y=3.022
14
x=2.134, y=0.129
15
x=0.013, z=1.245
16
y=7.315, z=3.127
17
x=1.839, y=3.821, z=0.349
18
x=1.549, y=7.317
19
x=4.123, y=2.395
20
x=0.712, y=3.161
21
x=166.124, z=15.839
22
x=2.531, y=0.193
23
x=4.597, y=7.954
24
x=1.413, y=0.057
25
x=0.357, y=2.031
2.2. Робота в лабораторії
1. Ознайомитися з основними засобами введення, відлаголження та компіляції програми системи програмування Турбо-Паскаль 5.0 (Turbo Pascal 5.0).
2. Ввести в комп'ютер програму, написану мовою Турбо-Паскаль згідно з отриманим завданням.
3. Відлагодити програму. При необхідності скоригувати блок-схему алгоритму та програму у відповідності з виявленими логічними та синтаксичними помилками.
4. Остаточні версії блок-схеми, програми та отримані результати занести у звіт з лабораторної роботи.
5. Здати звіт з лабораторної роботи.
3. ЗМІСТ ЗВІТУ
1. Номер і назва лабораторної роботи.
2. Повний текст завдання.
3. Остаточна версія блок-схеми алгоритму.
4. Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення.
5. Остаточна версія програми.
6. Результати роботи програми.
4. КОНТРОЛЬНІ ЗАПИТАННЯ
1. Поясніть загальну структуру програми, написаної мовою Турбо-Паскаль.
2. Які прості типи даних мови Турбо-Паскаль Вам відомі? Вкажіть імена типів та діапазон значень, шо можуть набувати змінні цих типів.
3. Вкажіть загальні правила написання ідентифікаторів мови Туроо-Паскаль.
4. Наведіть приклади зарезервованих слів.
5. Перелічіть операції мови Турбо-Паскаль, розділивши їх на групи.
6. Що означає "присвоїти змінній значення"?
7. Поясніть алгоритм роботи та текст Вашої програми.
СПИСОК ЛІТЕРАТУРИ
Фаронов В.В. Программироаание на персональних ЗВМ а среде Тур-бо-Паскаль.- 2-е изд. - М.: Изд-во МГТУ, 1992.
Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка.- М.: Финансы и статистика, 1982.
3. Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal: Навчальний посібник для техн. вузів - X.: ВКП "Парітет" ЛТД, 1995.
Навчальне видання
Прості програми лінійної структури: Інструкція до лабораторної роботи №1 з курсу "Алгоритмічні мови і програмування" для студентів спеціальності 6.0914 "Комп'ютеризовані системи, автоматика і управління"
Укладачі: Гордійчук Роман Анатолійович,
Отенко Віктор Іванович,
Лагун Андрій Едуардович.