Підпишись та читай
найцікавіші
статті першим!

Тема: Логічний тип даних. Логічні операції not, and, or. Знаходження значень логічних виразів. Самостійна робота. Логічні висловлювання Домашні питання та завдання

. хналежить відрізку;
x лежить поза відрізком;
x належить відрізку або [-1,1];
x лежить поза відрізком або [-1,1].
3.
Пояснити структуру та правила виконання умовних операторів.
4.
Записати зазначену дію у вигляді одного умовного оператора:
cos
2
x, при 0x у =
1-sin
2
x, інакше.
5.
z
int z=0, x=1, y=

1;

80 Програмування лінійних алгоритмів у системі C++Builder
if (x>0) if (y>0) z=1; else z=2;
6.
Яке значення матиме змінна zпісля виконання операторів:
int z=0, x=

1, y=1;
if (x) ( if (y>0) z=1;) else z=2;
7.
Яке значення матиме змінна zпісля виконання операторів:
int z=0, x=0, y=1;
if (x) ( if (y>0) z=1;) else z=2;
8.
Яке значення матиме змінна zпісля виконання операторів:
int z=0, x=3, y=1;
if (x) ( if (y) z = 1;) else z = 2;
9.
Вкажіть помилки у наступних операторах:
if (1
else x=0; y+= 1;
10.
int z=0, x=0, y=1;
if (! x) ( if (! (y)

1)) z = 1;) else z = 2;
11.
Яке значення матиме змінна z після виконання операторів:
int z=0, x=1, y=1;
if (! x) ( if (! (y)

1)) z = 1;) else z = 2;
12.
Знайдіть помилки у фрагменті програми:
(int n, x; switch (k) case + : x:=x-4 break; case

-

,

*

, x = 5;
}
Які правила порушені та як можна виправити помилки?


81
3.4
Індивідуальні завдання до розділу 3
Кожному студенту потрібно вирішити два завдання першого та другого рівнів складності.
Завдання першого рівня складності.
1.
Дано чотиризначне позитивне ціле число. Написати програму, яка друкує trueабо falseзалежно від того, виконується чи ні зазначена умова: сума 1 та 4 цифри дорівнює добутку 2 та 3 цифри.
2.
Дано дійсні числа x, y. Якщо x та y негативні, то кожне значення замінити його модулем; якщо негативно лише одне з них, то обидва значення збільшити на 5.5; в інших випадках обидва значення зменшити у 10 разів.
3.
Дано дійсні числа x, y. Якщо x та y позитивні, то кожне значення зменшити в 5 разів; якщо обидва значення лежать у діапазоні [-3, 9], то обидва значення замінити на 0; в інших випадках x та y збільшити на 3.
4.
Дано дійсні числа x, y (xy). Найменше з цих двох чисел замінити їхньою напівсумою, а більше – їх подвоєним твором.
5.
Якщо сума трьох попарно різних дійсних чисел x, y, z менша за 1, то найменше з цих трьох чисел замінити напівсумою двох інших; в іншому випадку замінити менше з x і y напівсумою двох значень, що залишилися.
6.
Дано дійсні числа a, b, c, d. Якщо a b>c>d, числа залишити без зміни; інакше всі числа замінити їх квадратами.
7.
Визначити, чи є шестизначне ціле число щасливим. (Число називається щасливим, якщо сума перших трьох цифр дорівнює сумі останніх трьох цифр.)
8.
trueабо falseзалежно від того, виконується чи ні зазначена умова: для довільних дійсних чисел a, b, c визначити, чи має рівняння ax
2
+bx+c=0 хоча б одне дійсне рішення.

82 Програмування лінійних алгоритмів у системі C++Builder
9.
Для вирішення наступного завдання написати програму, яка друкує trueабо falseзалежно від того, виконується чи ні зазначена умова: визначити, чи дорівнює сума двох перших цифр заданого чотиризначного числа сумі двох його останніх чисел.
10.
У деякому навчальному закладідіють такі правила прийому. Абітурієнти складають два іспити, які оцінюються за
100 балів кожен. Якщо абітурієнт набирає не менше 150 балів, це дає право вступати на денне відділення, від 100 до 149 – на вечірнє відділення; нижче 100 балів означає відмову у прийомі навчання. Написати програму, яка, залежно від суми набраних балів, повідомляє абітурієнту його права на вступ.
11.
Написати програму з використанням оператора вибору , яка дозволяє отримати словесний опис позначок. (1 – «погано», 2 –
"незадовільно", 3 - "задовільно", 4 - "добре", 5 -
"відмінно".)
12.
Для вирішення наступного завдання написати програму, яка друкує trueабо falseзалежно від того, виконується чи ні зазначена умова: визначити, чи серед цифр заданого трьох-значного числа однакові.
13.
Написати програму, яка друкує true, якщо дата d1, m1передує (в рамках року) даті d2, m2та значення falseв іншому випадку.
14.
Написати програму за допомогою оператора вибору, яка за першою літерою імені виводить на екран ім'я повністю
(Іван, Петро, ​​Микола, Володимир, Георгій).
15.
Написати програму з використанням оператора вибору, яка за введеною цифрою 0≤ k≤ 5 друкує назву цієї цифри російською та англійською мовами.
16.
Дано ціле число k (1

k

365). Визначити, яким буде k-й день року – вихідним чи робітником, якщо 1 січня – понеділок.
17.
Дано дійсне число x. Обчислити f, якщо:











sin
,
1 0
,
0 5
2 11 2
випадках
решти
в
x
x
x
при
x
x
x
при
f

Програмування з використанням одновимірних масивів
83 18.
Дано дійсне число x. Написати програму для обчислення f:












34 5
,
12 3
lg ln
,
3 5
1 3
2 4
випадках
решти
в
x
x
x
при
x
x
x
при
f
19.
Написати програму з використанням оператора вибору, яка за першою літерою назви міста виводить на екран назву міста повністю (Курськ, Москва, Тула, Новгород, Воронеж).
20.
Написати програму з використанням оператора вибору, яка за першою літерою прізвища виводить на екран прізвище повністю (Іванов, Петров, Сидоров, Мишкін, Шишкін).
21.
Дані координати центру та радіус кола. Визначити належність певної точки, що має координати (x, y), довкілля.
22.
Написати програму з використанням оператора вибору, яка за введеною першою літерою назви тварини надрукує повністю назву тварини (собака, кішка, жираф, кінь, мавпа).
23.
Дано три різні числа a,b,c. Упорядкувати ці числа за зростанням таким чином, щоб aвідповідало найменша кількість, b- середнє число, c- Найбільше.
24.
Написати програму за допомогою оператора вибору, яка за номером (від 1 до 7) виводить назву дня тижня.
25.
Написати програму за допомогою оператора вибору, яка за номером (від 1 до 12) виводить назву місяця року.
26.
Написати програму з використанням оператора вибору, яка за введеною першою літерою назви сезону року друкує повністю назву сезону року.
27.
Дано п'ятизначне позитивне ціле число. Написати програму, яка друкує trueабо falseзалежно від того, виконується чи ні зазначена умова: сума 1, 3 та 5 цифри більша за добуток 2 та 4 цифри.
28.
Дано чотиризначне позитивне ціле число. Написати програму, яка друкує trueабо falseзалежно від,

84 Програмування лінійних алгоритмів у системі C++Builder виконується чи ні зазначена умова: середня арифметична 1 та
4 цифри більше суми 2 та 3 цифри.
29.
Дано цифру і тризначне числоу десятковій системі числення. Якщо цифра збігається із старшою цифрою числа, то обчислити суму цифр числа. Якщо цифра збігається із середньою цифрою числа, то обчислити добуток цифр числа. Якщо цифра збігається з найменшою цифрою числа, то обчислити середнє арифметичне цифр числа. Якщо жодна з умов не виконується, то обчислити середню геометричну цифру числа.
30.
Дано цифру та тризначне число в десятковій системі числення. Якщо цифра збігається зі старшою цифрою числа, то обчислити середнє арифметичне цифр числа. Якщо цифра збігається із середньою цифрою числа, то обчислити середнє геометричне цифр числа. Якщо цифра збігається з найменшою цифрою числа, то обчислити суму цифр числа. Якщо жодна з умов не виконується, то обчислити добуток цифр числа
Завдання другого рівня складності.
1.
Дано ціле двозначне позитивне число в трійковій системі числення. Написати програму, яка виводить назви цифр числа російською мовою, якщо старша цифра числа більш молодша, інакше
- на англійській мові.
2.
Дано ціле двозначне позитивне число в п'ятирічній системі числення. Написати програму, яка виводить назви цифр числа англійською мовою, якщо старша цифра числа більш молодша, інакше
- російською мовою.
3.
Дано ціле двозначне позитивне число в п'ятирічній системі числення. Написати програму, яка виводить назви цифр числа англійською мовою, якщо старша цифра числа молодша рівно в 2 рази, інакше
- російською мовою.
4.
Дано ціле двозначне позитивне число в трійковій системі числення. Написати програму, яка виводить назви цифр числа російською мовою, якщо старша цифра числа менша за молодшу, інакше
- на англійській мові.

Програмування з використанням одновимірних масивів
85 5.
Дано ціле двозначне позитивне число в п'ятирічній системі числення. Написати програму, яка виводить назви цифр числа російською мовою.
6.
Дано ціле двозначне позитивне число у восьмеричній системі числення. Написати програму, яка виводить назви цифр числа російською мовою.
7.
Дано ціле двозначне позитивне число у восьмеричній системі числення. Написати програму, яка виводить, якщо найстарша цифра менша вдвічі молодшої цифри, назви цифр числа англійською мовою, інакше

російською мовою.
8.
Дано ціле двозначне позитивне число в семеричній системі числення. Написати програму, яка виводить, якщо цифри розташовані за спаданням, назви цифр числа англійською мовою, інакше

російською мовою.
9.
Дано дві цифри в десятковій системі числення. Написати програму, яка виводить назви англійською мовою цифр суми цих цифр.
10.
Дано дві цифри в десятковій системі числення. Написати програму, яка виводить назви російською мовою цифри добутку цих цифр.
11.
Дано дві цифри в десятковій системі числення. Написати програму, яка виводить назву російською мовою цифри модуль різниці цих цифр.
12.
Дано дві цифри в десятковій системі числення. Написати програму, яка виводить назви цифр англійською мовою приватного та залишку цілісного поділу цих чисел.
13.
Дано ціле двозначне позитивне число в дев'ятеричній системі числення. Написати програму, яка виводить, якщо старша цифра більша втричі молодшої цифри, назви цифр числа англійською мовою, інакше

російською мовою.
14.
Дано ціле двозначне позитивне число в дев'ятеричній системі числення. Написати програму, яка виводить назву цифри числа, що має більше значення, англійською мовою, а назва цифри числа, що має менше значення,

російською мовою.

86 Програмування лінійних алгоритмів у системі C++Builder
15.
Дане ціле двозначне позитивне число у семеричній системі числення. Написати програму, яка виводить назву цифри числа, що має більше значення, англійською мовою, а назва цифри числа, що має менше значення,

російською мовою.
16.
Дано ціле двозначне позитивне число в шестеричній системі числення. Написати програму, яка виводить назви цифр числа англійською мовою.
17.
Дано два цілих двозначних позитивних чисел у трійковій системі числення. Написати програму, яка виводить назви цифр суми цих чисел російською мовою.
18.
Дано два цілих двозначних позитивних чисел у двійковій системі числення. Написати програму, яка виводить назви цифр суми цих чисел англійською мовою.
19.
Дано ціле двозначне позитивне число в п'ятирічній системі числення. Написати програму, яка виводить, якщо цифри розташовані за зростанням , назви цифр числа англійською мовою, а інакше

