Как сделать составной цикл в кумире
Основные алгоритмические конструкции, кроме элементарных операций, изображаемых одним элементом схемы – это альтернативное исполнение и циклы. Существует два варианта программирования альтернативного исполнения и существует три основных вида цикла.
Условно исполняемый код
Некоторые операции могут быть поставлены под условный оператор. Тогда они будут выполнены только в случае истинности этого условия.
Альтернатива
В блок-схеме проверка условия может служить принципом выбора альтернативных операций. То есть, если условие истинно, исполнение пойдет по одной траектории, а если ложно, то по другой. На языке КуМир цикл с предусловием имеет следующий вид:
Цикл с предусловием
Цикл с предусловием — цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно). В большинстве процедурных языков программирования реализуется оператором 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. Закрепление. Вопросы:
Какие команды Компьютер будет давать Роботу при выполнении цикла:
а) нц пока клетка не закрашена
б) нц пока клетка закрашена
В ситуации, когда Робот стоит:
- в закрашенной клетке,
- в не закрашенной?
Расположение Робота показано на следующих рисунках:
Как будет выполняться цикл?
Домашнее задание. Определите значение переменной 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. Закрепление. Вопросы:
Какие команды Компьютер будет давать Роботу при выполнении цикла:
а) нц пока клетка не закрашена
б) нц пока клетка закрашена
В ситуации, когда Робот стоит:
- в закрашенной клетке,
- в не закрашенной?
Расположение Робота показано на следующих рисунках:
Как будет выполняться цикл?
Домашнее задание. Определите значение переменной S после выполнения операторов:
Задания расcчитаны на группу в 10 человек. Каждая карточка содержит по два задания.
Вариант 1
1. Необходимо провести Робота по лабиринту из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 2
1. Необходимо провести Робота по лабиринту из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 3
1. Необходимо провести Робота по коридору из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 4
1. Необходимо провести Робота по коридору из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 5
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 6
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 7
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 8
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 9
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 10
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
► Смотрите также другие задачи по программированию в системе Кумир:
► Примеры с разобранными решениями и заданиями для самостоятельного решения для исполнителя Робот:
Личностные: навыки самостоятельной работы, дисциплинированность, общая организованность, уверенность в работе с компьютером, профессиональная подготовка к получению профессии программиста.
Метапредметные: смысловое чтение, построение логических рассуждений и умозаключений, умение делать выводы.
Предметные: умение формально выполнять алгоритмы, описанные с использованием повторения (циклы), вспомогательных алгоритмов, простых и табличных величин; умение создавать и выполнять программы для решения несложных алгоритмических задач в среде программирования Кумир.
Теоретический материал.
Циклический алгоритм (цикл) включает в себя последовательность многократно повторяющихся действий. Различают арифметические и итерационные циклы.
В арифметическом цикле количество повторений известно заранее, а в итерационном действия повторяются до тех пор, пока не выполнится некоторые условия.
Цикл n раз – это составная команда, которая используется, когда некоторую последовательность команд в алгоритме необходимо повторить заранее известное количество раз.
Общий вид такого цикла:
нц n раз
список команд (тело цикла)
кц
число повторений n должно быть целым. Оно может быть отрицательным или равным нулю.
Представим одну и ту же программу линейного и циклического алгоритмов.
Задание. Составить программу закрашивания горизонтального ряда, состоящих из пяти клеток, считая, что Робот находится в центре поля (рис. 1).
Результат обоих команд будет одинаковым (рис 2.)
Задание 1.
Составить программу закрашивания клеток ( рис. 3), считая, что Робот находится внизу.
Задание 2.
Составить программу, которая проведет Робота из одной точки (Рис. 4) в другую (Рис.5), используя цикл.
Дополнительное задание.
Измените программу так, чтоб робот оказался в начальном положении. Закрасить путь (Рис. 6), используя цикл.
Закрепление материала.
Задание 3.
Составить программу, которая рисует бантик (Рис. 8). Робот находится в верхней части поля ( Рис. 7).
Домашнее задание.
Задания расcчитаны на группу в 10 человек. Каждая карточка содержит по два задания.
Вариант 1
1. Необходимо провести Робота по лабиринту из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 2
1. Необходимо провести Робота по лабиринту из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 3
1. Необходимо провести Робота по коридору из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 4
1. Необходимо провести Робота по коридору из начального положения (◊) в точку A.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 5
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 6
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 7
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 8
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 9
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
Вариант 10
1. Составьте программу закрашивания клеток поля, отмеченных звездочкой.
2. Составьте программу рисования узора. Начальное положение Робота отмечено символом ◊.
► Смотрите также другие задачи по программированию в системе Кумир:
► Примеры с разобранными решениями и заданиями для самостоятельного решения для исполнителя Робот:
Читайте также: