Алгоритмические конструкции

в Кумир

Структура программы

Алгоритм на языке КуМир записывается так:

Пример алгоритма

алг квадрат

нач

  • опустить перо

  • сместиться на вектор (0,2)

  • сместиться на вектор (2,0)

  • сместиться на вектор (0,-2)

  • сместиться на вектор (-2,0)

  • поднять перо

кон

Без этой конструкции или за пределами ее программа не может выполнить алгоритм.

Так же на первой строке нужно указать исполнителя для которого вы пишите алгоритм.

использовать ИМЯ_ИСПОЛНИТЕЛЯ (слово использовать с маленькой буквы, имя исполнителя с заглавной буквы).

Правильные конструкции будут с полужирном начертанием, правильные команды будут выделены синим, название исполнителя должно быть зеленым цветом.

Вспомогательные алгоритмы

Вспомогательный алгоритм — это фрагмент программного кода (подпрограмма), к которому можно обратиться из любого места основной программы. Эта подпрограмма обычно имеет входные и выходные данные.

Роль вспомогательного алгоритма: упростить работу с большим кодом. Задав имя последовательности команд, можно многократно обращаться к этой последовательности, указывая только ее имя.

Вспомогательные алгоритмы пишутся под основным, т.к программа Кумир считает основным алгоритмом первую конструкцию алг-нач-кон.

Пример программы со вспомогательным алгоритмом

использовать Черепаха

алг забор | Основной алгоритм

нач

звено | Обращение к вспомогательному алгоритму

звено

звено

звено

звено

кон


алг звено |Вспомогательный алгоритм

нач

вперед(50)

вправо(45)

вперед(15)

вправо(90)

вперед(15)

вправо(45)

вперед(50)

вправо(180)

кон

Метод последовательной детализации

Использованный нами подход облегчает программирование сложных задач. Задача разбивается на более простые подзадачи. Решение каждой оформляется в виде вспомогательного алгоритма, а основной алгоритм организует связку между ними.

Метод программирования, при котором сначала пишется основная программа, в ней записываются обращения к пока еще не составленным подпрограммам, а потом описываются эти подпрограммы, называется методом последовательной (пошаговой) детализации. Причем количество шагов детализации может быть гораздо большим, чем в нашем примере, поскольку сами подпрограммы могут содержать внутри себя обращения к другим подпрограммам.

Сборочный метод

Возможен и другой подход к построению сложных программ: первоначально составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним. Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера. Такую библиотеку можно постепенно пополнять новыми подпрограммами.

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

Описанный метод называется сборочным программированием.

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

Типы алгоритмических структур

Следование

Следование — алгоритмическая конструкция, отображающая естественный, последовательный порядок действий. Алгоритмы, в которых используется только структура «следование», называются линейными алгоритмами.

Графическое представление алгоритмической конструкции «следование» приведено на рисунке справа.

Пример программы (линейный алгоритм)

использовать Робот

алг закрашивание клетки

нач

  • вниз

  • вправо

  • влево

  • вверх

  • закрасить

кон

Ветвление

Ветвление — алгоритмическая конструкция, в которой в зависимости от результата проверки условия («да» или «нет») предусмотрен выбор одной из двух последовательностей действий (ветвей). Алгоритмы, в основе которых лежит структура «ветвление», называют разветвляющимися.

При выполнении команды если КуМир сначала проверяет условие, записанное между если и то. При соблюдении этого условия выполняется события 1, в противном случае — события 2 (если они есть), после чего КуМир переходит к выполнению команд, записанных после слова все. Если условие не соблюдается, а события 2 вместе с иначе отсутствует, то КуМир сразу переходит к выполнению команд, записанных после слова все.

Графическое представление и общий вид алгоритмической конструкции «ветвление» приведено на рисунке справа.

полная форма ветвление

неполная форма ветвление (обход)

Повторение

Повторение — алгоритмическая конструкция, представляющая собой последовательность действий, выполняемых многократно. Алгоритмы, содержащие конструкцию повторения, называют циклическими или циклами. Последовательность действий, многократно повторяющаяся в процессе выполнения цикла, называется телом цикла.

В зависимости от способа организации повторений различают три типа циклов:

    1. цикл с заданным числом повторений;

    2. цикл с заданным условием продолжения работы;

    3. цикл с заданным условием окончания работы.

Цикл с заданным числом повторений

Цикл со счётчиком (РАЗ) — цикл, в котором указывается количество повторений тела цикла.

Цикл со счётчиком (ДЛЯ) — цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз.

Цикл с заданным условием продолжения работы

Цикл с предусловием (ПОКА) — цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно).

Цикл с заданным условием окончания работы

Цикл с постусловием (ДО) — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз.

Примеры алгоритмов

Пример программы (следование)

Пример программы (ветвление полное)

Пример программы (ветвление обход)

Пример программы (цикл РАЗ)

Пример программы (цикл ДЛЯ)

Пример программы (цикл ПОКА)