Структура алгоритма: алг, нач, кон, дано и надо
Учимся правильно оформлять алгоритм: где пишется имя, где тело, зачем нужны строчки «дано» и «надо».
Алгоритм в КуМире — это именованная последовательность команд в рамке
алг имя … нач … кон. Имя алгоритма позволяет вызывать его как команду.
Полная форма заголовка
В прошлом уроке мы писали алгоритм без имени. Но «правильный» алгоритм имеет заголовок, в котором указывается его тип (что он возвращает) и имя:
алг цел сумма_цифр
дано | трёхзначное число n
надо | вернуть сумму его цифр
нач
| тело алгоритма
кон
Разберём по частям:
алг— служебное слово, начинает любой алгоритм.цел— тип результата (целое число). Если алгоритм ничего не возвращает, тип не пишут — получается «алгоритм-процедура».сумма_цифр— имя. Может быть из нескольких слов через пробел или с подчёркиваниями.
Строки «дано» и «надо»
Сразу после заголовка можно (и нужно по культуре) написать две строки-комментария:
- дано — что известно на входе, какие данные алгоритм получает.
- надо — что требуется получить, какова цель.
Эти строки не выполняются — они для человека. Но в КуМире у них есть приятная роль: символ | начинает комментарий, и дано/надо оформляются именно как пояснения. Они дисциплинируют: прежде чем писать код, вы формулируете задачу словами. Это половина успеха на экзамене.
Тело алгоритма: нач … кон
Между нач и кон находятся сами команды. Каждая команда — на отдельной строке. Отступ в два пробела внутри тела — общепринятый стиль, и среда КуМир делает его автоматически.
алг
нач
цел a, b, s
ввод a, b
s := a + b
вывод "Сумма равна ", s, нс
кон
Обратите внимание: объявления переменных (цел a, b, s) пишутся внутри тела, в самом начале, до первой исполняемой команды. Это отличается от Паскаля, где переменные объявляют в отдельном разделе var до begin.
Комментарии
Комментарий в КуМире начинается с вертикальной черты | и тянется до конца строки. Комментарии помогают и вам, и эксперту, который проверяет работу:
вправо | сдвигаемся к стене
закрасить | помечаем угол
Та же логика на Python
Алгоритм «ввести два числа и вывести сумму» на Python (можно запустить — он использует фиксированные значения вместо клавиатуры, чтобы пример был самодостаточным):
a = 7
b = 5
s = a + b
print("Сумма равна", s)
Вывод:
Сумма равна 12
Алгоритм можно вызвать по имени
Если у алгоритма есть имя, его можно использовать как команду из другого алгоритма. Это основа вспомогательных алгоритмов, к которым мы вернёмся в третьем разделе. Пока запомните идею: главный алгоритм — это «дирижёр», а именованные алгоритмы — «музыканты», которых он вызывает.
алг
нач
приветствие | вызываем вспомогательный алгоритм
кон
алг приветствие
нач
вывод "Здравствуй!", нс
кон
Попробуй сам
Напишите алгоритм с заголовком, строками дано/надо и телом, который объявляет переменную r, присваивает ей значение 5 и выводит площадь круга 3.14 * r * r. Не забудьте объявить тип вещ для дробного результата.
Частые ошибки
- Писать переменные после первой команды — объявления должны идти в начале тела.
- Путать
|(комментарий) с делением. Деление в КуМире — это/. - Забывать
кону вложенного вспомогательного алгоритма.
Итог
- Заголовок:
алг [тип] имя; тело — междуначикон. даноинадо— комментарии-формулировки задачи, очень полезны на экзамене.- Переменные объявляются в начале тела, а не в отдельном разделе.
- Именованный алгоритм можно вызвать как команду — это путь к вспомогательным алгоритмам.