You are on page 1of 5

Лабораторна робота №4

Тема: Написання програм з використанням логічних операторів. Оператор


розгалуження if
Мета: Ознайомитись з принципом дії і синтаксичними особливостями написання умовних
операторів, та навчитися застосовувати їх при написанні програм.

Теоретичні відомості
1. Складений оператор
Складений оператор begin …end об’єднує групу операторів в єдине ціле, після чого дана
конструкція вважається єдиним оператором. Оператор об’єднання використовується в таких описових
операторах, у яких за синтаксисом може бути використаний лише один оператор. Наприклад, в
операторі повторення while … do … після службового слова do за синтаксисом може бути записано
лише один оператор.
Складеним оператором має наступну конструкцію такого вигляду:
begin
<оператор 1>;
...
<оператор n>;
end;
2. Логічний тип даних, логічні вирази та логічні операції
У Pascal логічний тип даних носить назву boolean. Значенням логічного типу може бути одна
з двох констант true (істинність, або так) або false (хибність, або ні). Для них
справедливі правила:
Ord(false)=0;
Ord(true)=1;
false<true;
Succ(false)=true;
Pred(true)=false;
Відзначимо, що логічні типи даних ByteBool, WordBool і LongBool були введені для
забезпечення сумісності програм, що розроблялися, з Windows, в якій значенню false відповідає 0, а
значенню frue – будь-яке, відмінне від 0, число.
Логічні змінні повинні бути описані наступним чином:
var <імя_змінної>: boolean;
Величині логічного типу даних можна присвоювати значення, виводити на екран, але не можна
вводити процедурою read.
Логічним виразом називають засіб записування умов для відшукання потрібних даних.
Логічний вираз може приймати значення true або false. Логічні вирази бувають прості та
складені. Простий — це два арифметичні вирази, з'єднані символом операції відношення (або
порівняння), а складений — це прості логічні вирази, з'єднані назвами логічних операцій: not,
and, or та xor .
Операції відношення використовуються для порівняння значень одного типу або сумісних типів
даних.
Операції відношення:
Операція Відношення Тип операндів Запис
= числовий, символьний, рядковий, a=b
дорівнює
вказівний
<> числовий, символьний, рядковий, a<>b
не дорівнює
вказівний
< менше числовий, символьний, рядковий a<b
> більше числовий, символьний, рядковий a>b
<= менше або рівне числовий, символьний, рядковий a<=b
>= більше або a>=b
числовий, символьний, рядковий
рівне
1
Прості логічні вирази записують за допомогою знаків операцій відношення:
n<>m; a=b; a+b>c+d.
Нехай А і B деякі прості вирази значення яких може бути рівним true або false.
Розглянемо означення логічних операцій.
Логічне множення and (логічне і)
Результат операції
Значення виразу A Значення виразу B
A and B
false false false
false true false
true false false
true true true
Логічне додавання or (логічне або)
Результат операції
Значення виразу A Значення виразу B
A or B
false false false
false true true
true false true
true true true
Заперечення not (логічне не)
Результат операції
Значення виразу A
notA
false true
true false
Операція xor (логічне виключаюче або)
Результат операції
Значення виразу A Значення виразу B
A xor B
false false false
false true true
true false true
true true false
Приклад запису складених логічних виразів
(x>=a)and(x<=b)
(x<a)or(x>b)
Логічні вирази можна використовувати так само як і арифметичні (математичні) вирази з
оператором присвоєння: z:=A and B;
Нехай х=3, у=-9. Розглянемо деякі логічні вирази та їхні значення.
Прості вирази Значення Складені вирази Значення
x=3 true not(y<=-50) true
x>y true (1<x)and(x<5) true
7 mod 3=1 true (x>4)or(y<-15) false
Y div 2=4 false (x>4)or(y>-15) true
Подвійну нерівність 1<х<5 як складений логічний вираз записують так: (1<х)and(x<5).
Сукупність нерівностей вигляду х<1; х>5 — так: (х<1)оr(х>5). Прості логічні вирази, які
входять у складені, завжди беруться у дужки.

3. Умовний оператор розгалуження


Умовний оператор розгалуження має два різновиди.
1) повна форма оператора розгалуження має вигляд:
if <логічний вираз> then <оператор 1> else <оператор 2>;
Дія оператора. Якщо логічний вираз істинний, то виконується <оператор 1>, в
протилежному випадку — <оператор 2>. Оператори 1 та 2 можуть бути простими або
складеними. . В операторі розгалуження перед службовим словом else символ ";" не ставиться.
Приклад. Нехай х=9. У результаті виконання команд

2
if x>7 then y:=x*x else y:=sin(x);
if x<5 then z:=exp(x) else z:=sqrt(x);
отримаємо y=81, z=3.
Задача. Обчислити і вивести значення складеної функції у у деякій заданій користувачем
точці х, якщо
 ln x , x  1,

