Написание алгоритма ветвление программы в кумире. Ветвление в языке кумир

Написание алгоритма ветвление программы в кумире. Ветвление в языке кумир

Задания расcчитаны на группу в 10 человек. Каждая карточка содержит по два задания.

Вариант 1

1.

2.

Вариант 2

1. Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет два горизонтальных и диагональный участки в форме . Пример коридора показан на рисунке.

2. Робот движется вдоль стены, профиль которой показан на рисунке, от начального положения (◊) до конца стены. Необходимо закрасить все внутренние углы стены, как показано на примере. Размеры стены могут быть произвольны.

Вариант 3

1. Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет два горизонтальных и диагональный участки в форме . Пример коридора показан на рисунке.

2.

Вариант 4

1. Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет два горизонтальных и диагональный участки в форме . Пример коридора показан на рисунке.

2.

Вариант 5

1. Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет два вертикальных и диагональный участки в форме . Пример коридора показан на рисунке.

2. Робот движется вдоль стены от начального положения (◊) до конца стены. Стена располагается по диагонали от правого верхнего к левому нижнему углу поля. Необходимо закрасить все внутренние углы стены, как показано на примере. Размеры стены могут быть произвольны.

Вариант 6

1.

2. Робот движется вдоль стены от начального положения (◊) до конца стены. Стена располагается по диагонали от правого нижнего к левому верхнему углу поля. Необходимо закрасить все внутренние углы стены, как показано на примере. Размеры стены могут быть произвольны.

Вариант 7

1. Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет горизонтальный, вертикальный и диагональный участки в форме . Пример коридора показан на рисунке.

2. Робот движется вдоль стены, профиль которой показан на рисунке, от начального положения (◊) до конца стены. Необходимо закрасить все внутренние углы стены, как показано на примере. Размеры стены могут быть произвольны.

Вариант 8

1. Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет горизонтальный, вертикальный и диагональный участки в форме . Пример коридора показан на рисунке.

2. Робот движется вдоль стены, профиль которой показан на рисунке, от начального положения (◊) до конца стены. Необходимо закрасить все внутренние углы стены, как показано на примере. Размеры стены могут быть произвольны.

| Планирование уроков и материалы к урокам | 7 классы | Планирование уроков на учебный год | Исполнитель Робот

Урок 32
Исполнитель Робот
Ветвление
Работа в среде «Алгоритмика»



Исполнитель Робот. Ветвление

Вспомним, что форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий, называется ветвлением.

Графически ветвление можно представить, как показано на рис. 3.19.

Для организации ветвлений в СКИ Робота предусмотрена специальная команда ЕСЛИ. Ее общий вид:

ЕСЛИ <условие> ТО <серия действий 1> ИНАЧЕ <серия действий 2> КОНЕЦ

Служебные слова ЕСЛИ, ТО, ИНАЧЕ имеют обычный смысл.

Между ТО и ИНАЧЕ записываются одно или несколько действий, составляющих серию действий 1. Между ИНАЧЕ и КОНЕЦ помещается серия действий 2. Служебное слово ИНАЧЕ вместе с серией действий 2 может отсутствовать (сокращенная форма ветвления).

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

Единственным признаком коридора является наличие нижней границы, т. е. выполнение условия НЕ снизу свободно. Если при этом выполняется условие сверху свободно, то клетку нужно закрасить, иначе - красить не надо. Аналогично случаю закрашивания вертикального коридора, предполагаем, что слева и справа от горизонтального коридора есть клетки. Блок-схема алгоритма имеет вид, показанный на рис. 3.21.

Программа:

ПОКА НЕ снизу свободно ДЕЛАТЬ ЕСЛИ сверху свободно ТО закрась КОНЕЦ вправо КОНЕЦ

Коротко о главном

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

Система команд исполнителя представлена в следующей таблице:

Робот может выполнять цикл «повторить n раз».

Если заранее не известно, сколько именно раз следует выполнить тело цикла, используется специальная конструкция алгоритмического языка - цикл «пока».

В цикле «пока» могут использоваться не только простые, но и составные условия. Составное условие образуется из одного или нескольких простых условий и служебных слов И, ИЛИ, НЕ.

Для организации ветвлений в СКИ Робота предусмотрена специальная команда ЕСЛИ.

Вопросы и задания

1. Приведите все алгоритмы из трех команд, которые переместят Робота из исходного положения в клетку Б.

Существует ли для этой задачи алгоритм, при выполнении которого Робот делает: а) два шага; б) четыре шага; в) пять шагов; г) семь шагов; д) 2001 шаг; е) 2006 шагов?

2. Петя составил алгоритм, переводящий Робота из клетки А в клетку Б с закрашиванием каких-то клеток. Что должен сделать Коля с этим алгоритмом, чтобы получить алгоритм, переводящий Робота из Б в А и закрашивающий те же клетки?

3. Петя составил алгоритм, при выполнении которого Робот вернулся в исходное положение. Коля стер одну из команд. При выполнении Ко л иного алгоритма Робот также вернулся в исходное положение. Какую команду стер Коля?

