Кумир лестница алгоритм цикл

Исполнение циклических алгоритмов на базе системы «Кумир»

Цели: сформировать умение записи, исполнения и отладки алгоритмов с использованием цикла пока; добиться понимания использования цикла пока; развивать умение анализировать.

Ученики должны знать: правила записи и исполнения цикла пока; свойства цикла пока.

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

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

Обеспечение урока:

  • система Кумир;
  • интерактивная доска;
  • мультимедийный проектор;
  • карточки-задания.

Ход урока

1. Объяснение нового материала.

В общем случае алгоритм должен быть универсальным, т.е., он не должен зависеть от расстояния между Роботом и стеной. Для этого в алгоритмическом языке есть специальная команда – цикл пока.

Общий вид цикла пока

В общем виде цикл пока записывается так:

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

а) проверяет записанное после служебного слова пока условие;

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

Пример.

Метод отладки: по шагам.

Диалог Компьютера и Робота

Компьютер: снизу свободно?

Робот: смещается вниз в клетку Б.

Компьютер: снизу свободно?

Робот: смещается вниз в клетку В.

Компьютер: снизу свободно?

Робот: нет.

Так как Робот ответил нет, т.о. записанное после пока условие не соблюдается и выполнение цикла заканчивается.

Продемонстрировать в системе Кумир методы отладки: по шагам и непрерывно.

Тело цикла может не выполниться ни разу, если условие в цикле пока не соблюдается с самого начала. Например, если в алгоритме «вниз до стены» Робот на первый же вопрос «снизу свободно » ответит нет, то компьютер не вызовет команду «вниз» ни разу.

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

2. Эксперименты с программой на примере исполнителя Робот.

Необходимо, в системе Кумир, предварительно сделать заготовки расположения Робота (файлы 1.fil-6.fil).

Упражнения.

Эксперименты с программой.

Задание 1. (Загрузить файл 1.fil)

Требуется перевести Робота из клетки А в клетку Б. Использовать цикл пока:

Задание 2. (Загрузить файл 2.fil)

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

Задание 3. (Загрузить файл 3.fil)

Робот находится в горизонтальном коридоре. Закрасить все клетки коридора:

Задание 4. (Загрузить файл 4.fil)

1. Переделайте алгоритм «закрасить ряд вправо и вернуться» используя в нем цикл:

2. Используя вспомогательный алгоритм, составьте алгоритм, при выполнении которого Робот закрашивает прямоугольник.

Задание 5. (Загрузить файл 5.fil)

Составьте алгоритм для закраски всех клеток вокруг прямоугольной стены:

Задание 6. ( Загрузить файл 6.fil) (Из материалов экзамена 2009г.)

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

Задание 7. (Загрузить файл 6.fil) (Из материалов экзамена 2009 г.)

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

3. Закрепление. Вопросы:

Какие команды Компьютер будет давать Роботу при выполнении цикла:

а) нц пока клетка не закрашена

б) нц пока клетка закрашена

В ситуации, когда Робот стоит:

  1. в закрашенной клетке,
  2. в не закрашенной?

Расположение Робота показано на следующих рисунках:

Как будет выполняться цикл?

Домашнее задание. Определите значение переменной S после выполнения операторов:

Литература: А.Г.Кушниренко «Основы информатики и вычислительной техники».

Источник

Кумир лестница алгоритм цикл

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

В языке КуМир есть специальные команды для организации программы с циклическим алгоритмом.

Существует три основных типа команд, с помощью которых можно реализовать циклы в алгоритмах. В КуМире они называются команды повторения.

При выполнении цикла пока Робот циклически повторяет следующие действия:

· Проверяет записанное после служебного слова пока условие.

· Если условие не соблюдается, то выполнение цикла завершается и Робот начинает выполнять команды, записанные после кц.

При выполнении цикла до тех пор Робот циклически повторяет следующие действия:

· Выполняет тело цикла.

· Проверяет записанное после служебного слова кц_при условие.

∙ Если условие соблюдается, то выполнение цикла завершается и Робот начинает выполнять команды, записанные после кц_при. Если же условие не соблюдается, то Робот выполняет тело цикла, снова проверяет условие и т.д.

На бес­ко­неч­ном поле име­ет­ся лестница. Сна­ча­ла лест­ни­ца спус­ка­ет­ся вниз слева направо,

потом под­ни­ма­ет­ся вверх также слева направо.

После подъ­ема лест­ни­ца пе­ре­хо­дит в вер­ти­каль­ную стену. Вы­со­та каж­дой ступени — 1 клетка, ширина — 1 клетка.

Ко­ли­че­ство ступенек, ве­ду­щих вверх, и ко­ли­че­ство ступенек, ве­ду­щих вниз, неизвестно.

Между спус­ком и подъ­емом ши­ри­на площадки — 1 клетка. Робот на­хо­дит­ся в клетке,

рас­по­ло­жен­ной в на­ча­ле спуска.

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

(Робот обо­зна­чен бук­вой «Р»)

использовать Робот
алг Колодец
нач
нц пока снизу свободно
вниз
кц
нц пока не снизу свободно
вправо
кц
нц пока снизу свободно
вниз
закрасить
если справа свободно
то вправо
все
закрасить
кц
нц пока не снизу свободно
вверх
закрасить
если справа свободно то
вправо
закрасить
иначе влево
все
кц
кон

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные не­по­сред­ствен­но

над лестницей, как по­ка­за­но на рисунке.

Тре­бу­ет­ся за­кра­сить толь­ко клетки, удо­вле­тво­ря­ю­щие дан­но­му условию.

Например, для приведённого выше ри­сун­ка Робот

дол­жен за­кра­сить сле­ду­ю­щие клет­ки (см. рисунок).

Конечное рас­по­ло­же­ние Ро­бо­та может быть произвольным. Ал­го­ритм дол­жен ре­шать за­да­чу

для про­из­воль­но­го раз­ме­ра поля и лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен внут­ри

При ис­пол­не­нии ал­го­рит­ма Робот не дол­жен разрушиться, вы­пол­не­ние ал­го­рит­ма

На бес­ко­неч­ном поле име­ют­ся 4 стены, рас­по­ло­жен­ные в форме прямоугольника.

Длины вер­ти­каль­ных и го­ри­зон­таль­ных стен неизвестны.

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

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

(Робот обо­зна­чен буквой «Р»).

нц пока справа свободно

нц пока снизу свободно

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

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

пра­вой и ниж­ней стен.

Робот дол­жен закрасить толь­ко клетки, удо­вле­тво­ря­ю­щие данному условию.

Например, для приведённого выше ри­сун­ка Робот дол­жен закрасить сле­ду­ю­щие клетки

При ис­пол­не­нии алгоритма Робот не дол­жен разрушиться, вы­пол­не­ние алгоритма долж­но

Ко­неч­ное расположение Ро­бо­та может быть произвольным.

Ал­го­ритм должен ре­шать задачу для лю­бо­го допустимого рас­по­ло­же­ния стен и лю­бо­го

расположения и раз­ме­ра проходов внут­ри стен

Выполните задание самостоятельно

На бес­ко­неч­ном поле име­ет­ся лестница. Сна­ча­ла лест­ни­ца спус­ка­ет­ся вниз спра­ва налево, затем спус­ка­ет­ся вниз слева направо.

Вы­со­та каж­дой ступени — одна клетка, ширина — две клетки. Робот на­хо­дит­ся спра­ва от верх­ней сту­пе­ни лестницы.

Ко­ли­че­ство ступенек, ве­ду­щих влево, и ко­ли­че­ство ступенек, ве­ду­щих вправо, неизвестно.

На ри­сун­ке ука­зан один из воз­мож­ных спо­со­бов рас­по­ло­же­ния лест­ни­цы и Ро­бо­та (Робот обо­зна­чен бук­вой «Р»).