y  sin  x  ,  1  x  1,
 cos x  , x  1.

program Myfunction;
var x,y:real;
begin
writeln(Bвeдіть x=');
readln(x);
if x<-1 then y:=ln(abs(x))
else
if (x>=-l)and(x<l) then y:=sin(x)
else y:=cos(x);
writeln('x=',x,' y=',y);
readln;
end.
2) коротка форма оператора розгалуження має вигляд:
if <логічний вираз> then <оператор1>;
Дія оператора. Якщо логічний вираз істинний, то виконується <оператор 1>, інакше
виконується наступний оператор за оператором розгалуження.
Приклад. Нехай х=25. Тоді у результаті виконання операторів
if x>12 then y:=2*x; z:=10;
if x<5 then z:=exp(x);
отримаємо y=50, z=10.
Завдання до лабораторної роботи
І Скласти програму для обчислення значень функції:
R  T
 , якщо R2  R  T
1. Обчислити значення функції: E   R
 R 2  T  1 , якщо R2  R  T
G (G  H ) , якщо G  H  3G
2. Обчислити значення функції: D  
G (G  H ) , якщо G  H  3G
 X 2  2Y , якщо 2X  Y 2
3. Обчислити значення функції: R  
2 X  Y 2X  Y 2
2
, якщо
a 2  b 2  a , якщо a b  a2
4. Обчислити значення функції: x  
 ab 7 a b  a2
2
, якщо
2 a  t , якщо 3a  4t 2
5. Обчислити значення функції: V   2
 a t , якщо 3a  4t
 2
 , якщо x  z  x2
6. Обчислити значення функції: M   x  z 2
a 2  z 2 , якщо x  z  x2
c 3  d , якщо c2  c  d
7. Обчислити значення функції: F   3
c  d , якщо c2  c  d
(k  L) 2 , якщо 2( k  L )  3 L
8. Обчислити значення функції: T   2
k  L 2( k  L )  3 L
2
, якщо

3
 2 ab
a  b  3a
2
, якщо
9. Обчислити значення функції: Y   2
ab
a 2  b 2 , якщо  3a
 2
sin 2 x , якщо x  3.14
10. Обчислити значення функції: Y   2
 cos x , якщо x  3.14
u
 y  u , якщо u  u2  y
11. Обчислити значення функції: P  
u 2  y x , якщо u  u2  y
 7
sin 2 x , якщо x  3.14
12. Обчислити значення функції: Y  
 cos x , якщо
2
x  3.14
R  L
2 3
, якщо R 2  2L
13. Обчислити значення функції: Z   2
R  L R 2  2L
2
, якщо
6(m  n) , якщо m2  n2 1
14. Обчислити значення функції: L   2
 m n , якщо m2  n2  1
 R 2  L2 , якщо R2  2L
15. Обчислити значення функції: Z   2
R  L , якщо R2  2L
sin 2 x 2 , якщо x  3.14
16. Обчислити значення функції: Y   2 1
 cos x , якщо x  3.14
ІІ Скласти програаму для розвязання 2-ох задач ( N, 17-N)
1. Дано значення цілих величин x та y . Знайти:

2. Дано значення дійсних величин a, b, c. Знайти:

3. Дано значення дійсної величини Х. Визначити:


4. При даному значенні Х обчислити:

5. Дано дійсні значення x та y. Обчислити:


6. За рейтинговою системою оцінка визначається таким чином, якщо сумарний бал учня становить
не менше 92% від максимального, то виставляється оцінка 12, якщо не нижче 70%, то
виставляється 8, якщо ж не нижче 50%, то оцінка 5, в інших випадках - оцінка 2. Визначте оцінку
учня, якщо він набрав N балів, а максимальне значення сумарного балу становить S.
7. На площині дано дві точки (x1, y1) та (x2, y2). Визначити, яка з них знаходиться далі від початку
координат.
8. Дано значення дійсних величин a, b, c. Подвоїти ці значення, якщо a >= b >= c, і замінити їх
абсолютними значеннями, якщо це не так.
9. Чебурашка вирішив купити килими, щоб застелити кімнату, в якій він мешкав разом з Геною.
Їхня прямокутна кімната виявилася розмірами a x b, де a та b - цілі числа. Коли Чебурашка
запитав у магазині, які килими є у продажу, то продавець повідомив, що є квадратні килими зі
стороною с, де с - ціле число. Яку кількість килимів необхідно придбати Чебурашці, щоб
накрити максимальну площу кімнати. Килими не можна накладати та підгинати. Визначити, яка
площа кімнати буде ненакритою килимами. Передбачити ситуацію, коли розміри килиму
перевищують розміри кімнати.
10. Жили собі дід і баба і був у них город прямокутної форми. Довжина городу була А м, а ширина
складала В м. Якось дід посварився з бабою і вирішив
поділити город порівну. Тепер у діда квадратний город зі
стороною С м, відрізаний скраю, а решта дісталася бабі.
Визначити, чи не залишилась баба ошуканою та якої форми