4. Маша придумала узор для Робота. Коля стер ровно половину закрашенных клеток. Восстановите рисунок, зная, что он симметричен относительно вертикальной оси. Напишите программу для Робота.

5. Напишите программу, с помощью которой Робот сможет попасть в клетку Б во всех трех лабиринтах.

6. Напишите программу, с помощью которой Робот попадет в клетку Б.

Хирьянов Тимофей Федорович

если-то-иначе-все

Общий вид команды:

если условие
то серия 1
иначе серия 2
все

Серия 2 вместе со служебным словом иначе может отсутствовать. В этом случае команда имеет вид:

если условие
то серия 1
все

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

Пример 1

если a то
b:=b-a
p:=p+q
иначе
a:=a-b
q:=q+p
все

Пример 2

если x > m
то
m:= x
n:= n+1
все

Пример 3 (исполнитель Робот)

если справа свободно
то
вправо
все

выбор-при-иначе-все

Общий вид команды:

выбор
при условие 1: серия 1
при условие 2: серия 2

при условие n: серия n
иначе серия n+1
все

Ключевое слово иначе вместе с соответствующей серией команд может отсутствовать:

выбор
при условие 1: серия 1
при условие 2: серия 2

при условие n: серия n
все

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

Пример 1

выбор
при a > 1: i:= i + 1
при a < 0: j:= j - 1
иначе t:= i; i:= j; j:= t
все






1. Действительных корней нет Гуляй смело 4. D


0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а" title="1. Коня потеряешь 2. a > = 0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а" class="link_thumb"> 5 1. Коня потеряешь 2. a > = 0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а = 0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а"> = 0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а"> = 0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а" title="1. Коня потеряешь 2. a > = 0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а"> title="1. Коня потеряешь 2. a > = 0 3. | a | = a 4. Обе части уравнения можно делить и умножать на а 5. Налево пойдёшь 6. Сам пропадёшь 7. | a | = - a 8. а = 0 9. Части уравнения нельзя делить и умножать на а">








Определите по условию форму ветвления Eсли m0, то S=положительное, в противном случае S=отрицательное или равно нулю Если a=b, то с=d Если p>q, то р – максимальное, иначе р – минимальное Т=1 при х q, то р – максимальное, иначе р – минимальное Т=1 при х"> q, то р – максимальное, иначе р – минимальное Т=1 при х"> q, то р – максимальное, иначе р – минимальное Т=1 при х" title="Определите по условию форму ветвления Eсли m0, то S=положительное, в противном случае S=отрицательное или равно нулю Если a=b, то с=d Если p>q, то р – максимальное, иначе р – минимальное Т=1 при х"> title="Определите по условию форму ветвления Eсли m0, то S=положительное, в противном случае S=отрицательное или равно нулю Если a=b, то с=d Если p>q, то р – максимальное, иначе р – минимальное Т=1 при х">

Вложенные циклы и ветвления в системе КУМИР

Одним из фундаментальных понятий в информатике является понятие алгоритма. Происхождение самого термина «алгоритм» связано с математикой. Это слово происходит от Algorithmi – латинского написания имени Мухаммеда аль-Хорезми (787 – 850) выдающегося математика средневекового Востока. В своей книге "Об индийском счете" он сформулировал правила записи натуральных чисел с помощью арабских цифр и правила действий над ними столбиком.

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

Алгоритм может быть предназначен для выполнения его человеком или автоматическим устройством. Создание алгоритма, пусть даже самого простого, - процесс творческий. Он доступен исключительно живым существам, а долгое время считалось, что только человеку. В XII в. был выполнен латинский перевод его математического трактата, из которого европейцы узнали о десятичной позиционной системе счисления и правилах арифметики многозначных чисел. Именно эти правила в то время называли алгоритмами.

Данное выше определение алгоритма нельзя считать строгим – не вполне ясно, что такое «точное предписание» или «последовательность действий, обеспечивающая получение требуемого результата». Поэтому обычно формулируют несколько общих свойств алгоритмов, позволяющих отличать алгоритмы от других инструкций.

Такими свойствами являются:

Дискретность (прерывность, раздельность) – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.

Определенность – каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.

Результативность (конечность) – алгоритм должен приводить к решению задачи за конечное число шагов.

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

Способы записи алгоритмов

Для записи алгоритмов используют самые разнообразные средства. Выбор средства определяется типом исполняемого алгоритма.

Выделяют следующие основные способы записи алгоритмов:

- вербальный , когда алгоритм описывается на человеческом (естественном) языке. Естественными являются национальные языки (русский, английский, немецкий и т.д.);

- символьный , когда алгоритм описывается с помощью набора символов и является программой (программы пишутся с помощью языков программирования);

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

Общепринятыми способами записи являются графическая запись с помощью блок-схем и символьная запись с помощью какого-либо алгоритмического языка - программа.

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

Система программирования КУМИР

При освоении темы алгоритмы воспользуемся системой программирования КУМИР.

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

В системе КуМир используется школьный алгоритмический язык с русской лексикой и встроенными исполнителями Робот и Чертёжник и др.

При вводе программы КуМир осуществляет постоянный полный контроль ее правильности, сообщая на полях программы обо всех обнаруженных ошибках.

При выполнении программы в пошаговом режиме КуМир выводит на поля результаты операций присваивания и значения логических выражений. Это позволяет ускорить процесс освоения азов программирования.

Графический исполнитель Робот

Графический исполнитель Робот позволяет освоить азы программирования и понять работу основных алгоритмических конструкций.

Графический исполнитель - это объект управления. А уп равлять им будем мы с вами.

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

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

Р
обот может выполнять команды
: вверх, вниз, вправо, влево, закрасить.

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

Базовые алгоритмические структуры

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

    Будем записывать алгоритмы на и школьном АЯ и в виде блок-схем.

Линейная структура

Линейная структура является самой простой организацией алгоритмов - команды выполняются последовательно одна за другой

Пример:

Циклическая структура (цикл)

    Циклическая структура (цикл) обеспечивает многократное выполнение одних и тех же команд. Существует несколько разновидностей циклических структур.

    Любая циклическая структура состоит из двух частей - заголовка и тела цикла.

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

    Заголовок определяет количество повторений тела цикла.

Цикл на число повторений (раз)

нц N раз

<команда>

кц

Пример:

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

нач
.
нц 5 раз
. . закрасить
. . вверх
.
кц

кон

Цикл с предусловием (пока)

(запись в алгоритмическом языке)

нц пока <условие>

<команда>

кц

Пример:

использовать Робот
алг Линия

нач

нц пока сверху свободно
закрасить
вверх
кц

кон

Цикл с постусловием (при)

(запись в алгоритмическом языке)

нц

<команда>

кц_при <условие>

Пример:

использовать Робот
алг Линия

нач
нц

закрасить; вверх

кц_при слева свободно

кон

Структура «ветвление».

    Структура «ветвление». Решение некоторых задач требует различных действий в зависимости от выполнения некоторых условий. В таких случаях говорят о ветвлении алгоритма.

    Для реализации структуры «ветвление» используются две структурированные команды школьного АЯ - если и выбор, каждая из которых может быть полной и неполной.

    В блок-схемах и школьном АЯ <условие> - это логическое выражение, результатом которого может быть одно из двух возможных значений - истина или ложь. В школьном АЯ эти значения записывают как да и нет. В языках программирования часто используются значения True и False . В компьютере эти значения хранятся как 1 и 0.

Полное ветвление

(запись в алгоритмическом языке)

если <условие>
. .
то <команда1>
. .
иначе <команда2>
все

Пример:

использовать Робот
алг ветвление_полное

нач
.
если сверху свободно
. .
то вверх
. .
иначе вниз
.
все

кон

Неполное ветвление

(запись в алгоритмическом языке)

если <условие>
. .
то <команда1>
все

Пример:

использовать Робот
алг ветвление_неполное

нач
.
если сверху свободно
. .
то вверх
.
все

кон

Вспомогательный алгоритм (процедура)

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

    Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой.

    Вспомогательный алгоритм вызывается из основной программы через имя. Вспомогательный алгоритм записывается после основного алгоритма. У вспомогательного алгоритма обязательно должно быть имя.

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

квадрат
вниз

вниз
кон

алг квадрат
нач

закрасить

вправо

закрасить

вниз

закрасить

влево

закрасить
кон

Вложенные циклы и ветвления

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

Цикл называется вложенным, если он размещается внутри другого цикла.

Рассмотрим вложенный цикл на примере цикла пока.

Мы знаем, что цикл состоит из заголовка цикла, который определяет количество повторений тела цикла.

Тело цикла, это та часть цикла, которая повторяется при выполнении цикла.

Телом цикла может быть команда, несколько команд, а также другой цикл или ветвление.

В том случае, когда телом цикла является другой цикл или ветвление, они называются вложенными.

Вложенный цикл

На первом проходе, внешний цикл вызывает внутренний, который исполняется до своего завершения, после чего управление передается в тело внешнего цикла. На втором проходе внешний цикл опять вызывает внутренний. И так до тех пор, пока не завершится внешний цикл.

Вложенное ветвление

Рассмотрим решение задачи с вложенными ветвлениями и циклами:

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

использовать Робот алг нач
.
нц пока справа с вободно
нц пока снизу свободно
.закрасить;
вправо
. .
кц
. . вправо
.
кц кон С
оставим алгоритм решения задачи с вне6шим циклом пока и вложенным циклом пока.

Р ешим эту же задачу, используя внешний цикл пока и вложенное ветвление.

Решим эту же задачу с помощью внешнего цикла при и вложенного цикла пока.




Самое обсуждаемое
Какие бывают выделения при беременности на ранних сроках? Какие бывают выделения при беременности на ранних сроках?
Сонник и толкование снов Сонник и толкование снов
К чему увидеть кошку во сне? К чему увидеть кошку во сне?


top