Простая программа

Простая программа - это набор команд, которые выполняются последовательно: первая, вторая, третья и так до конца. Такой порядок называют линейным алгоритмом.
Зачем это нужно
Когда ученик впервые пишет программу для робота, хочется сразу заставить его "думать": объезжать препятствия, выбирать путь, реагировать на датчики. Но даже сложное поведение начинается с простого порядка действий. Контроллер должен включиться, настроить пины, прочитать данные, отправить команду мотору, включить индикатор или остановиться.
Если порядок нарушен, программа может выглядеть правильной, но робот не выполнит задачу. Например, команда включить мотор отправлена раньше, чем настроен вывод. Или программа пытается читать датчик до того, как он подключен в коде. Линейный алгоритм помогает сначала увидеть цепочку, а потом уже добавлять условия и циклы.
Главная идея
Линейный алгоритм похож на маршрут без развилок.
начало -> команда 1 -> команда 2 -> команда 3 -> конец

Ниже тот же принцип показан в формальной блок-схеме: начало и конец обозначены овальными блоками, а команды — прямоугольниками.

Каждая команда выполняется один раз и в том порядке, в котором записана. Если в программе нет условий и повторений, контроллер не выбирает другой путь и не возвращается назад.
Алгоритм - это точное описание шагов, которые приводят к результату. В робототехнике алгоритм может описывать движение, чтение датчиков, включение сигналов или проверку устройства.
Команда и порядок выполнения
Команда - это одно действие, понятное исполнителю. Исполнителем может быть человек, программа, микроконтроллер или робот.
Плохая команда:
сделайте нормально
Хорошая команда:
включи светодиод на пине 13
Для робота команда должна быть конкретной. Контроллер не догадывается, что имел в виду автор программы. Он выполняет инструкции так, как они записаны.
| Шаг | Команда | Что происходит |
|---|---|---|
| 1 | настроить вывод для светодиода | контроллер готовит пин к управлению |
| 2 | включить светодиод | на пин подается сигнал |
| 3 | подождать | состояние остается заметным |
| 4 | выключить светодиод | сигнал снимается |
Если поменять шаги местами, смысл изменится. Команда "выключить" перед командой "включить" не даст мигания. Команда "подождать" до включения светодиода задержит старт, но не покажет сигнал.
Простая блок-схема
Блок-схема помогает увидеть алгоритм до написания кода. Для линейной программы достаточно нескольких базовых блоков.
| Блок | Что означает | Пример |
|---|---|---|
| Начало | запуск алгоритма | программа стартовала |
| Действие | команда или вычисление | включить мотор |
| Ввод/вывод | получить или показать данные | прочитать кнопку, вывести значение |
| Конец | завершение алгоритма | робот остановлен |
В линейной схеме стрелки идут от начала к концу без развилок. Такой рисунок полезен даже для короткой программы: он заставляет проверить порядок шагов.
В исходном плане раздела указан редактор блок-схем programforyou.ru/block-diagram-redactor. Можно использовать и бумагу: для первых алгоритмов важнее логика, чем инструмент.
Пример: робот выполняет четыре команды

Пусть робот должен проехать вперед, подать сигнал и остановиться. Линейный алгоритм может выглядеть так:
начало
включить моторы вперед
подождать 2 секунды
включить светодиод
остановить моторы
конец
Эту последовательность можно сразу перенести в блок-схему. В ней нет ромбов и стрелок возврата, поэтому путь от начала до конца только один.

В такой программе нет вопроса "если". Робот не проверяет препятствие и не смотрит на линию. Он просто выполняет заранее заданный сценарий. Это удобно для проверки деталей: работает ли мотор, горит ли светодиод, реагирует ли контроллер на команду.
Как линейный алгоритм превращается в код
В коде линейность видна по порядку строк. Например, в псевдокоде:
настроить моторы
задать скорость
подождать
остановить моторы
Блок-схема помогает проверить порядок этих строк ещё до написания кода.

В Arduino-скетче часть команд выполняется один раз в setup(), а часть повторяется в loop(). Но внутри каждой части строки тоже выполняются последовательно, если нет условий, циклов или вызовов, которые меняют ход выполнения.
В Python простая программа тоже обычно читается сверху вниз:
speed = 120
time = 2
print(speed)
print(time)
Сначала создается speed, потом time, потом значения выводятся. Если попытаться вывести переменную до создания, программа не сможет использовать то, чего еще нет.
Что запомнить про простую программу
Линейная программа нужна не только "для самых первых шагов". Она помогает проверять отдельные части робота и готовить основу для будущих условий и циклов.
| Признак | Линейный алгоритм |
|---|---|
| Есть развилки? | нет |
| Есть повторения? | нет |
| Порядок команд влияет на результат? | да |
| Подходит для проверки деталей? | да |
| Подходит для сложного поведения робота? | только как основа |
Перед тем как усложнять программу, полезно задать простой вопрос: "Если выполнить эти команды строго сверху вниз, получится нужное действие?"
Практика
Задание 1
Запишите линейный алгоритм для проверки светодиода:
начало
...
конец
В алгоритме должны быть настройка, включение, пауза и выключение.
Задание 2
Расставь команды в правильном порядке:
- остановить моторы;
- включить моторы вперед;
- начало;
- подождать 1 секунду;
- конец.
Задание 3
Придумайте линейный алгоритм из пяти шагов для робота, который должен проехать небольшой отрезок и подать световой сигнал. Не добавляйте условия и повторения.
Проверьте себя
- Что такое линейный алгоритм?
- Почему порядок команд меняет результат?
- Чем команда отличается от желания вроде "сделайте хорошо"?
- Какие блоки нужны для простой блок-схемы?
- Почему линейная программа удобна для проверки мотора или светодиода?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
- Алгоритм - точное описание шагов для решения задачи.
- Команда - одно действие, которое должен выполнить исполнитель.
- Исполнитель - тот, кто выполняет алгоритм: человек, программа, контроллер или робот.
- Линейный алгоритм - алгоритм без развилок и повторений.
- Блок-схема - графическое представление алгоритма с блоками и стрелками.
- Псевдокод - запись алгоритма словами и простыми конструкциями, еще не привязанная к конкретному языку.
Связанные темы
- Ввод-вывод - как программа получает данные и показывает результат.
- Ветвление - как добавить выбор действия.
- Цикл - как повторять команды.
- Логические элементы - как условия превращаются в
0и1.
Источники
- Python Tutorial. More Control Flow Tools: https://docs.python.org/3/tutorial/controlflow.html
- Python Tutorial. Input and Output: https://docs.python.org/3/tutorial/inputoutput.html
- Arduino Language Reference: https://docs.arduino.cc/language-reference/
- Редактор блок-схем Programforyou: https://programforyou.ru/block-diagram-redactor