російською мовою.
20.
Дано ціле двозначне позитивне число в шестеричній системі числення. Написати програму, яка виводить, якщо старша цифра більша вп'ятеро молодшої цифри, назви цифр числа російською мовою, а інакше

на англійській мові.
21.
Дано дві цифри у восьмеричній системі числення. Написати програму, яка виводить назви російською мовою цифри модуль різниці цих цифр.
22.
Дано дві цифри у восьмеричній системі числення. Написати програму, яка виводить назви російською мовою суми цих двох цифр.
23.
Дане ціле двозначне позитивне число у семеричній системі числення. Написати програму, яка виводить, якщо старша цифра більша втричі молодша, назви цифр числа російською мовою, а інакше

на англійській мові.
24.
Дано ціле двозначне позитивне число у вісімковій системі числення. Написати програму, яка виводить назву цифри числа, що має більше значення, російською мовою, а на-

Програмування з використанням одновимірних масивів
87 звання цифри числа, що має менше значення,

на англійській мові.
25.
Дане ціле двозначне позитивне число у семеричній системі числення. Написати програму, яка виводить назву цифр числа , що мають значення менше 4, російською мовою, а назва цифр числа, що мають значення більше або дорівнює 4,

на англійській мові.
26.
Дано ціле двозначне позитивне число в шестеричній системі числення. Написати програму, яка виводить назву цифр числа, що мають значення менше 3, російською мовою, а назва цифр числа, що мають значення більше або дорівнює 3,

на англійській мові.
27.
Дано дві перші літери (без урахування регістру, як малі, так і великі) назви місяця року. Написати програму, яка виводить повну назву місяця року російською мовою.
28.
Дано дві перші літери (без урахування регістру, як малі, так і великі) назви дня тижня. Написати програму, яка виводить повну назву дня тижня російською мовою.
29.
У старояпонському календарі було прийнято 60-річний цикл, що складався з п'яти 12-річних підциклів. Підцикли позначалися назвами кольору: зелений, червоний, жовтий, білий та чорний. Всередині кожного підциклу роки носили назви тварин: щури, корови, тигра, зайця, дракона, змії, коні, вівці, мавпи, курки, собаки та свині (1984 рік – рік зеленого щура – ​​був початком чергового циклу). Написати програму, яка вводить номер деякого року нашої ери і друкує його назву за старояпонським календарем.
30.
Дано ціле двозначне позитивне число в дев'ятеричній системі числення. Написати програму, яка виводить назву цифр числа, що мають значення більше 5, російською мовою, а назва цифр числа, що мають значення менше або дорівнює 5,

на англійській мові.

88 Програмування лінійних алгоритмів у системі C++Builder
4 ПРОГРАМУВАННЯ ЦИКЛІЧНИХ
АЛГОРИТМІВ У СИСТЕМІ C++BUILDER
У цьому розділі здійснюється вивчення операторів циклу мови
C++, придбання навичок програмування циклічних алгоритмів
так, компіляції та налагодження програм.
4.1
Основні поняття
Мовою C++Builder існують три оператори циклу:
1.
Цикл із передумовою ( while);
2.
Цикл із постумовою ( do);
3.
Цикл з лічильником ( for).
Оператор циклу з передумовою while (Рисунок 4.1):
while(умова) (тіло циклу)
Рисунок 4.1