Напишите для Ро­бо­та алгоритм, за­кра­ши­ва­ю­щий все клетки, рас­по­ло­жен­ные не­по­сред­ствен­но над сту­пе­ня­ми лестницы,

спус­ка­ю­щей­ся слева направо. Тре­бу­ет­ся за­кра­сить толь­ко клетки, удо­вле­тво­ря­ю­щие дан­но­му условию.

Например, для приведённого выше ри­сун­ка Робот дол­жен за­кра­сить сле­ду­ю­щие клет­ки (см. рисунок).

Конечное рас­по­ло­же­ние Ро­бо­та может быть произвольным. Ал­го­ритм дол­жен ре­шать за­да­чу для про­из­воль­но­го раз­ме­ра поля и

лю­бо­го до­пу­сти­мо­го рас­по­ло­же­ния стен внут­ри пря­мо­уголь­но­го поля. При ис­пол­не­нии ал­го­рит­ма Робот не дол­жен разрушиться,

вы­пол­не­ние ал­го­рит­ма долж­но завершиться. Ал­го­ритм может быть вы­пол­нен в среде фор­маль­но­го ис­пол­ни­те­ля или за­пи­сан в

тек­сто­вом редакторе. Со­хра­ни­те ал­го­ритм в тек­сто­вом файле.

Источник

Кумир лестница алгоритм цикл

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.

У Робота есть девять команд. Четыре команды − это команды-приказы:

вверх вниз влево вправо

При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится.

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

Ещё четыре команды − это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

сверху свободно снизу свободно слева свободно справа свободно

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

Здесь условие − одна из команд проверки условия.

Последовательность команд − это одна или несколько любых команд-приказов.

Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:

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

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно

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

Количество ступенек, ведущих вниз, и количество ступенек, ведущих вверх, неизвестно.

На рисунке указан один из возможных способов расположения лестницы и Робота (Робот обозначен буквой «Р»).

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

Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.

Алгоритм может быть выполнен в среде формального исполнителя или записан в текстовом редакторе.

Сохраните алгоритм в формате программы Кумир или в текстовом файле. Название файла и каталог для сохранения Вам сообщат организаторы экзамена.

Это задание ещё не решено, приводим решение прототипа.

Выберите ОДНО из предложенных ниже заданий: 15.1 или 15.2.

15.1 Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. У Робота есть девять команд. Четыре команды — это команды-приказы:

вверх вниз влево вправо

При выполнении любой из этих команд Робот перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится. Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.

Ещё четыре команды — это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:

сверху свободно снизу свободно слева свободно справа свободно

Эти команды можно использовать вместе с условием «eсли», имеющим следующий вид:

Здесь условие — одна из команд проверки условия. Последовательность команд — это одна или несколько любых команд-приказов.

Например, для передвижения на одну клетку вправо, если справа нет стенки и закрашивания клетки, можно использовать такой алгоритм:

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

В одном условии можно использовать несколько команд проверки условий, применяя логические связки и, или, не, например:

если (справа свободно) и (не снизу свободно) то

Для повторения последовательности команд можно использовать цикл «пока», имеющий следующий вид:

Например, для движения вправо, пока это возможно, можно использовать следующий алгоритм:

нц пока справа свободно

Выполните задание.

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

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

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

15.2 Напишите программу для решения следующей задачи. Ученики 4 класса вели дневники наблюдения за погодой и ежедневно записывали дневную температуру. Найдите среднюю температуру за время наблюдения. Если количество дней, когда температура поднималась выше нуля градусов, не менее 5, выведите YES , иначе выведите NO . Программа получает на вход количество дней, в течение которых проводилось наблюдение N (1 ≤ N ≤ 31), затем для каждого дня вводится температура.

Источник

Читайте также:  Закрыть под лестницей гипсокартоном
Оцените статью
Цикл n раз Цикл пока Цикл «до тех пор»
Общий вид команды:

тело_цикла

Общий вид цикла пока:

Общий вид цикла до тех пор:

Команды тела цикла будут выполнены n раз.