🌿 Алгоритмическая структура «Ветвление»

Учим роботов принимать решения

🧠 Логика • 🔀 Условия • 🤖 Решения • ⚡ Практика
7 класс • Технология • 45 минут

🎯 Цель урока

💡 Научимся:

  • Создавать алгоритмы с условиями
  • Использовать логические выражения
  • Программировать принятие решений
  • Строить блок-схемы с ветвлением

🤖 Результат: Роботы, которые думают!

🧠 Проблема: роботы должны выбирать

🚗 Реальная ситуация

Робот-автопилот на дороге:

Плохой алгоритм:

1. Ехать прямо
2. Ехать прямо  
3. Ехать прямо

Умный алгоритм:

1. Если впереди препятствие → объехать
2. Если красный свет → остановиться
3. Если дорога свободна → ехать

💡 Нужна способность принимать решения!

🏠 Примеры “умного” поведения

Робот-пылесос:

  • Батарея < 20% → на зарядку
  • Обнаружена грязь → усилить мощность
  • Встретил препятствие → объехать

Беспилотник:

  • Плохая погода → вернуться
  • Цель найдена → выполнить задачу
  • Топливо на исходе → экономный режим

Промышленный робот:

  • Деталь бракованная → отбросить
  • Деталь хорошая → обработать
  • Конвейер остановлен → ждать

🌿 Три типа ветвлений

1️⃣ Полное ветвление (IF-ELSE)

Структура:

ЕСЛИ условие ТО
    действие_1
ИНАЧЕ
    действие_2

Пример:

if distance < 20:           # Если близко препятствие
    robot.turn_left()       # Повернуть налево
else:                       # Иначе
    robot.move_forward()    # Ехать прямо

Блок-схема:

    [Расстояние < 20?]
   /                 \
Да/                   \Нет
 /                     \
[Повернуть]         [Вперед]
 \                     /
  \                   /
   [Продолжение]

2️⃣ Неполное ветвление (IF)

Структура:

ЕСЛИ условие ТО
    действие
# Если условие ложно - ничего не делаем

Пример:

if battery_level < 10:              # Если батарея разряжена
    robot.play_alarm()              # Подать сигнал
    robot.return_to_base()          # Вернуться на базу
    
# Программа продолжается дальше независимо от условия
robot.continue_mission()

Особенность: Действие только при истинном условии

3️⃣ Многозначное ветвление (IF-ELIF-ELSE)

Структура:

ЕСЛИ условие_1 ТО
    действие_1
ИНАЧЕ ЕСЛИ условие_2 ТО
    действие_2
ИНАЧЕ ЕСЛИ условие_3 ТО
    действие_3
ИНАЧЕ
    действие_по_умолчанию

Пример - сортировка по цвету:

color = color_sensor.value()

if color == "red":
    robot.move_to_red_box()
elif color == "blue":
    robot.move_to_blue_box()
elif color == "green":
    robot.move_to_green_box()
else:
    robot.move_to_unknown_box()    # Неизвестный цвет

🧮 Логические выражения

🔍 Операции сравнения

Знаки сравнения:

  • > больше
  • < меньше
  • >= больше или равно
  • <= меньше или равно
  • == равно
  • != не равно

Примеры:

distance > 50               # Расстояние больше 50 см
battery_level <= 20         # Заряд не больше 20%
color == "black"            # Цвет точно черный
temperature != 25           # Температура НЕ 25 градусов

🔗 Логические операции

AND (И) - оба условия истинны:

if (distance > 30) and (battery > 50):
    robot.move_fast()       # Быстро ехать можно только если
                           # далеко до препятствия И много энергии

OR (ИЛИ) - хотя бы одно условие истинно:

if (light_level < 10) or (time > 22):
    robot.turn_on_lights()  # Включить свет если темно ИЛИ поздно

NOT (НЕ) - противоположное значение:

if not obstacle_detected:
    robot.move_forward()    # Ехать только если НЕ обнаружено препятствие

📊 Таблицы истинности

Операция AND:

ABA and B

Операция OR:

ABA or B

Сложный пример:

# Ехать быстро только если: путь свободен И батарея заряжена И не ночь
if (distance > 100) and (battery > 30) and (6 <= time <= 22):
    robot.set_speed("fast")

🛠️ Практическая работа

📋 Задания по уровням

🟢 Базовый: “Сортировщик цветов” Создать блок-схему робота который:

  • Определяет цвет объекта (красный, синий, зеленый)
  • Перемещает в соответствующий контейнер
  • Неизвестный цвет → в отдельный ящик

🟡 Средний: “Исследователь маршрута” Алгоритм для робота который анализирует:

  • Тип поверхности (ровная/неровная)
  • Наличие препятствий
  • Уровень освещенности
  • Выбирает оптимальный путь

🔴 Продвинутый: “Спасательный робот” Система принятия решений учитывает:

  • Обнаружение людей (звук, тепло)
  • Уровень опасности (дым, температура)
  • Доступные пути эвакуации
  • Приоритеты спасения

⏱️ План работы (30 минут)

Этап 1: Анализ задачи (5 мин)
• Понимание условий
• Выделение вариантов действий

Этап 2: Создание блок-схемы (15 мин)
• Выбор типа ветвления
• Составление условий
• Рисование схемы

Этап 3: Проверка (7 мин)
• Тестирование на примерах
• Исправление ошибок

Этап 4: Презентация (3 мин)
• Объяснение решения

🎤 Защита проектов

📊 Структура презентации

План выступления (2 минуты):

  1. Задача - что решает робот?
  2. Условия - какие ситуации анализируются?
  3. Логика - как принимается решение?
  4. Схема - демонстрация блок-схемы
  5. Тестирование - примеры работы

❓ Вопросы для обсуждения:

  • Почему выбран этот тип ветвления?
  • Как поведет себя в нештатной ситуации?
  • Можно ли упростить условия?

🏆 Критерии оценки

КритерийМаксимум
Правильность ветвления3 балла
Логические выражения3 балла
Качество блок-схемы3 балла
Работоспособность3 балла
Оптимальность3 балла

Итого: 15 баллов

  • 13-15: “5”
  • 10-12: “4”
  • 7-9: “3”

🧪 Быстрый тест

📝 Проверим понимание

Вопрос 1: Тип ветвления?

if battery < 20:
    robot.return_home()
else:
    robot.continue_work()

A) Неполное B) Полное C) Многозначное

Ответ: B) Полное (есть ИНАЧЕ)

Вопрос 2: Результат при distance=10, color=“blue”?

if distance < 15:
    if color == "red":
        robot.stop()
    else:
        robot.slow_down()
else:
    robot.normal_speed()

Ответ: Замедление (distance<15 истинно, color≠“red”)

🤔 Рефлексия

📝 Завершите фразы

“Сегодня я узнал…”

“Мне было интересно…”

“Мне было трудно…”

“Теперь я могу…”

🏠 Домашнее задание

🎯 Основное задание

“Умный светофор”

Создать блок-схему системы управления светофором:

  • Анализ потока машин с 4 сторон
  • Учет времени суток (день/ночь)
  • Реакция на спецтранспорт (скорая, пожарная)
  • Безопасность пешеходов

Требования:

  • Многозначное ветвление
  • Вложенные условия
  • Аварийные ситуации

🌟 Дополнительно

Найти примеры сложных систем принятия решений в:

  • Автономных автомобилях
  • Промышленных роботах
  • Умных домах
  • Медицинских системах

🎉 Итоги урока

🏆 Что освоили

✅ Изучили:

  • Три типа ветвлений (полное, неполное, многозначное)
  • Логические операции (И, ИЛИ, НЕ)
  • Создание блок-схем с условиями
  • Применение в робототехнике

🧠 Поняли:

  • Роботы могут принимать разумные решения
  • Логика - основа искусственного интеллекта
  • Правильные условия критически важны

🌟 Главный принцип

“Хороший алгоритм предусматривает все ситуации и принимает оптимальное решение в каждой”

🚀 Дальше: Комбинирование всех структур для сложного поведения

💡 Теперь ваши роботы умеют думать!