Cхема алгоритму оператора циклу while
Якщо результат обчислення умови дорівнює true(правда), тіло циклу виконується і знову здійснюється перехід до перевірки умови. Якщо результат обчислення умови дорівнює false(брехня), то відбувається вихід із циклу та перехід до оператора, що йде за циклічним оператором while.
Якщо перед першим виконанням циклу значення виразу було false, Тіло циклу взагалі не виконується і відбувається перехід на наступний оператор.
Умова
Тіло циклу
Так
Ні

Програмування з використанням одновимірних масивів
89
Приклад:
обчислити суму непарних чисел у інтервалі від 1 до 10.
( int k = 1, s = 0; while (k (s + = k; k + = 2;);
}
}
Оператор циклу з постумовою do (Рисунок 4.2):
do(тіло циклу) while(Умова); так ні умова
Тіло циклу
Малюнок 4.2

Схема алгоритму оператора циклу do…while
Умова є виразом логічного типу, тіло циклу – один простий або складовий оператор.
Тіло циклу оператора

Виберіть із учителем завдання для виконання самостійної роботиз нижче запропонованих вправ.

1. Обчисліть значення виразу:

а) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

б) k mod 7 = k div5-1 при k = 15;

в) odd (trunc (10 * p)) при p = 0.182;

г) not odd(n) при n=0;

д) t and (p mod 3 = 0) при t = true, p = 101010;

е) (x * y<>0) and (y>x) при x=2, y=1;

ж) (x * y<>0) or (y>x) при x=2, y=1;

з) a or (not b) при a=False, b=True;

2. Записати на Паскалі відношення, істинне при виконанні зазначеної умови і хибне інакше:

а) ціле k поділяється на 7;

б) рівняння не має речовинного коріння;

в) точка (х, у) лежить поза коло радіусу R з центром у точці (1,0);

г) натуральне число N є квадратом натурального числа;

е) x = max (x, y, z);

ж) (операцію notне використовувати)

з) хоча б одна з логічних змінних а та b має значення True;

і) обидві логічні змінні а та b мають значення True.

3. Вказати порядок виконання операцій при обчисленні виразів:

а) a and b або not c and d;

б) (x> = 0) або не c і d.

4. Обчислити такі вирази при a=True, b=False:

а) a or b and not a;

б) (a або b) and not a;

в) not a and b;

г) not (a and b)

5. Записати на Паскалі вираз, істинне при виконанні зазначеної умови і хибне інакше:

а) х належить відрізку;

б) х лежить поза відрізком;

в)* х належить відрізку або [-1, 1];

г)* х лежить поза відрізками і [-1, 1];

д) кожне із чисел х, у, z позитивно;

ж) жодне з чисел х, у, z не є позитивним;

з) лише одне із чисел х, у, z позитивно;

і) логічна змінна а має значення True, логічна змінна b має значення False;

к)* рік із порядковим номером у є високосним (рік високосний, якщо його номер кратен 4, проте з кратних 100 високосними є лише кратні 400, наприклад, 1700, 1800 та 1900 – невисокосні роки, 2000 – високосний).

6. Намалювати на площині (х,у) область, в якій і тільки в якій зазначено вираз:

а)* (y>=x) and (y+x>=0) and (y<=1);

б) (sqr(x)+sqr(y)<1) or (y>0) and (abs(x)<=1);

в) (trunc (y) = 0 and (round (x) = 0);

г)* (abs(x)<=1)>(abs(y)>=1);

д) (sqr(x)+sqr(y)<=4)=(y<=x).

7) Є умовний оператор:

writeln ('ура!')

writeln ('погано...')

Чи можна замінити його наступними операторами:

а) якщо d=10 б) якщо не (d=10)

writeln ('ура!') writeln ('ура!')

writeln ('погано...'); writeln ('погано...');

в) якщо не (d=10) г) якщо не (d)<>10)

writeln ('погано...') writeln ('погано...')

writeln ('ура!'); writeln ('ура!');

8) Якими будуть значення змінних j, k після виконання умовного оператора:

якщо вихідні значення змінних рівні:

