Как сделать составной цикл в кумире

Обновлено: 07.07.2024

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

Условно исполняемый код

Некоторые операции могут быть поставлены под условный оператор. Тогда они будут выполнены только в случае истинности этого условия.

Альтернатива

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

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

Цикл с предусловием — цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). В большинстве процедурных языков программирования реализуется оператором while , отсюда его второе название — while-цикл. На языке КуМир цикл с предусловием имеет следующий вид:

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

Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В языке Паскаль этот цикл реализует оператор repeat..until , в Си — do…while .
На языке КуМир цикл с постусловием имеет следующий вид:

Цикл со счётчиком

цел а
нц для а от 0 до 9
… тело цикла
кц

В различных языках программирования по-разному решается вопрос о значении переменной по завершении цикла, в котором эта переменная использовалась как счётчик.

Найдите среди n -целых чисел вводимых с клавиатуры количество отрицательных

Дано два произвольных числа. Пока их произведение меньше 100, увеличивать каждое число на 2 и вывести конечные числа на монитор

Последовательно вводятся n -целых чисел. Найти количество пятерок в последовательности

Последовательно вводятся n -целых чисел. Найти разницу между максимальным и минимальным значениями данных чисел

Найдите среди n -целых чисел вводимых с клавиатуры количество отрицательных

Дано два произвольных числа. Пока их произведение меньше 100, увеличивать каждое число на 2 и вывести конечные числа на монитор

Последовательно вводятся n -целых чисел. Найти количество пятерок в последовательности

Последовательно вводятся n -целых чисел. Найти разницу между максимальным и минимальным значениями данных чисел

Найдите среди n -целых чисел вводимых с клавиатуры количество отрицательных

Дано два произвольных числа. Пока их произведение меньше 100, увеличивать каждое число на 2 и вывести конечные числа на монитор

Последовательно вводятся n -целых чисел. Найти количество пятерок в последовательности

Последовательно вводятся n -целых чисел. Найти разницу между максимальным и минимальным значениями данных чисел

Найдите среди n -целых чисел вводимых с клавиатуры количество отрицательных

Дано два произвольных числа. Пока их произведение меньше 100, увеличивать каждое число на 2 и вывести конечные числа на монитор

Последовательно вводятся n -целых чисел. Найти количество пятерок в последовательности

Последовательно вводятся n -целых чисел. Найти разницу между максимальным и минимальным значениями данных чисел

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Робот : да.

Компьютер : вниз.

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

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

Робот : да.

Компьютер : вниз.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итак, что такое цикл ? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний . Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний ? Конечно проще и правильнее. Это и есть цикл . Вы можете сами вспомнить примеры циклов из жизни — их довольно много.

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

повторяй 7 раз

сделай приседание

конец цикла

Вот так, на придуманном нами языке мы оформили цикл. У исполнителя Робот тоже есть возможность записывать циклы. Причем, циклы бывают разные . Тот вариант, который мы только что рассмотрели называется цикл со счетчиком или цикл с параметром .

Виды циклов.

Цикл со счетчиком.

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

Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:

нц количество повторений > раз

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

Давайте рассмотрим это на примере.

Изначально Робот находился в левой верхней клетке.

Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач

Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.

Так вот, наша программа с циклом будет выглядеть так:

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

Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!

В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.

Цикл с условием.

При решении задачи 19 ГИА по информатике с Роботом использовать цикл со счетчиком не получится. Так как там поле, как правило, бесконечное и стены не имеют конкретной длины. Поэтому мы не сможем определить количество повторений для цикла со счетчиком. Но не беда — нам поможет цикл с условием .

Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:

пока не устал

сделай приседание

конец цикла

Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий

сверху свободно

снизу свободно

слева свободно

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

сверху стена

снизу стена

слева стена

справа стена

Но в условии задачи 19 ГИА указаны только первые 4. Так что будем пользоваться только ими.

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

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

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

Исходный код нашей программы для Робота будет примерно такой:

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

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

В результате выполнения этой программы мы увидим вот такую картину:


Как видим, не хватает только закрашенной первой клетки. Для этого перед циклом необходимо выполнить команду закрасить .


