Прості (інша назва – лінійні) програми складаються з команд присвоєння, введення-виведення даних та викликів процедур. 1. Команда присвоєння має вигляд
<ім’я змінної> := <вираз>;
Дія команди. Обчислюється вираз і його значення надається змінній. Вираз призначений для описування формул, за якими виконуються обчислення. Вираз може містити числа, змінні, сталі, назви функцій, з’єднані символами операцій. Змінна і вираз мають бути одного типу або узгодженими: змінним дійсного типу можна надавати значення виразів цілого типу, а змінним рядкового типу присвоювати значення виразів символьного типу, але не навпаки. Приклад. Розглянемо дію команд присвоєння в програмі Trykutnyk: p:=a+b+c; p:=p/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)). Тут обчислюється значення периметра і воно надається змінній p, півпериметра (надається також змінній p) та площі (надається змінній s). 2. Основні операції, стандартні функції та деякі процедури мови Паскаль описані в табл. 3 та 4 відповідно.
Табл. 3. Основні операції
Пріоритет
Операції
Зміст операції
+, - not
Присвоєння знаку Логічне заперечення
*, / div, mod and
Множення, ділення Цілочислові операції Логічний добуток
+, - or, xor
Додавання, віднімання Логічні суми
=, <>, <, >, <=, >= in
Відношення (порівняння) Належність до множини
Виконання кожної операції здійснюється з урахуванням її пріоритету (1 – найвищий). Для зміни звичайного порядку виконання операцій використовують круглі дужки, наприклад: 2*–3–2=–8; 2*(–3–2)=–10; 5*(2+13)=75; 20+100/20*5=45;20+100/(20*5)=21. Результатом операції div є ціла частина від ділення двох чисел, а mod – остача, наприклад: (9–2) div 2=3; 7 mod 2 = 1. Табл. 4. Основні стандартні функції та процедури
Функція
Тип аргументу
Тип результату
Математичний запис, коментар
abs(x)
integer, real
integer, real
|x|
arctan(x)
integer, real
real
arctgx
cos(x)
integer, real
real
cosx
sin(x)
integer, real
real
sinx
exp(x)
integer, real
real
ex
ln(x)
integer, real
real
lnx
sqrt(x)
integer, real
real
sqr(x)
integer, real
integer, real
x2
ord(x)
упорядкований
integer
ASCII-код символу
succ(x)
упорядкований
упорядкований
повертає наступне значення x
pred(x)
упорядкований
упорядкований
повертає попереднє значення x
round(x)
real
integer
заокруглює число х до цілого
trunc(x)
real
integer
відкидає дробову частину числа х
int(x)
real
real
відкидає дробову частину числа х
frac(x)
real
real
дробова частина числа х
odd(x)
integer
boolean
true (x – непарне), false (x – парне)
random(x)
integer
integer
Генерує випадкове число з діапазону від 0 до x
upcase(x)
char
char
замінює малу літеру латинської абетки на велику
Процедури:
inc(x,y)
integer
integer
збільшує x на y
inc(x)
integer, char
integer, char
збільшує x на 1
dec(x,y)
integer
integer
зменшує x на y
dec(x)
integer, char
integer, char
зменшує x на 1
Розглянемо приклади значень функцій і виконання процедур:
Інші математичні функції можна виразити через основні. Наприкла
, , , ,
3. Команди введення (read, readln) даних. Надавати значення змінним можна двома способами: за допомогою команди присвоєння, наприклад x:=5, або команд уведення даних з клавіатури. Другий спосіб робить програму більш універсальною, оскільки дає змогу розв’язувати задачі для різних значень змінних. Команда read має вигляд
read(<змінна 1> , …, <змінна n>);
Дія команди. Виконання програми зупиняється. Cистема переходить у режим очікування введення даних (екран темний, миготить курсор). Значення цих даних користувач набирає на клавіатурі через пропускабо натискає після кожного даного на клавішу вводу. У результаті виконання цієї команди відповідним змінним будуть присвоєні конкретні значення. Команда readln має вигляд
readln(<змінна 1> , …, <змінна n>);
Вона діє як команда read з тою різницею, що зайві дані у рядку введення ігноруються. Наступна команда вводу читатиме дані з нового рядка. Цю команду застосовують під час роботи з текстовими файлами (див. § 10). Розглянемо програму Trykutnyk. Значення сторін трикутника можна ввести, наприклад, так: readln(a, b); read(c). Тоді під час виконання програми на клавіатурі набираємо
5 3.6 4.2
(натискаємо на клавішу вводу) (натискаємо на клавішу вводу)
У результаті виконання команд readln(a, b) та read(c) змінні отримають такі значення: a=5; b=3.6; c=4.2. Зауваження. Команду readln без параметрів часто використовують у середовищі TP для MS-DOS, щоб оглянути результати виконання програми на екрані. Щоб після цього перейти у режим редагування програми, потрібно натиснути на клавішу вводу. У середовищі TP для Windows система виводить результати у окремому вікні, тому там цю команду писати не потрібно. Зауваження. Значення змінних логічного й перерахованого типу вводити з клавіатури не можна. 4. Команди виведення (write, writeln) даних.Для виведення на екран повідомлень та результатів обчислень використовують команди write та write
write(<змінна 1> , …, <змінна n>);
У списку виведення можуть бути сталі, змінні або вирази. Дія команди. Сталі, значення змінних та виразів виводяться на екран у вікно виведення, яке можна переглянути за допомогою комбінації клавіш Alt+F5. Команда
writeln(<змінна 1> , …, <змінна n>);
діє майже так само як і команда write; різниця така: наступна після неї команда write чи writeln буде виводити значення на екран у новому рядку. Для переходу на новий рядок екрана чи для пропуску рядка використовують команду writeln без параметрів. Розглянемо програму Trykutnyk. Якщо в цій програмі задати такі команди виведення: write('p=', p); writeln('s=', s); writeln('Виконав Панчишин Ю.'), то для заданих вхідних даних a=5, b=3.6, с=4.2, на екрані отримаємо такий результат: p= 1.2800000000E+01s= 7.429239530Å+00 Виконав Панчишин Ю. 5. Форматний вивід. Команди write та writeln можуть здійснювати форматний вивід даних. Форматування — це подання результатів у наперед заданому користувачем вигляді. Для цього після виразу через двокрапку записують число (:n)— кількість позицій на екрані, які треба надати для виведення значення цього виразу. Формат :n застосовують для даних цілого та рядкового типів. Під час виведення даного дійсного типу зазначають загальну кількість позицій для всіх символів (n) та кількість позицій для дробової частини (m), тобто формат має вигляд:n:m. Розглянемо команду виведення writeln('p=', p:5:2) у програмі Trykutnyk. Вона забезпечує виведення на екран рядкової сталої 'p=' без лапок (з метою пояснення, що обчислено) і числа 12,8 у форматі :5:2, тобто так: p= 12.80. Задача 1. Дано координати трьох вершин трикутника A(1;1), B(2;2) та C(–1;2). Обчислити медіану mb та радіус описаного кола r.
program TrykutnykNew; uses Crt; var x1, y1, x2, y2, x3, y3, a, b, c, mb, r, x, y, p, s: real; begin clrscr; writeln(‘Введіть координати:’); readln(x1,y1,x2,y2,x3,y3); a:=sqrt(sqr(x3-x2)+sqr(y3-y2)); b:=sqrt(sqr(x1-x3)+sqr(y1-y3)); c:=sqrt(sqr(x1-x2)+sqr(y1-y2)); x:=(x1+x3)/2; y:=(y1+y3)/2; mb:=sqrt(sqr(x-x2)+sqr(y-y2)); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); r:=a*b*c/(4*s); writeln('mb=', mb:5:2); writeln('r=', r:5:2); readln end.
Зауваження. Якщо не використовувати форматний вивід, то для даних цілого та логічного типу на екрані буде надано до 15 позицій, для даних дійсного типу — 18. Дані дійсного типу виводяться у вигляді х.ххххххххххЕзнакхх, де х – будь-яка цифра, що часто є надлишковим. Такі числа на екрані можуть зливатися. Завдання. Розв’язати задачу № 2 з розділу “Задачі” свого варіанта. Довідка. Для розв’язування типових задач про трикутник наведемо формули обчислення деяких величин: віддаль між точками (x1,y1), (x2,y2): координати середини відрізка: x=(x1+x2)/2, y=(y1+y2)/2, півпериметр трикутника: p=(a+b+c)/2; площа трикутника: висоти трикутника: ha=2s/a, hb=2s/b, hc=2s/c; бісектриси трикутника: , , ; радіус описаного кола: r=abc/(4s); радіус вписаного кола: r=s/p, де a, b, c — сторони трикутника.