Цей матеріал — практичний зошит, а не повторення теорії. Чому логічні задачі допомагають програмувати, пояснює окрема оглядова стаття. Тут зібрано сім авторських вправ, які можна виконувати без коду, а потім переносити у pseudocode або програму.
Як працювати з вправами
Спочатку запишіть власне рішення, потім скористайтеся підказкою. Перевірка не дає готової відповіді: вона показує, як знайти слабке місце reasoning. Дорослому або викладачу краще ставити уточнювальні питання, а не завершувати задачу замість учня.
1. Подвійна закономірність
Завдання
Продовжте sequence: 3, 6, 5, 10, 9, 18, 17… Опишіть не лише наступне число, а два rules, які чергуються.
Підказка
Порівняйте окремо переходи з непарної position на парну та з парної на непарну.
Як перевірити себе
Rule повинен відтворити кожен наявний transition, а не лише останні два.
Зв’язок із програмуванням
Condition за position, sequence і перевірка гіпотези.
2. Інструкція для робота
Завдання
Уявіть сітку 4 × 4. Робот стартує у клітинці (1, 1), дивиться праворуч. Коробка стоїть у клітинці (3, 2), а місце доставки — у клітинці (4, 4). Робот розуміє лише команди «крок», «поверни ліворуч», «поверни праворуч», «візьми» та «поклади». Він не може виходити за межі сітки. Запишіть конкретну послідовність команд, щоб забрати коробку й доставити її у клітинку (4, 4).
Підказка
Спочатку окремо сплануйте маршрут до коробки, а потім — від коробки до місця доставки. Після кожного повороту позначайте новий напрямок робота.
Як перевірити себе
Намалюйте сітку та виконайте кожну команду по черзі. Перевірте, що робот потрапив у (3, 2) перед командою «візьми», не залишав сітку й завершив маршрут у (4, 4) після команди «поклади».
Зв’язок із програмуванням
Вправа тренує decomposition, точну sequence команд і відстеження state: координат, напрямку та наявності коробки.
3. Правило доступу
Завдання
До workshop можна зайти, якщо учасник має запрошення і прийшов до 18:00, або якщо його супроводжує викладач. Перевірте чотири різні ситуації й сформулюйте одне rule.
Підказка
Розділіть умову на дві достатні гілки, з’єднані «або».
Як перевірити себе
Обов’язково перевірте людину без invitation, але з викладачем, і людину із запрошенням після 18:00.
Зв’язок із програмуванням
if/else, boolean operators і boundary case.
4. Знайдіть bug в алгоритмі
Завдання
Algorithm шукає найбільше число: бере перше як maximum, порівнює лише друге й третє та повертає результат. Input має п’ять чисел. Знайдіть defect і перепишіть steps.
Підказка
Запитайте, які elements ніколи не перевіряються.
Як перевірити себе
Поставте найбільше число на кожну position по черзі.
Зв’язок із програмуванням
Loop boundaries, search і tests.
5. Три перевірки для коду
Завдання
Є чотири закриті папки A, B, C, D. Лише в одній потрібний файл. За одну перевірку можна дізнатися, чи є файл у вибраній парі папок. Запропонуйте strategy, що знаходить папку не більш ніж за дві перевірки.
Підказка
Перша перевірка має розділити possibilities навпіл.
Як перевірити себе
Пройдіть усі чотири можливі positions файла.
Зв’язок із програмуванням
Звуження search interval і binary decision.
6. План із обмеженням
Завдання
Є п’ять дій: A — прочитати умову, B — виписати відомі дані, C — намалювати схему, D — перевірити один приклад, E — записати остаточну відповідь. Діють dependencies: A повинно бути перед B і C; B повинно бути перед D; C повинно бути перед D; D повинно бути перед E. Знайдіть усі допустимі порядки виконання п’яти дій.
Підказка
Намалюйте dependencies стрілками й спочатку визначте дії, які можуть мінятися місцями без порушення правил.
Як перевірити себе
Для кожного знайденого порядку перевірте всі чотири dependencies окремо. Потім переконайтеся, що не пропустили інший порядок для дій, між якими немає прямої залежності.
Зв’язок із програмуванням
Вправа тренує dependencies, ordering і планування tasks, де наступний step може початися лише після завершення потрібних попередніх дій.
7. Скоротіть маршрут
Завдання
Є commands: вперед 2, праворуч, вперед 1, назад 1, ліворуч, вперед 3. Скоротіть instruction без зміни final position та direction.
Підказка
Знайдіть actions, які взаємно скасовуються.
Як перевірити себе
Намалюйте обидва routes на клітинках і порівняйте final state.
Зв’язок із програмуванням
Оптимізація, еквівалентність результату й refactoring.
План практики на 3 тижні
- Тиждень 1: вправи 1–2; записати steps звичайною мовою.
- Тиждень 2: вправи 3–5; додати таблиці cases і контрприклади.
- Тиждень 3: вправи 6–7; записати pseudocode та порівняти два рішення.
Мета — не швидкість, а здатність пояснити правило, знайти boundary case і перевірити результат. Регулярну практику пропонує курс Логічні та математичні задачі.