Логічний тип( boolean) описує величину, що може бути лише хибною (false) або істиною (true), але на збереження якого відводять 1 байт.
Опис
var x, y, z: boolean;
Присвоєння значень
X:= TRUE; y:= 2>5; z:= a=b;
Виведення
writeln(y);
Writeln(a>b);
Коли логічна змінна має значення TRUE, її внутрішнє представлення 1.
Коли логічна змінна має значення FALSE, її внутрішнє представлення 0.
Такі величини отримують, наприклад, у результаті обчислення логічних виразів з операціями порівняння (відношення). Для даних логічного типу визначено такі операції:
Таблиця істинності логічних операцій:
Значення
операндів (аргументів) |
Результат операції
| |||||
X
|
Y
|
not X
|
X and Y
|
X or Y
|
X xor X
| |
false
|
false
|
true
|
false
|
false
|
false
| |
false
|
true
|
true
|
false
|
true
|
true
| |
true
|
false
|
false
|
false
|
true
|
true
| |
true
|
true
|
false
|
true
|
true
|
false
|
Подамо приклад програми порівняння одного з трьох введених цілих чисел з сумою решти:
program example3;
var a, b, c: integer;
la,lb,lc: boolean;
begin
write('Введіть 3 цілих числа через пропуск ');
readln(a,b,c);
la:=a>b+c;
lb:=b>c+a;
lc:=c>a+b;
writeln('a>b+c b>c+a c>a+b');
writeln(la:5,lb:6,lc:6);
end.
В останній вказівці після двокрапки вказано кількість позицій (символів) для виведення (останню заповнено). Результат роботи при введенні 3 4 5 буде таким.
Введіть 3 цілих числа через пропуск 3 4 5
a>b+c b>c+a c>a+b
False False False
Приклади
Програма
|
Пояснення
|
Результат роботи
|
Const a=2; b=10;
var x:boolean; begin x:=a < b; Writeln(x); end. |
a=2; b=10. Тому a < b вірна нерівність. Отже, x має значення TRUE, яке і виводиться на екран
|
TRUE
|
Const a=TRUE; b=FALSE;
Begin writeln(b > a); end. |
a=TRUE, тобто 1; b=FALSE, тобто 0. Тому b>a - невірна нерівність, тобто такий логічний вираз має значення FALSE
|
FALSE
|
Const X=-2; y=2;
Var Z:Boolean; Begin Z:=sqr(x)-sqr(y)=0; writeln(z); end. |
X=-2; y=2. Тому sqr(x)-sqr(y)=0 - вірна рівність, тому Z має значення TRUE
|
TRUE
|
Const F=7; D=5;
Var Z:Boolean; Begin Z:=1/F > 1/D; writeln(z); end. |
F=7; D=5, F > D. Тому 1/F<1/D. Звідки 1/F > 1/D -невірно, тому Z має значення FALSE
|
FALSE
|
Завдання для самостійного опрацювання
Задача Vinni. Вінні Пух любить складати віршики говорячи речення задом наперед. Якось йому попалось довге складне речення і він забув свій віршик, пробуючи його виговорити. Складіть програму, яка б допомагала ведмедику легко складати такі віршики. Зауваження: віршик може складатись як із 1 слова, так і з декількох, розділених пропусками.
Технічні умови. Програма зчитує з клавіатури стрічку-віршик. В кінці віршика ніколи не ставиться крапка. Довжина віршика менша за 255 символів. Програма виводить на екран стрічку, яку отримано внаслідок повороту.
Приклад. Введення> роза. Виведення> азор.
Приклад. Введення> Все медведи любят мед. Виведення> дем тябюл идевдем есВ
Задача Весела абетка. Петрик навчається в початковій школі. Він ще не дуже добре знає англійську абетку і тому дуже засмутився, коли Ольга Павлівна (учителька англійської мови) попросила його переставити літери слова S за абеткою (від «А» до «Z»). Допоможіть Петрику впоратися з завданням.
Вхідні дані: У рядку міститься слово S.
Вихідні дані: У рядку міститься слово, яке утворилось під час перестановки літер.
Обмеження: слово S містить від 1 до 10 символів, тільки маленькі латинські літери. Приклад вводу: champion Приклад виводу: Achimnop
Підказка: Очевидно, що слово, яке утворилося під час перестановки літер, містить стільки ж символів як початкове.
В даному розділі розглянуто набір реалізацій А.Нікітін на мові Pascal стандартних алгоритмів, застосовуваних при вирішенні завдань олімпіадного програмування.
- Підрахунок різних букв в слові
- Перестановка букв в слові (циклічний зсув вправо)
- Перевірка рядки на "паліндромний"
- Друк всіх дільників натурального числа A
- Друк всіх скоєних чисел до 10000
- Друк всіх простих чисел до 500
- Підрахунок суми цифр числа
- Підрахунок суми елементів одновимірного масиву
- Підрахунок суми елементів двомірного масиву
- Пошук максимального елемента в масиві
- Пошук мінімального елемента в масиві
- Пошук середнього арифметичного в масиві
- Друк всіх елементів масиву з інтервалу C..D
- Циклічний зсув елементів масиву вправо
- Друк самого часто зустрічається елемента з масиву
- Чи всі елементи масиву різні?
- Сортування масиву "бульбашкою"
- Рішення рівняння: A * x ^ 2 + B * x + C = 0
- Обчислення довжини відрізка | AB |
- Яка точка (A або B) ближче до початку координат
- Обчислення площі трикутника по 3 вершин
- Чи потрапляє точка M (x, y) в коло з центром O (Xc, Yc) і радіусом R
- Перекладу десяткового числа в двійкове
- Перекладу двійкового числа в десяткове
- Перекладу десяткового числа в шістнадцяткове
- Перекладу шістнадцятирічного числа в десяткове
- Рекурсивні алгоритми: знаходження НСД і НСК двох чисел
- Рекурсивні алгоритми: обчислення факторіала
- Рекурсивні алгоритми: генерація перестановок
- Рекурсивні алгоритми: швидке сортування
- Рішення системи 2-х рівнянь з двома невідомими
- Рішення системи 3-х рівнянь з трьома невідомими
- Визначення перетину двох відрізків
- Визначення положення точки відносно сектора
- Положення точки щодо вектора
- Положення точки щодо трикутника (варіант 1)
- Положення точки щодо трикутника (варіант 2)
- Моделювання додавання двійкових чисел
- Моделювання віднімання двійкових чисел
- Зведення цілого числа в натуральну ступінь (варіант 1)
- Зведення цілого числа в натуральну ступінь (варіант 2)
- Множення довгих натуральних десяткових чисел
- Кодування: приклад простий кодування (зрушення по ключу)
- Обробка тексту: підрахунок кількості слів в тексті
- Обробка тексту: виділення слів з тексту
- Обробка тексту: виділення чисел з тексту
- Обробка тексту: дозвіл введення тільки цифр
- Обробка тексту: переклад в маленькі букви (нижній регістр)
- Обробка тексту: переклад в заголовні букви (верхній регістр)
- Обробка тексту: видалення з тексту Комметаріі типу {...}
- Бек-трекінг: Міста
- Бек-трекінг: Прохід по лабіринту
- Бек-трекінг: Доміно
- Бек-трекінг: Послідовність
- Бек-трекінг: Магічний квадрат
Немає коментарів:
Дописати коментар