Примітка. В результаті виконання оператора dec(k,2) значення змінної k зменшується на 2.

Змінні логічного типу описуються за допомогою ідентифікатора Boolean . Вони можуть набувати лише двох значень – False (брехня)і True (Істина). Описуються вони у розділі описи змінних. Var<имя>: Boolean;

До логічних виразів можуть входити:

n логічні величини,

n операції відносини (<- меньше, >- Більше,<=- меньше или равно, >=- більше або одно,<>- Не одно, =- одно).

n логічні операції And, Or, Not

n разл. дії та функції


У мові Турбо Паскаль є логічні операції, що застосовуються до змінних логічного типу. Це операції not, and, or та хor.

Операція not(не) має один операнд і утворює його логічне заперечення. Результат операції не є False, якщо операнд істинний, і True, якщо операнд має значення брехня. Так, not True False (неправда є брехня) not False True (неправда є правда).

Результат операції and(і) є істина, тільки якщо обидва її операнди істинні, і брехня у всіх інших випадках (логічне множення).

Результат операції or(або) є істина, якщо будь-який з її операндів істинний, і хибний тільки тоді, коли обидва операнди помилкові (логічне складання).

Логічні операції, операції відносини та арифметичні операції часто зустрічаються в одному виразі. При цьому відносини, що стоять ліворуч і праворуч від знака логічної операції, мають бути укладені в дужки, оскільки логічні операції мають вищий пріоритет. Взагалі прийнято наступний пріоритет операцій:

2. and, *, /, div, mod

3. or, +, -

4. операції відносини (<- меньше, >- Більше,<=- меньше или равно, >=- більше або одно,<>- Не одно, =- одно).

Крім того, порядок виконання операцій може змінюватись дужками. Наприклад, у логічному вираженні розставимо порядок дій:

AorBandnot(AorB)


Спочатку виконується укладена в дужки операція або, а потім операції not, and, або. Якщо підставити замість змінних А і значення True і False, то, використовуючи вже розглянутий порядок дій, отримаємо значення всього виразу рівне True.

Вправа 5: . Запишіть у зошит та обчисліть значення виразів

при a=10, b=20, c=true, d=false: а)(a>5) and (b>5) and (a<20) and (b<30);

b) not (a<15) or not (b<30);

c) c або d and (b=20).

Увага ! У Паскаль немає можливості введення логічних даних за допомогою оператора read. Однак передбачено виведення значень змінних логічного типу за допомогою оператора write. Наприклад, після виконання оператора write (5>2) на екран буде виведено True.

Домашні питання та завдання:

1. Як описується логічна змінна і які значення вона може набувати?

2. Що може входить до логічних виразів. Наведіть приклади найпростіших логічних виразів.

3. Розкажіть про логічні операції у мові Паскаль. Наведіть приклади складових логічних виразів.

4. Який пріоритет різних операцій у Паскалі. Наведіть приклад.


Завдання:

№19.

А. ціле k поділяється на 7;

В. Хоча б одне з цілих x, y парне;

Р. x=max(x,y,z), тобто x найбільше із трьох чисел x,y,z;

Д. (операцію не використовувати)

Е. хоча б одна з логічних змінних а та b має значення True;

Ж. обидві логічні змінні а та b мають значення True.

№20. Вказати порядок виконання операцій при обчисленні виразів:

а) a and b або not c and d; б) (x> = 0) або не c і d.

№21. Обчислити такі вирази при a=True, b=False:

а) a or b and not a; б)(a or b) and not a; в) not a and b; г) not (a and b)

№22. Скласти програму: На вступних іспитах абітурієнт складав фізику, інформатику, твір. Абітуріт надійде, якщо отримає 5 з інформатики та набере суму балів за три іспити не менше 13. Чи правда, що він надійшов (вивести True/False)?

§ 8. Розв'язання задач на тему «Лінійні програми. Логічні величини.

Упр. 7 . Обчисліть значення виразу:

а) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

б) k mod 7 = k div5-1 при k = 15;

в) odd (trunc (10 * p)) при p = 0.182;

г) not odd(n) при n=0;

д) t and (p mod 3 = 0) при t = true, p = 101010;

е) (x * y<>0) and (y>x) при x=2, y=1;

ж) (x * y<>0) or (y>x) при x=2, y=1;

з) a or (not b) при a=False, b=True;

Упр. 8. Записати на Паскалі вираз, істинне при виконанні зазначеної умови і хибне інакше:

а) х належить відрізку;

б) х лежить поза відрізком;

в)* х належить відрізку або [-1, 1];

г)* х лежить поза відрізками і [-1, 1];

д) кожне із чисел х, у, z позитивно;

ж) жодне з чисел х, у, z не є позитивним;

з) лише одне із чисел х, у, z позитивно;

і) логічна змінна а має значення True, логічна змінна b має значення False;


к)* рік із порядковим номером у є високосним (рік високосний, якщо його номер кратен 4, проте з кратних 100 високосними є лише кратні 400, наприклад, 1700, 1800 та 1900 – невисокосні роки, 2000 – високосний).

Упр. 9 . Намалювати на площині (х,у) область, в якій і тільки в якій істинно зазначений вираз:

а)* (y>=x) and (y+x>=0) and (y<=1);

б) (sqr(x)+sqr(y)<1) or (y>0) and (abs(x)<=1);

в) (trunc (y) = 0 and (round (x) = 0);

г)* (abs(x)<=1)>(abs(y)>=1);

д) (sqr(x)+sqr(y)<=4)=(y<=x).

Упр. 10 ..Книга коштує X рублів. У покупця є купюри номіналом 50, 10, 5, 1 рублів. Скільки та яких купюр треба взяти, щоб розплатитися за книгу мінімальною кількістю купюр?

Змінні логічного типу зазвичай набувають значення в результаті виконання операцій порівняння та математичних операцій (розглядалися у попередньому занятті), а також за допомогою специфічних булевих операцій.

У мові Турбо Паскаль є логічні операції, що застосовуються до змінних логічного типу. Це операції not, and, or та хor. У цій темі Ви розгляньте три логічні операції. Позначення та результати цих операцій наведено у таблиці. Розгляньте її.

Операція not(не) має один операнд і утворює його логічне заперечення. Результат операції не є False, якщо операнд істинний, і True, якщо операнд має значення брехня. Так,

not True False (неправда є брехня)

not False True (неправда є правда)

Результат операції and(і) є істина, тільки якщо обидва її операнди істинні, і брехня у всіх інших випадках.

Результат операції or(або) є істина, якщо будь-який з її операндів істинний, і хибний тільки тоді, коли обидва операнди помилкові.

Завдання . Спробуйте визначити значення булевих операцій для висловлювань:

  1. Школяр на зимових канікулах залишається вдома або їде кудись відпочивати.
  2. Філіп Кіркоров є співаком та комбайнером.
  3. Школярами є хлопчики і дівчатка.

Логічні операції, операції відносини та арифметичні операції часто зустрічаються в одному вираженні. При цьому відносини, що стоять ліворуч і праворуч від знака логічної операції, повинні бути укладені в дужки, оскільки логічні операції мають більший пріоритет. Взагалі прийнято наступний пріоритет операцій:

  • and, *, /, div, mod
  • or, +, -
  • операції відносини.

. Логічну операцію and ще називають логічним множенням, а логічну операцію or – логічним додаванням.

Крім того, порядок виконання операцій може змінюватись дужками. Наприклад, у логічному вираженні розставимо порядок дій

A або B і не (A або B)

Спочатку виконується укладена в дужки операція або, а потім операції not, and, або. Якщо підставити замість змінних А і значення True і False, то, використовуючи вже розглянутий порядок дій, отримаємо значення всього виразу рівне True.

