Логічний тип даних boolean, min і max в Pascal
На занятті відбувається знайомство з логічним типом Boolean в Паскалі. Рассмотриваются алгоритм того, як знаходиться мінімальне і максимальне число в Паскалі
Сайт labs-org.ru надає лабораторні завдання по темі для закріплення теоретичного матеріалу і отримання практичних навичок програмування на Паскалі. Короткі теоретичні відомості дозволять отримати необхідний для цього мінімум знань. Вирішені наочні приклади і лабораторні завдання викладені в міру збільшення їх складності, що дозволить з легкістю вивчити матеріал з нуля. Бажаємо успіхів!
Логічний тип даних Boolean в Паскалі
Ми вже навчилися писати програми, засновані на лінійних алгоритмах, в Паскалі. І навіть вже складаємо нелінійні алгоритми - з розгалуженням - в яких використовуються логічні вирази , Які приймають значення true або false.
Значення логічного типу:
TRUE
FALSE
У прикладі нижче, на екран виводиться результат логічного виразу:
1 2 3 4 5 6 var A: integer; begin A: = 5; write (A> 0); {Буде виведено True} end.
var A: integer; begin A: = 5; write (A> 0); {Буде виведено True} end.
Для запису результату логічного виразу використовується спеціальна логічна змінна, яка має в Паскалі тип boolean і може також приймати одне з двох значень - true або false.
Подивимося, як працює та ж сама задача з логічної змінної:
1 2 3 4 5 6 7 8 var A: integer; b: boolean; begin A: = 5; b: = A> 0; write (b); {Буде виведено True} end.
var A: integer; b: boolean; begin A: = 5; b: = A> 0; write (b); {Буде виведено True} end.
Приклад: Розглянемо приклад роботи з типом boolean в pascal:
1 2 3 4 5 6 var a: boolean; begin a: = true; if a = true then writeln ( 'істина') else writeln ( 'брехня'); end.
var a: boolean; begin a: = true; if a = true then writeln ( 'істина') else writeln ( 'брехня'); end.
Для створення складних умов використовуються спеціальні логічні операції : And, or, not і xor.
Завдання Boolean 1. Дано ціле позитивне число. Перевірити істинність висловлювання: «воно є парним»
Розглянемо приклад з використанням логічної операції XOR:
Приклад: Запросити два цілих: X, Y. Перевірити істинність висловлювання: «Тільки одне з чисел X і Y є непарних»
1 2 3 4 5 6 7 8 9 10 11 program Boolean; var x, y: integer; c: boolean; begin write ( 'Введіть X, Y:'); read (x, y); c: = (Odd (x)) xor (Odd (y)); writeln ( 'Тільки одна з змінних X і Y має непарне значення -', c); end.
program Boolean; var x, y: integer; c: boolean; begin write ( 'Введіть X, Y:'); read (x, y); c: = (Odd (x)) xor (Odd (y)); writeln ( 'Тільки одна з змінних X і Y має непарне значення -', c); end.
Розглянемо ще одне рішення задачі в Паскалі з використанням логічної змінної:
Завдання Boolean 2. Дано три цілих числа: A, B, C. Перевірити істинність висловлювання: «B знаходиться між числами A і C».
Розглянемо рішення більш складного завдання зі змінною логічного типу:
Приклад: Дано тризначне число. Перевірити істинність висловлювання: «Все цифри даного числа різні».
Показати рішення: 1 2 3 4 5 6 7 8 9 10 11 12 13 const a = 348; var d_n, s_n, e_n: integer; flag: boolean; begin flag: = false; s_n: = a div 100; d_n: = ((a mod 100) div 10); e_n: = a mod 10; if (s_n <> d_n) and (d_n <> e_n) and (e_n <> s_n) then flag: = true; writeln (flag); end.
const a = 348; var d_n, s_n, e_n: integer; flag: boolean; begin flag: = false; s_n: = a div 100; d_n: = ((a mod 100) div 10); e_n: = a mod 10; if (s_n <> d_n) and (d_n <> e_n) and (e_n <> s_n) then flag: = true; writeln (flag); end.
Тут кожен розряд виходить шляхом використання операцій ділення без остачі і взяття залишку від ділення: s_n - це цифра сотого розряду, d_n - цифра десятого розряду, e_n - одиниці.
Завдання Boolean 3. Дано ціле N> 0. За допомогою операцій ділення без остачі і взяття залишку від ділення визначити, чи є в запису числа N цифра «2». Якщо є, то вивести TRUE, якщо ні - вивести FALSE.
Завдання Boolean 4. Дано ціле позитивне. Перевірити істинність висловлювання: «Дане число є непарним тризначним».
Мінімальна і максимальна кількість в Паскалі
При організації пошуку мінімального або максимального числа серед ряду чисел завжди на допомогу приходить старенький «бабусин» алгоритм:
- Уявімо ситуацію, що ми смажимо пиріжки, і вже насмажили цілу велику гірку; тепер треба вибрати з них найбільший, тобто в нашому випадку максимальний.
- Беремо верхній пиріжок, тобто перший, і говоримо, що він поки найбільший і відкладаємо його в сторону.
- Потім беремо другий і порівнюємо з найбільшим, якщо цей другий пиріжок виявляється більше - відкладаємо його на місце «колишнього найбільшого» і говоримо, що тепер він найбільший.
- Беремо наступний і повторюємо дії. Так здійснюємо цю процедуру з усіма пиріжками.
Іноді в якості початкового максимуму призначається найменше можливе число (в залежності від контексту завдання). А в якості мінімуму - навпаки, найбільше можливе число. Наприклад, якщо сказано, що необхідно знайти максимальне / мінімальне серед позитивних чисел, менших 1000, то:
Розглянемо тепер рішення задачі на Паскалі знаходження максимального числа:
Приклад: В комп'ютер вводяться 10 чисел. Виводити максимальне з введених чисел.
Показати рішення: 1 2 3 4 5 6 7 8 9 10 var i, chislo, max: integer; begin readln (max); {Число, введене відразу визначаємо як максимальне} for i: = 2 to 10 do begin readln (chislo); if chislo> max then max: = chislo end; writeln (max) end.
var i, chislo, max: integer; begin readln (max); {Число, введене відразу визначаємо як максимальне} for i: = 2 to 10 do begin readln (chislo); if chislo> max then max: = chislo end; writeln (max) end.
Аналогічно здійснюється пошук мінімального з чисел.
Для кращого розуміння теми пошуку максимального або мінімального значення пропонуємо подивитися відео урок:
Завдання Max 1. У танцювальному клубі беруть участь 10 представниць жіночої статі. Визначте, чи може найстарша з них бути матір'ю наймолодшій (в такому випадку різниця у віці може становити не менше 17 років)
Завдання Max 2. Знайти мінімальне і максимальне з 10 введених чисел і вивести суму їх порядкових номерів.
Завдання Max 3. Середня тривалість життя лабораторної миші - 10 років. Знайдіть максимальний показник тривалості життя у п'яти білих мишей і у п'яти мишей-альбіносів. У яких мишей показник рівня життя вище?
Потренуйтеся в рішенні задач по темі, клацнувши по піктограмі:
У яких мишей показник рівня життя вище?