🧠 Логика • 🔀 Условия • 🤖 Решения • ⚡ Практика
7 класс • Технология • 45 минут
💡 Научимся:
🤖 Результат: Роботы, которые думают!
Робот-автопилот на дороге:
❌ Плохой алгоритм:
1. Ехать прямо
2. Ехать прямо
3. Ехать прямо
✅ Умный алгоритм:
1. Если впереди препятствие → объехать
2. Если красный свет → остановиться
3. Если дорога свободна → ехать
💡 Нужна способность принимать решения!
Робот-пылесос:
Беспилотник:
Промышленный робот:
Структура:
ЕСЛИ условие ТО
действие_1
ИНАЧЕ
действие_2
Пример:
if distance < 20: # Если близко препятствие
robot.turn_left() # Повернуть налево
else: # Иначе
robot.move_forward() # Ехать прямо
Блок-схема:
[Расстояние < 20?]
/ \
Да/ \Нет
/ \
[Повернуть] [Вперед]
\ /
\ /
[Продолжение]
Структура:
ЕСЛИ условие ТО
действие
# Если условие ложно - ничего не делаем
Пример:
if battery_level < 10: # Если батарея разряжена
robot.play_alarm() # Подать сигнал
robot.return_to_base() # Вернуться на базу
# Программа продолжается дальше независимо от условия
robot.continue_mission()
Особенность: Действие только при истинном условии
Структура:
ЕСЛИ условие_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:
| A | B | A and B |
|---|---|---|
| ✅ | ✅ | ✅ |
| ✅ | ❌ | ❌ |
| ❌ | ✅ | ❌ |
| ❌ | ❌ | ❌ |
Операция OR:
| A | B | A or B |
|---|---|---|
| ✅ | ✅ | ✅ |
| ✅ | ❌ | ✅ |
| ❌ | ✅ | ✅ |
| ❌ | ❌ | ❌ |
Сложный пример:
# Ехать быстро только если: путь свободен И батарея заряжена И не ночь
if (distance > 100) and (battery > 30) and (6 <= time <= 22):
robot.set_speed("fast")
🟢 Базовый: “Сортировщик цветов” Создать блок-схему робота который:
🟡 Средний: “Исследователь маршрута” Алгоритм для робота который анализирует:
🔴 Продвинутый: “Спасательный робот” Система принятия решений учитывает:
Этап 1: Анализ задачи (5 мин)
• Понимание условий
• Выделение вариантов действий
Этап 2: Создание блок-схемы (15 мин)
• Выбор типа ветвления
• Составление условий
• Рисование схемы
Этап 3: Проверка (7 мин)
• Тестирование на примерах
• Исправление ошибок
Этап 4: Презентация (3 мин)
• Объяснение решения
План выступления (2 минуты):
❓ Вопросы для обсуждения:
| Критерий | Максимум |
|---|---|
| Правильность ветвления | 3 балла |
| Логические выражения | 3 балла |
| Качество блок-схемы | 3 балла |
| Работоспособность | 3 балла |
| Оптимальность | 3 балла |
Итого: 15 баллов
Вопрос 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”)
“Сегодня я узнал…”
“Мне было интересно…”
“Мне было трудно…”
“Теперь я могу…”
“Умный светофор”
Создать блок-схему системы управления светофором:
Требования:
Найти примеры сложных систем принятия решений в:
✅ Изучили:
🧠 Поняли:
“Хороший алгоритм предусматривает все ситуации и принимает оптимальное решение в каждой”
🚀 Дальше: Комбинирование всех структур для сложного поведения
💡 Теперь ваши роботы умеют думать!