
Книга_мат_3_1
.pdf
Стандартні функції
При виконанні всіх математичних операцій, вони виконуються в тому порядку, що й у математиці, якщо нам потрібно змінити порядок виконання операцій, то слід використовувати дужки ( ), але у нашому розпор я- дженні є тільки круглі дужки. Крім того, потрібно пам ‟ятати про запис виразів тільки в один рядок. Для того, щоб уникнути помилок, рекомендуємо запам‟ятати правила запису математичних виразів:
математичний вираз обов‟язково записується в один рядок; забороняється ставити підряд два знаки арифметичних операцій; знак множення ставиться обов‟язково; з усіх видів дужок можна використовувати лише круглі;
математичні операції виконуються в такому порядку – спочатку виконуються дії в дужках, потім обчислюються функції, виконується мно-
ження і ділення |
(зліва направо), і лише потім додавання і віднімання |
(якщо вони не виконались раніше в дужках. |
|
У мові Pascal визначені такі математичні операції: |
|
+ |
– додавання; |
– |
– віднімання; |
* |
– множення; |
/ |
– ділення; |
div |
– ділення націло (повертає цілу частину); |
mod |
– остача при діленні націло. |
Крім шести арифметичних операцій, у мові Pascal є ще ряд матем а- тичних функцій.
Функція |
Параметри |
|
|
|
Дія |
Значення |
||
Abs(x) |
x:real(integer) |
|
x |
|
абсолютна величина |
real |
||
|
|
|||||||
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
Exp(x) |
x:real |
|
|
|
еx |
real |
||
Ln(x) |
x:real |
|
|
|
Ln(x) |
real |
||
Sin(x) |
x:real |
|
|
|
Sin(x) |
real |
||
Cos(x) |
x:real |
|
|
|
Cos(x) |
real |
||
Arctan(x) |
x:real |
|
|
|
Arctg(х) |
real |
||
Sqr(x) |
x:real |
|
|
|
x2 |
real |
||
|
|
|
|
|
|
|
|
|
Sqrt(x) |
x:real(x>=0) |
|
|
|
|
x |
real |
|
|
|
|
|
|
|
|||
|
|
|
|
|||||
Random(x) |
x:word |
Вибираються випадково дій- |
real |
|||||
|
|
сні числа з проміжку [0; x], |
|
|||||
|
|
якщо х відсутнє то з проміж- |
|
|||||
|
|
|
|
|
ку [0;1] |
|
||
Odd(x) |
x:longint |
Якщо х - парне то false, якщо |
boolean |
|||||
|
|
|
|
|
х - непарне то true. |
|
11
Функція |
Параметри |
Дія |
Значення |
Inc(x,[n]) |
х,n:longint |
Значення х збільшується на n, |
longint |
|
|
якщо n відсутнє - то на 1 |
|
|
|
х:=х+n |
|
Del(x,[n]) |
x,n:longint |
Значення Х зменшується на n, |
longint |
|
|
якщо n відсутнє - то на 1 |
|
|
|
x:=x-n |
|
Int(x) |
x:real |
Ціла частина x |
real |
Frac(x) |
x:real |
Дробова частина x |
real |
Trunc (x) |
x:real |
Ціла частина x |
longint |
Round (x) |
x:real |
Округлення до найближчого |
longint |
|
|
цілого числа |
|
Структура програми
{Блок містить 7 розділів, які записуються в такому порядку} Program <ім’я>; {Ім’я довільне}
Uses crt, graph; {Розділ підключення модулів}
Label |
{Розділ опису міток} |
Const |
{Розділ опису констант} |
Type |
{Розділ опису типів даних} |
Var |
{Розділ опису змінних} |
Розділ текстів процедур та функцій Розділ основного блоку програми
Begin |
{Операторні дужки} |
{Розділ команд - тіло програми} |
|
End. |
|
В програмі є не обов‟язкові розділи: Program, Uses, Label, Const, |
|
Type, Var. |
Ми використовуємо їх за потребою, тобто, якщо в програмі є |
константи то використовуємо розділ Const, якщо ж немає констант , то ми його не описуємо. Так само працюємо з іншими розділами. Кожний розділ закінчується знаком “;”.
Для пояснення операторів або команд в програмі користуються коментарями. Коментарі не впливають на виконання програми і записуються в фігурних дужках {} або (*…*).
Оператор присвоювання
Є прості оператори та складні оператори. Прості оператори – оператор присвоювання, оператори вводу та виводу інформації.
Оператор присвоювання має вигляд:
<ім’я змінної>:=<вираз>
Наприклад: а:=а+с;
12

Вираз та змінна повинні бути одного типу. Операція присвоєння дозволяє замінити біжуче значення змінної, яка стоїть зліва від знаку присвоювання, новим значенням, що задається виразом, який стоїть праворуч. Вираз може включати в себе всі операції, подані в таблиці, та стандартні функції.
Наприклад: P : sin(0.5) sqr(4);
Оператори вводу та виводу інформації
Оператор вводу інформації має вигляд:
Read(Список);
Readln(Список);
Наприклад:
Read(a,b,n); Readln(a); readln(b); readln(n);
В списку через кому перераховуються змінні, значення яких вводяться з клавіатури. Можна записати всі значення змінних в один рядок, відокремивши їх пробілами (але не комами) та натиснути ENTER.
Оператори вводу інформації відрізняються тим, що read вводить дані, залишаючи курсор в тому ж рядку, а readln вводить дані та переводить курсор на новий рядок. Після вводу значень змінної або списку змінних натискуємо Enter.
Оператор виводу інформації має вигляд:
Write(Список);
Writeln(Список);
Наприклад:
Write(a,b,n);
Writeln(a); Writeln(b); Writeln(n);
В списку через кому перераховуються змінні. При виконанні Write значення змінних будуть виводитись на екран в одному рядку в тому п о- рядку, як вони були записані в операторі, після виконання оператора курсор залишається в цьому ж рядку. При виконанні Writeln виводиться значення змінної, після чого курсор переходить на новий рядок.
Для зручності перегляду даних на екрані можна оператор виведення записувати так:
Writeln(‘x=‘,x);
Writeln(‘y=‘,y);
Writeln(‘z=‘,z);
„x‟ - з 2-х сторін береться в апострофи та відокремлюються комою.
Приклад 2 Дано площу кола, знайти сторону правильного трику т- ника вписаного в коло.
13

Program storona; |
{находження сторони} |
Const pi=3.14; |
|
Var S,R,a:real; |
|
Begin |
|
Write(„Введіть площу кола S=„);
Readln(S);
R:=sqrt(S/pi);
a:=R/(sqrt(3));
Writeln(„Сторона трикутника=„,a); End.
Завдання
1.Скласти програму для розв‟язання задачі. Набрати і налагодити цю програму, а також підібрати вхідні дані.
1.1.Дано сторони трикутника, обчислити його площу.
1.2.Дано висоту та радіус основи конуса, обчислити його об ‟єм.
1.3.Дано повну поверхню та радіус основи циліндра, обчислити його висоту.
1.4.Дано сторони трикутника, обчислити його середню лінію.
1.5.Дано сторони трикутника, знайти одну із його висот.
1.6.Дано сторони ромба та кут між сторонами, знайти його площу.
1.7.Дано сторони та висоту трапеції, знайти ЇЇ площу.
1.8.Дано висоту та сторону правильної чотирикутної піраміди, обч и- слити її об‟єм.
1.9.Дано висоту та сторону правильної трикутної призми, знайти її повну поверхню.
1.10.Дано сторони прямокутника знайти його площу.
1.11.Дано сторони та висоту паралелограма, знайти його площу.
1.12.Дано радіус кола, знайти його довжину та площу.
1.13.Дано площу основи та висоту циліндра, знайти його повну поверхню.
1.14.Дано довжину кола, знайти його діаметр.
1.15.Дано сторони трикутника, знайти одну із його бісектрис.
2.Скласти програму для обчислення значення функції Y при заданому х.
2.1. |
Y |
2 |
x |
4 |
x |
|
|
при x = 4.741 |
|
|
|
4 |
|
|
|
|
|
|
|
2.2. |
Y |
e |
sin x |
при x = 2.312; |
|||||
|
Y |
|
|
|
|
|
|
|
|
2.3. |
|
x |
1 |
|
sin x |
при x = 12.7409; |
|||
|
|
||||||||
|
|
|
|
|
|
|
|||
2.4. |
Y |
sin x |
|
2 |
tgx |
|
при x = 32.872; |
14

2.5. Y tg2x |
1 |
|
|
при x = -2.6312; |
||
|
|
|
|
|
||
2 |
|
x |
|
|
||
|
|
|||||
|
|
|
|
|
||
|
|
|
|
|
|
|
2.6. |
Y |
1 |
|
|
1 |
|
|
|
1 |
|
при x = -0.387; |
||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
x |
|
`x |
|
3 |
|||||||||||
|
|
|
|
|
|
|
|
||||||||
2.7. |
Y |
tg |
|
x 1 |
|
|
1 |
|
при x = 0.009; |
||||||
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
x |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
2.8.Y
2.9.Y
2.10.Y
2.11.Y
2.12.Y
2.13.Y
2.14.Y
2.15.Y
sin x |
|
|
|
|
x3 |
|
|
|
при x = 0.112; |
|||||||||||||||
sin(ln x) |
|
|
|
при x = 0.7129; |
||||||||||||||||||||
5arctg( |
|
|
1 |
|
|
|
) |
|
|
|
|
|
|
при x = -4.4172; |
||||||||||
|
|
|
x |
|
|
|||||||||||||||||||
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
cos(2 |
|
|
|
|
|
|
x |
|
) |
|
|
|
|
при x = -0.024; |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
3 |
4 |
|
x |
3 |
|
|
|
|
2x |
при х = 21.123; |
||||||||||||||
|
|
|
|
|
||||||||||||||||||||
(2 |
|
x |
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
при х = 0.999; |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ctg( x3 ) |
|
|
|
при х = 1.432; |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
9 |
sin( |
|
|
|
|
x |
3 |
|
) |
при х = 12.546. |
||||||||||||||
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Контрольні запитання
1.З чого складається алфавіт Turbo Pascal?
2.Яку структуру має програма?
3.Який із розділів є обов‟язковими для кожної програми?
4.Які з наступних послідовностей символів є ідентифікаторами (імена-
ми) змінних?
а) x; б) x1; c) x‟; д) x1x2; e) abcd; ж) sin; з) a-1; к) об‟єм;
5.Які є типи даних у мові Turbo Pascal?
6.Які є стандартні функції?
7.Які з наступних послідовностей символів є операторами присвоюва н-
|
ня: |
|
|
|
a) a:=b |
г) a*x+b:=0 |
ж) z:=z+1,2 |
|
б) a=c+1 |
д) z:=0 |
з) z:=z+1 |
|
в) a:b-sqr(2) |
е) y:=y |
к) –y:=y |
8. |
Яка відмінність у роботі операторів read i readln, write i writeln? |
||
9. |
Навіщо потрібні коментарі в програмі та як їх зробити? |
15

Лабораторна робота № 3 “Умовні оператори. Оператор розгалуження”
Мета: сформувати знання та вміння використовувати оператор розгалуження при розв‟язуванні задач.
Питання для вивчення
1.Призначення та конструкція оператора розгалуження.
2.Логічні вирази.
3.Поліваріантні розгалуження (вкладені оператори розгалуження).
Теоретичні відомості
Призначення та конструкція оператора розгалуження
Умовний оператор використовується в тих випадках, коли дії м о- жуть піти різними шляхами, в залежності від виконання або невиконання певних умов.
В мові програмування для таких випадків є умовний оператор, який має дві форми: повну і скорочену.
Повна форма:
If Умова
Then Оператор1 Else Оператор2
Якщо логічний вираз істинний, то виконується оператор1, інакше (якщо вираз хибний) – оператор2.
Іноді доцільно використати скорочену форму умовного оператора: If Умова
Then Оператор1
Якщо логічний вираз істинний, то виконується оператор 1, інакше
(якщо логічний вираз хибний), виконується оператор, розташований в програмі після умовного оператора if.
Конструкція if…then…else має такий вигляд (мал. 2):
Логічний Хибно вираз
Оператор1 |
|
Оператор2 |
||
|
|
|
|
|
|
|
|
|
|
Малюнок 2. Блок-схема оператора розгалуження
16

Логічні вирази
Умові Pascal реалізовано 4 логічні операції: not, and, or та xor. Кожна
зцих логічних операцій має свою назву:
not – логічне “ні” (інверсія або заперечення);
and – логічне “і” (кон‟юнкція або логічне множення); or – логічне “або” (диз‟юнкція або логічне додавання); xor – логічне “виключне або”;
В процесі виконання логічних операцій результат знову ж таки може набувати лише одного з двох булівських значень: true або false. Результат можна визначити згідно такої таблиці:
|
Таблиця |
істинності логічних операцій |
|
||
X |
Y |
not X |
X and Y |
X or Y |
X xor Y |
false |
false |
true |
false |
false |
false |
false |
true |
true |
false |
true |
true |
true |
false |
false |
false |
true |
true |
true |
true |
false |
true |
true |
false |
Операція not завжди змінює значення логічної змінної на протилежне.
Операція and набуває значення true тоді і тільки тоді, коли обидві змінні, що приймають участь у висловлюванні мають значення true.
Операція or набуває значення true у тому випадку, коли хоча б одна із логічних змінних має значення true.
Операція xor набуває значення true при умові, що тільки одна з двох логічних змінних мала значення true.
Поліваріантні розгалуження (вкладені оператори розгалуження)
Якщо в then- або else-гілці знаходиться більше одного оператора, то використовують операторні дужки, що складаються з зарезервованих слів begin і end.
If Умова
Then Begin
Оператор1; Оператор2;
……...
………
ОператорN;
end
else
17
Begin
ОператорЕ1; ОператорЕ2;
………
………
ОператорЕN;
End;
Проблему виключення некоректних відповідей можна розв‟язати, використовуючи ті ж оператори if…then якщо вкласти їх один в другий.
If Умова
Then Begin
Оператор1; Оператор2;
End
Else
If Умова
Then Begin
Оператор11; Оператор12;
end
else
Приклад 3. Дано три дійсні додатні числа. Визначити, чи можна побудувати трикутник з такими довжинами сторін.
program pr1;
var a,b,c:integer; begin
writeln(„введіть три числа a,b,c‟); readln(a,b,c);
if (a<b+c) and (b<a+c) and (c<b+a) then
writeln(„трикутник побудувати можна‟) else
writeln(„трикутник з такими сторонами побудувати неможливо ‟); readln;
end.
18
Завдання
Скласти програму для розв‟язання задачі. Набрати і налагодити цю програму, а також підібрати вхідні дані.
1.Дано тризначне число. Визначити, чи можуть цифри цього числа бути довжинами сторін трикутника.
2.Визначити чи є серед трьох чисел а, b, с хоча б одна пара рівних між собою чисел.
3.Поміняти місцями значення змінних x, y, z так, щоб вони утворили зростаючу послідовність.
4.Визначити, чи є серед цифр заданого тризначного числа однакові.
5.Визначити чи дорівнює сума двох перших цифр заданого чотиризна ч- ного числа сумі двох його останніх цифр.
6.Визначити, чи є серед чисел a, b, c число, рівне середньому арифметичному цих чисел.
7.Визначити, чи є даний рік високосним (рік з двома нулями в кінці високосний, коли число ділиться на 400).
8.Надрукувати фразу «мені n рік (роки, років)» так, щоб відмінок слова «рік» узгоджувався з числом n. N вводиться з клавіатури.
9.Визначити, чи буде сума цифр заданого тризначного числа парною.
10.Дано дійсні числа x, y. Якщо вони обидва від‟ємні, то замінити кожне його модулем. Якщо від‟ємним є лише одне з них, то обидва значення збільшити на 0.5. Якщо ж обидва значення невід‟ємні та жодне з них не належить проміжку [0,5;2,0], то обидва числа зменшити у 10 разів. В решті випадків залишити числа без змін.
11.Дано два числа x, y (x<>y). Менше з двох чисел замінити півсумою, а більше – подвоєним добутком.
12.Визначити, яка з двох точок, задана своїми координатами, знаходиться далі від кола заданого радіусом з центром в початку координат.
13.Визначити кількість точок перетину прямої y=kx+b з колом x2+y2=r2.
14.Квадрати для гри у хрестики-нулики(3*3) занумеровані зліва направо та згори вниз. Задано номери трьох квадратів n1,n2,n3 (n1<n2<n3).Визначити, чи знаходяться квадрати на одній прямій.
15.Квиток буде «щасливим» тільки тоді, коли сума його цифр ділиться на 5. Перевірити, чи куплений квиток є щасливим.
Контрольні запитання
1.Для чого і коли використовується оператор розгалуження?
2.Яким чином працює оператор розгалуження?
3.Чим відрізняється повна і скорочена форми оператора розгалуження?
4.Наведіть блок-схему оператора розгалуження.
5.Чи можуть вираз і константи бути різних типів?
6.Коли оператори заключаються в операторні дужки?
19
7.За якої умови операторні дужки не ставляться?
8.Чи можливий запис з вкладених операторів? Наведіть приклад.
Лабораторна робота № 4 “Умовні оператори. Оператор вибору”
Мета: сформувати знання та вміння використовувати оператор вибору при розв‟язуванні задач
Питання для вивчення
1.Призначення та конструкція оператора вибору.
2.Приклад застосування оператора вибору.
Теоретичні відомості
Призначення та конструкція оператора вибору
В програмах досить часто використовують оператор вибору case. Він використовується в тих випадках, коли в залежності від значення яко- го-небудь виразу необхідно виконати один з кількох послідовних операторів. Оператор вибору належить до складених операторів і має таку форму запису:
Case (вираз) of
Константа1: оператор1; Константа2: оператор2;
…………………………
КонстантаN: операторN; Else операторN+1
end;
Оператор вибору діє таким чином. Якщо значення виразу рівне о д- ній з констант, то виконується відповідний оператор. Потім управління передається за межі управління оператора вибору.
Якщо значення виразу не співпадає ні з однією константою, то управління передається за межі групи. Вираз може бути будь -яким стандартним типом, крім дійсного (real). Відповідно до цьо го і константа не може бути дійсного типу. Тип константи повинен співпадати з типом виразу.
Якщо після якогось значення змінної потрібно виконувати не одну дію, а декілька, то всі оператори, що відносяться до даного випадку б е- руться в операторні дужки begin ... end. Крім того, конструкція case пе-
редбачає варіант виконання дій у тому випадку, коли змінна не набула жодного з вказаних у операторі вибору значень – цьому призначено, як і при організації умовного оператора команду else. Знову ж таки, перед гілкою else крапку з комою ставити забороняється.
20