4
дістався їй город - прямокутної чи квадратної?Взагалі задача має дуже простий розв'язок: адже
бабуся не буде ошуканою в тому випадку, якщо площа городу, що залишилася для неї, не буде
меншою, ніж площа дідусевого городу, тобто С^2 <= A*B - C^2. Та це тільки на перший погляд.
Насправді в даній задачі може бути велика кількість винятків. Наприклад, якщо дідусь захоче
відрізати собі город зі стороною, більшою, ніж сторона загального городу, то це неможливо
зробити взагалі. Якщо ж він відріже, то город, що залишиться, може мати квадратну, прямокутну
або ніякову форми (дивись малюнок)
11. Трьом Товстунам подали на десерт кремові тістечка. Маса одного тістечка складала Х кг, а маса
Товстунів відповідно Х1 кг, Х2 кг та Х3 кг. Перший Товстун з'їв N тістечок. Кожний наступний
Товстун з'їдав у два рази більше від попереднього, але при цьому він не міг з'їсти більше
половини своєї власної ваги. Скільки тістечок було з'їдено Товстунами за обідом? Зверніть увагу на
те, що другий та третій Товстуни за умовою можуть з'їсти тістечок у два рази більше ніж попередній Товстун, але не
можуть з'їсти більше половини своєї ваги. Тому фактично в задачі необхідно перевірити, чи не перевищує кількість
тістечок, що може з'їсти кожний Товстун, дозволену масу і у відповідності до цього підрахувати кількість тістечок,
що були з'їдені.Наприклад, якщо другий Товстун може з'їсти 2N тістечок, то вага цієї їжі буде 2NX кг. Але за умовою
він не може з'їсти більше половини своєї ваги, тобто більше ніж X1/2 кг. Тому якщо вага тих тістечок, що Товстун
може з'їсти не перевищує поріг Х1/2 кг, то ми до загальної кількості тістечок додаємо всі можливі, тобто 2N, якщо ж
перевищує, то ми додаємо тільки ту кількість тістечок, що не дозволяє перевищити припустимий поріг, тобто X1/2/X
(дозволена вага їжі поділити на вагу одного тістечка). Якщо в цьому випадку число вийде нецілим, то це означає, що
Товстун з'їв тістечко не повністю. Щоб такого не трапилось, ми робимо відкидання дробової частини після ділення
за допомогою функції trunc.
12. Дано трикутник зі сторонами a, b, c. Визначити, який це трикутник: гострокутний, тупокутний
чи прямокутний.
13. Дано натуральне число N (N <= 1000). Визначити суму першої і останньої цифр даного числа.
Для розв'язання цієї задачі ми скористаємося стандартними операціями цілочисельного ділення
та остачі від ділення цілих чисел (операції div та mod).
14. Дано натуральне числа N (N <= 99). Визначити, чи правильно, що N^2 дорівнює кубу суми цифр
цього числа.
15. Дано натуральне число N (N <= 9999). Враховуючи всі чотири цифри числа, визначити, чи
правильно, що воно містить дві пари цифр, що повторюються.
16. Квадратний многочлен заданий коефіцієнтами a, b, c, де а<>0. Визначити, чи корені відповідного
рівняння є парними числами. Для розв'язання цієї задачі необхідно нагадати дітям алгоритм знаходження
коренів квадратного рівняння: 1) обчислити дискримінант за формулою D = b^2 - 4ac; 2) якщо ми отримали від'ємне
число, то коренів для розв'язку квадратного рівняння з даними коефіцієнтами a, b, c не існує; 3) якщо дискримінант

не від'ємний, то корені рівняння знаходяться за наступними співвідношеннями:


17. : Дано дійсні додатні числа a, b, c, x, y. Визначити, чи пройде цеглина з ребрами a, b, c у
прямокутний отвір зі сторонами x та y. Проштовхувати цеглину дозволяється лише так, щоб
кожне з її ребер було паралельним чи перпендикулярним кожній зі сторін отвору.
Для розв'язання цієї задачі пропонується впорядкувати розміри отвору та розміри цеглини впорядкувати за зростанням,
тобто добитися того, щоб було a <= b <= c та x <= y. Тоді перевірка зведеться до порівняння розмірів отвору з
найменшими розмірами цеглини (адже ми можемо цеглину розвернути будь-яким боком, щоб проштовхнути її у отвір).

You might also like