Завдання . Запишіть у зошит та обчисліть значення виразів при a=10, b=20, c=true, d=false:

  • (a>5) and (b>5) and (a<20) and (b<30);
  • not (a<15) or not (b<30);
  • c або d and (b=20);

Увага! У Паскаль немає можливості введення логічних даних за допомогою оператора read. Однак передбачено виведення значень змінних логічного типу за допомогою оператора write.

Наприклад, після виконання оператора write (5>2) на екран буде виведено True.

Самостійна робота

Виберіть із учителем завдання для виконання самостійної роботи з нижче запропонованих вправ.

  1. Обчисліть значення виразу:

    а) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

    б) k mod 7 = k div5-1 при k = 15;

    в) odd (trunc (10 * p)) при p = 0.182;

    г) not odd(n) при n=0;

    д) t and (p mod 3 = 0) при t = true, p = 101010;

    е) (x * y<>0) and (y>x) при x=2, y=1;

    ж) (x * y<>0) or (y>x) при x=2, y=1;

    з) a or (not b) при a=False, b=True;

  2. Записати на Паскалі відношення, істинне при виконанні зазначеної умови і хибне інакше:

    а) ціле k поділяється на 7;

    б) точка (х, у) лежить поза коло радіусу R з центром у точці (1,0);

    в) натуральне число N є квадратом натурального числа;

    г) 0

    д) x = max (x, y, z);

    е) хоча б одна з логічних змінних а та b має значення True;

    ж) обидві логічні змінні а та b мають значення True.

  3. Вказати порядок виконання операцій при обчисленні виразів:

    а) a and b або not c and d;

    б) (x> = 0) або не c і d.

  4. Обчислити такі вирази при a=True, b=False:

    а) a or b and not a;

    б) (a або b) and not a;

    в) not a and b;

    г) not (a and b)

  5. Записати на Паскалі вираз, істинне при виконанні зазначеної умови і хибне інакше:

    а) х належить відрізку;

    б) х лежить поза відрізком;

    в)* х належить відрізку або [-1, 1];

    г)* х лежить поза відрізками і [-1, 1];

    д) кожне із чисел х, у, z позитивно;

    ж) жодне з чисел х, у, z не є позитивним;

    з) лише одне із чисел х, у, z позитивно;

    і) логічна змінна а має значення True, логічна змінна b має значення False;

    к)* рік з порядковим номером у є високосним (рік високосний, якщо його номер кратен 4, проте з кратних 100 високосними є лише кратні 400, наприклад, 1700, 1800 та 1900 – невисокосні роки, 2000 – високосний).

  6. Намалювати на площині (х,у) область, в якій і тільки в якій істинно зазначений вираз:

    а)* (y>=x) and (y+x>=0) and (y<=1);

    б) (sqr(x)+sqr(y)<1) or (y>0) and (abs(x)<=1);

    в) (trunc (y) = 0 and (round (x) = 0);

    г)* (abs(x)<=1)>(abs(y)>=1);

    д) (sqr(x)+sqr(y)<=4)=(y<=x).

  7. Є умовний оператор:
    if d<>10
    then
    writeln ('ура!')
    else
    writeln ('погано...');

    Чи можна замінити його наступними операторами:

  8. Якими будуть значення змінних j, k після виконання умовного оператора:
    if j>k
    then
    j:=k-2
    else
    dec (k,2);
    якщо вихідні значення змінних рівні:
    а) j = 3, k = 5;
    b) j = 3, k = 3;
    c) j = 3, k = 2.

Примітка . В результаті виконання оператора dec(k,2) значення змінної k зменшується на 2.

Включайся в дискусію
Читайте також
Платіжний календар у excel
Ефективне керування витратами на рекламу Життєвий цикл продукту
Горизонт фінансового планування - це період часу, в межах якого можна дати з прийнятною точністю оцінку фінансових показників стратегії розвитку