Сьогодні ми поринемо у світ логіки та навчимося створювати розумніші алгоритми. Ти дізнаєшся, що таке висловлювання, як відрізнити правду від неправди в інформатиці, і як навчити комп'ютер приймати рішення!
Що таке Висловлювання?
Ми постійно спілкуємося за допомогою речень. Деякі речення просто щось розповідають, інші запитують, а деякі спонукають до дії. Серед розповідних речень є особливі – ті, про які ми можемо точно сказати, правдиві вони чи ні.
Висловлювання – це речення, яке містить твердження про щось або когось, і ми можемо чітко визначити, чи є це твердження істинним (правильним) чи хибним (неправильним).
- Приклади істинних (правдивих) висловлювань:
- "Україна – це країна Європи." (Так, це правда!)
- "У жовтні 31 день." (Так, це правда!)
- "Дніпро – найбільша річка України." (Так, це правда!)
- Приклади хибних (неправдивих) висловлювань:
- "У лютому завжди 28 днів." (Ні, буває 29 – це неправда).
- "Автомобіль плете павутиння." (Ні, це неправда).
- "Слово 'дерево' – це дієслово." (Ні, це іменник – неправда).
- А це НЕ висловлювання:
- "Котра година?" (Це запитання, ми не можемо сказати, правдиве воно чи ні).
- "Зачини вікно." (Це спонукання до дії).
- "Завтра буде гарна погода." (Ми не можемо це точно знати зараз).
Навіщо нам Висловлювання в Алгоритмах?
Уяви: ти виходиш на вулицю. Якщо йде дощ, ти береш парасольку. Якщо ні – не береш. Твоє рішення ("брати парасольку") залежить від умови ("чи йде дощ?").
Алгоритми теж часто мають приймати рішення! Вони перевіряють певні умови (які є висловлюваннями!) і залежно від того, істинна умова чи хибна, виконують різні команди.
Розгалуження в Алгоритмах
Фрагмент алгоритму, де відбувається перевірка умови та вибір подальших дій, називається розгалуженням. Умовою може бути висловлювання, математичне порівняння (наприклад, x>5?) або запитання, на яке можна відповісти "Так" чи "Ні".
Існує два основних типи розгалуження:
- Повне розгалуження:
- Логіка: Якщо умова істинна (Так), виконай одну послідовність дій, інакше (Ні) виконай іншу послідовність дій.
Блок-схема:
┌──────────────┐ │ Перевірка │ │ умови │─ Так ─▶┌──────────────┐ └──────┬───────┘ │ Послідовність│ │ Ні │ команд 1 │ ▼ └──────┬───────┘ ┌──────────────┐ │ │ Послідовність│ ▼ │ команд 2 │ (Наступна команда) └──────┬───────┘ │ ▼ (Наступна команда)- Приклад: Якщо у дієслова в 3-й особі множини закінчення "-уть, -ють" (Так), то в однині буде "-е, -є". Інакше (Ні), в однині буде "-ить, -їть".
- Неповне розгалуження:
- Логіка: Якщо умова істинна (Так), виконай послідовність дій. Якщо умова хибна (Ні), нічого не роби (просто переходь до наступної команди після розгалуження).
Блок-схема:
┌──────────────┐ │ Перевірка │ │ умови │─ Так ─▶┌──────────────┐ └──────┬───────┘ │ Послідовність│ │ Ні │ команд │ │ └──────┬───────┘ │ │ └─────────▶─────────────┘ ▼ (Наступна команда)- Приклад: Подивись у вікно. Якщо йде дощ (Так), візьми парасольку. (Якщо дощу немає (Ні), то нічого додатково робити не треба). Вийди на вулицю.
Розгалуження в Scratch
У середовищі Scratch ми теж можемо створювати програми з розгалуженнями!
- Для повного розгалуження використовуй блок
якщо <умова> то ... інакше ...з групи "Керування". - Для неповного розгалуження використовуй блок
якщо <умова> то ...з групи "Керування".
Умови для цих блоків (шестикутні "цеглинки") найчастіше беруть із групи "Датчики" (наприклад, торкається кольору?, клавішу ... натиснуто?, відстань до ...) або створюють за допомогою блоків з групи "Оператори" (наприклад, >, <, =) для порівняння значень.
Якщо ти використовуєш блок запитати ... і чекати (з "Датчиків"), то відповідь користувача зберігається у блоці відповідь (теж у "Датчиках"). Щоб перевірити цю відповідь, її потрібно порівняти з чимось за допомогою блоків з "Операторів".
Приклад у Scratch: Уяви, що кіт має йти праворуч, доки не торкнеться зеленої стіни. Якщо він торкається стіни (умова істинна), він має повернути вниз і йти далі. Це неповне розгалуження!
Підсумок
- Висловлювання – це твердження, яке може бути істинним або хибним.
- Розгалуження – це частина алгоритму, де перевіряється умова і виконуються різні дії залежно від результату (Так/Ні).
- Повне розгалуження має дії і для "Так", і для "Ні".
- Неповне розгалуження має дії тільки для "Так".
- У Scratch для розгалужень використовують блоки
якщо ... то ... інакше ...таякщо ... то ..., а умови беруть з "Датчиків" та "Операторів".
Тепер ти знаєш, як створювати алгоритми, що вміють приймати рішення! Спробуй придумати свої приклади розгалужень у житті та в Scratch!