Термін «логічні» прийшов в електроніку з алгебри логіки, що оперує зі змінними величинами і їхніми функціями, що можуть приймати тільки два значення: «істинно» чи «хибно». Для позначення істинності чи хибності висловлювань використовують відповідно символи 1 чи 0. Кожна логічна змінна може приймати тільки одне значення: 1 чи 0. Ці двійкові змінні і функції від них називаються логічними змінними і логічними функціями. Пристрої, що реалізують логічні функції, називаються логічними або цифровими пристроями.
Проста умова — це два вирази, між якими є знак порівняння. У ролі виразів можуть виступати числа, числові змінні, що мають значення, функції, а також будь-які арифметичні вирази. Зрозуміло, ці вирази можуть бути дуже складними.
Тут Ви можете згадати про операції порівняння, що Ви вивчали на заняттях
математики. Але в мові Java, як виявилося, ці операції позначаються іноді
не зовсім так, як у математиці (табл. 1).
Операція | Опис операції |
---|---|
> | Більше ніж |
> = | Більше або дорівнює |
< | Менше ніж |
<= | Менше або дорівнює |
== | Дорівнює |
!= | Не дорівнює |
Проста умова, у залежності від того, виконується вона чи ні, має значення True чи False — Істина або Неправда.
Приклад
2.9994 < 2.9995 має значення True;
3.1416 <= 3.1416 має значення True;
1.3E-18 < 2.3E-19 має значення False.
А тепер ми можемо познайомити Вас з більш повним визначенням умовного виразу.
Умовний (логічний) вираз — це або проста умова, або складна умова.
Складна умова — це послідовність простих умов чи інших умовних виразів, укладених у круглі дужки, що з’єднані між собою знаками логічних операцій: & (And) — логічного множення, | (Or) — логічного додавання, ! (Not) — логічного заперечення.
В окремому випадку (а так буває у більшості випадків!) умовний вираз складається тільки з однієї простої умови і не містить ніяких логічних операцій.
Як і арифметичний вираз, умовний вираз обчислюється, але на відміну від арифметичного виразу, у нього може бути лише одне з двох значень: True чи False — Істина чи Неправда.
Значення логічного виразу обчислюється за правилами обчислення значень логічних виразів, аналогічних правилам арифметичних дій. Ці правила потрібно просто вивчити, як усі ми колись вчили таблицю множення!
A | B | A && В |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Табл. 2 (таблицю логічного множення) можна запам’ятати за допомогою однієї фрази: «Логічний добуток істинний тільки тоді, коли обидва логічних співмножника істинні».
A | B | A || В |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Табл. 3 (таблицю логічного додавання) теж можна запам’ятати за допомогою тільки однієї фрази: «Логічна сума помилкова тільки тоді, коли обидва з логічних доданків помилкові».
A | !A |
True | False |
False | True |
Табл. 4. (таблиця логічного заперечення) ще простіше. Правило логічного
заперечення можна сформулювати так: «Логічне заперечення виразу хибне,
якщо сам цей вираз істинний, і навпаки».
Умовний оператор if-else
Конструкція if-else дозволяє в залежності від деякого логічного значення виконувати різні частини програмного коду. В узагальненій формі цей оператор записується наступним чином:
if (логічний вираз) оператор 1; [else оператор2;]
або
if (логічний вираз) {
оператори дії 1;
}
else {
оператори дії 2;
}
Розділ else необов’язковий. На місці будь-якого з операторів може стояти складений оператор, укладений у фігурні дужки. Логічний вираз-це будь-який вираз, який повертає значення типу boolean. Це може бути і проста змінна типу boolean.
Скорочена форма розгалуження
if (логічний вираз) оператор 1;
або
if (логічний вираз) {
оператори дії 1;
}
Задача. Скласти програму по блок-схемі.
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String[] args) {//ім`я класа повинно бути main
Scanner in = new Scanner(System.in);
PrintWriter out = new PrintWriter(System.out);
int a = in.nextInt();
out.println(a );
// пишемо розв’язок
out.flush();
}
}
Задача 911. Квадратне рівняння
Скласти програму для розв’язання квадратного рівняння ax2 + bx + c = 0 (a ≠ 0).
Технічні умови
Вхідні дані
У єдиному рядку задано через пропуск 3 цілі числа – коефіцієнти квадратного рівняння відповідно a, b та c. Значення коефіцієнтів не перевищують по модулю 100.
Вихідні дані
У єдиному рядку вивести у випадку відсутності коренів повідомлення “No roots” (без лапок), у випадку, якщо розв’язок містить один корінь вивести спочатку повідомлення “One root:” (без лапок), а далі через пропуск сам корінь, у випадку наявності двох коренів вивести спочатку повідомлення “Two roots:” (без лапок), а далі через пропуск спочатку менший, а потім більший корінь. Гарантується, що у випадку наявності розв’язків всі корені цілочисельні.
Задача 108. Середнє з чисел
Дано три різних числа a, b, c. Вивести середнє з них.
Технічні умови
Вхідні дані
Числа a, b, c цілі і по модулю не перевищують 1000.
Вихідні дані
Єдине число – відповідь до задачі.
Розв’язок:
Задача 76. Нова шафа
Задано розміри прямокутних дверей a, b та розміри шафи, що має форму прямокутного паралелепіпеда x, y, z. Чи можна пронести шафу у двері, якщо проносити її дозволяється так, щоб кожне ребро шафи було паралельне або перпендикулярне кожній стороні дверей.
Технічні умови
Вхідні дані
П’ять дійсних чисел a, b, x, y, z (0 < a, b, x, y, z < 10).
Вихідні дані
Вивести 1, якщо шафу можна вільно пронести у двері та 0 у протилежному випадку.
Задача 4. Два кола
Визначити в скількох точках перетинаються два кола.
Технічні умови
Вхідні дані
6 чисел x1, y1, r1, x2, y2, r2, де x1, y1, x2, y2, – координати центрів кіл,r1, r2 – їх радіуси. Всі числа – дійсні, не перевищують 1000000000 за модулем, та задані не більш ніж з 3 знаками після коми.
Вихідні дані
Кількість точок перетину. Якщо точок перетину нескінченно багато, то вивести -1.
Розв’язок
I. Визначимо відстань між центрами O1(x1,y1) та O2(x2,y2) і позначимо відстань o12.
II. Будемо перевіряти умови:
1. Чи кола співпадають (мають безліч точок)?
2. Чи кола дотикаються (мають одну точку):
а) центри кола ззовні;
б) один цент кола всередині другого.
3. Чи кола не перетинаються (немають спільних точок):
а) центри кола ззовні;
б) один цент кола всередині другого.
4. Кола перетинаються:
а) центри кола ззовні;
б) один цент кола всередині другого.
Задача 6275. Подвоєння
Задача 6278. Номери будинків
Ви маєте увійти, щоб оприлюднити коментар.