Для закрепления прошу написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:


Решение жду в комментариях. И напоминаю, до осталось совсем немного времени, готовимся активнее.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Робот : да.

Компьютер : вниз.

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

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

Робот : да.

Компьютер : вниз.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вариант 1

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

КуМир - Исполнитель Робот - провести Робота - 1

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 1

Вариант 2

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

КуМир - Исполнитель Робот - провести Робота - 2

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 2

Вариант 3

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

КуМир - Исполнитель Робот - провести Робота - 3

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 3

Вариант 4

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

КуМир - Исполнитель Робот - провести Робота - 4

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 4

Вариант 5

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

КуМир - Исполнитель Робот - провести Робота - 5

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 5

Вариант 6

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

КуМир - Исполнитель Робот - провести Робота - 6

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 6

Вариант 7

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

КуМир - Исполнитель Робот - провести Робота - 7

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 7

Вариант 8

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

КуМир - Исполнитель Робот - провести Робота - 8

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 8

Вариант 9

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

КуМир - Исполнитель Робот - провести Робота - 9

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 9

Вариант 10

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

КуМир - Исполнитель Робот - провести Робота - 10

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 10

► Смотрите также другие задачи по программированию в системе Кумир:

► Примеры с разобранными решениями и заданиями для самостоятельного решения для исполнителя Робот:

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

Метапредметные: смысловое чтение, построение логических рассуждений и умозаключений, умение делать выводы.

Предметные: умение формально выполнять алгоритмы, описанные с использованием повторения (циклы), вспомогательных алгоритмов, простых и табличных величин; умение создавать и выполнять программы для решения несложных алгоритмических задач в среде программирования Кумир.

Теоретический материал.

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

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

Цикл n раз – это составная команда, которая используется, когда некоторую последовательность команд в алгоритме необходимо повторить заранее известное количество раз.

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

нц n раз

список команд (тело цикла)

кц

число повторений n должно быть целым. Оно может быть отрицательным или равным нулю.

Представим одну и ту же программу линейного и циклического алгоритмов.

Задание. Составить программу закрашивания горизонтального ряда, состоящих из пяти клеток, считая, что Робот находится в центре поля (рис. 1).

kumir1.JPG

Результат обоих команд будет одинаковым (рис 2.)

Задание 1.

Составить программу закрашивания клеток ( рис. 3), считая, что Робот находится внизу.

kumir2.JPG

Задание 2.

kumir3.JPG

Составить программу, которая проведет Робота из одной точки (Рис. 4) в другую (Рис.5), используя цикл.

Дополнительное задание.

Измените программу так, чтоб робот оказался в начальном положении. Закрасить путь (Рис. 6), используя цикл.

kumir4.JPG

Закрепление материала.

Задание 3.

Составить программу, которая рисует бантик (Рис. 8). Робот находится в верхней части поля ( Рис. 7).

kumir5.JPG

Домашнее задание.

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

Вариант 1

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

КуМир - Исполнитель Робот - провести Робота - 1

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 1

Вариант 2

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

КуМир - Исполнитель Робот - провести Робота - 2

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 2

Вариант 3

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

КуМир - Исполнитель Робот - провести Робота - 3

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 3

Вариант 4

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

КуМир - Исполнитель Робот - провести Робота - 4

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 4

Вариант 5

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

КуМир - Исполнитель Робот - провести Робота - 5

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 5

Вариант 6

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

КуМир - Исполнитель Робот - провести Робота - 6

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 6

Вариант 7

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

КуМир - Исполнитель Робот - провести Робота - 7

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 7

Вариант 8

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

КуМир - Исполнитель Робот - провести Робота - 8

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 8

Вариант 9

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

КуМир - Исполнитель Робот - провести Робота - 9

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 9

Вариант 10

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

КуМир - Исполнитель Робот - провести Робота - 10

2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.

КуМир - Исполнитель Робот - программа рисования узора - 10

► Смотрите также другие задачи по программированию в системе Кумир:

► Примеры с разобранными решениями и заданиями для самостоятельного решения для исполнителя Робот:

Читайте также: