Как сделать цикл в кумире черепаха

Добавил пользователь Alex
Обновлено: 10.09.2024

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

Рассмотрим простую задачу: необходимо определить сумму чисел на отрезке от 10 до 20.

Для решения поставленной задачи можно поступить следующим образом:

  1. Введем величину S , в которой будем накапливать сумму заданной последовательности чисел, и присвоим ей начальное значение S := 0
  2. Для контроля числового диапазона введем параметр, начальным значением которого будет значение левого края отрезка (текущее значение), а конечным - правого. Назначим параметру, исходя из условия задачи, шаг изменения равным 1.
  3. Добавим к величине S текущее значение параметра.
  4. Будем возвращаться к пункту 2, увеличивать текущее значение на шаг изменения параметра и выполнять пункт 3 до тех пор, пока не достигнем конечного значения.
  • нц для i от i1 до i2
  • тело_цикла
  • кц

Величина i называется параметром цикла. i1 и i2 являются соответственно начальным и конечным значениями параметра. Параметр управляет количеством повторений тела цикла ( i2 – i1 + 1). Параметр цикла должен иметь тип цел .

Важно! Параметр цикла нельзя изменять в теле цикла.

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

Приведем фрагмент кода выше рассмотренного алгоритма на языке Кумир.

  • S := 0
  • нц для i от 10 до 20
  • S := S + i
  • кц

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

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

  • нц для i от i1 до i2 шаг d
  • тело_цикла
  • кц

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

Приведем фрагмент кода, реализующий цикл с параметром для решения поставленной задачи:

Черепаха-Blockly — это версия исполнителя Черепаха (из системы Исполнители), программы для которого составляются из готовых блоков, как в Scratch. Это избавляет учеников от синтаксических ошибок, которые неминуемо возникают при ручном наборе текстовой программы. Программа подходит для вводного курса алгоритмизации в 5-6 классах.

Публикации

Лицензия

Учебная среда Черепаха-Blockly, включая все исходные тексты скриптов, стилевых файлов и веб-страниц, распространяется под лицензией Apache License, версия 2.0 (см. перевод на русский язык), и не может быть использована иначе как в соответствии с вышеупомянутой лицензией.

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

Черепаха-Blockly

Онлайн-версия Черепаха-Blockly состоит из нескольких страниц, каждая из которых содержит по 10-12 задач (уровней) возрастающей сложности. На сегодняшний день доступны разработки по следующим темам:

Готовые наборы задач

Программа в текстовой форме

Сохранение и загрузка программ

Для сохранения программы щелкните по кнопке , которая находится над окном программы. Вам будет предложено ввести имя файла и выбрать место его сохранения. Программа сохраняется в формате XML среды Blockly.

Чтобы загрузить программу из файла, щёлкните по кнопке , которая размещена там же. Вам будет предложено выбрать файл на диске.

Цель: Формирование у учащихся основных понятий:

  • Что такое алгоритм.
  • Графический исполнитель. Среда
  • Команды исполнителя.
  • Черепашья графика.

Основные задачи:

  • Познавательные: Повторить с учащимися основные составляющие построения программ для ЛогоМиры.
  • Развивающие: Развитие приемов умственной деятельности ( обобщения, анализа, синтеза, сравнения), алгоритмического и логического мышления, внимания, творческой активности.
  • Воспитательная: Уверенность в собственных силах, формировать у них информационную культуру и потребность в приобретении знаний.
  • Мотивационные: Развивать познавательный интерес, способность применению полученных знаний и умений в различных информационных ситуациях, развивать речь и внимание школьников.

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

Тип уроков: комбинированный — урок повторения изученного материала, с элементам практической работы.

Оборудование: компьютеры

Программное обеспечение: ПО Лого Миры

Ход урока

1. Ребята, давайте мы с вами вспомним команды исполнителя “Черепаха”.

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

вперед 100 (показать движение Черепахи)

Понятно, что двигаться только по одной прямой для черепашки не очень интересно. Поэтому она может поворачиваться. Повернуть черепашку можно командами направо и налево:

(показать повороты)

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

Теперь можно приняться за обучение черепашки командам.

3. Практическая часть урока. Работа с программной средой ЛогоМиры.

Упражнение 1

рис.1

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

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

Записать в тетрадь процедуры рисование этих картинок:

а) ПРОЦ треугольник
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 3 РАЗ
вперёд (70)
вправо (120)
КОНЕЦ
КОНЕЦ

б) ПРОЦ 5-ти угольник
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 5 РАЗ
вперёд (70)
вправо (72)
КОНЕЦ
КОНЕЦ

в) ПРОЦ 6-ти угольник
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 6 РАЗ
вперёд (70)
вправо (60)
КОНЕЦ
КОНЕЦ

Созданные пользователем процедуры используются также, как и обычные команды для черепашек. Попробуем, например, использовать созданную ранее процедуру для рисования узора. Этот узор составлен из шести квадратов (составить процедуру рисования квадрата), повернутых относительно друг друга на 60?. Текст программы узора может быть таким:

Упражнение 2

ПРОЦ рисунок
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 6 РАЗ
квадрат
вправо(60)
КОНЕЦ
КОНЕЦ

Нарисовать этот рисунок цветом.

Упражнение 3

Нарисуем паутину. Отвечаем на вопрос: Какие геометрические фигуры напоминает паутина? (многоугольник) Вместе с классом составляем процедуру паутина.

ПРОЦ паутина
НАЧАЛО
шестиугольник 20
шестиугольник 30
шестиугольник 40
шестиугольник 50
шестиугольник 60
КОНЕЦ

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

Упражнение 4

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

рис.3

На этом уроке мы повторили с вами, как использовать циклы или другим языком повторения некоторых команд. Данная команда заставляет черепашку повторять то или иное действие какое-то количество раз, и поэтому значительно упростит написание программы, где используются большое количество одинаковых операций. Таким образом, это примитив (команда) реализует циклическую структуру алгоритма когда Черепашка повторяет те действия, которые указаны в скобках.

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

кумир

Видео на тему: КуМир. Робот. Знакомство

Настройка среды Кумир для исполнителя Робот.

Запущенная программа Кумир выглядит так.

кумир

Первым делом мы должны раскоментировать первую строку нашей программы, убрав символ |

кумир

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

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

алг

нач

кон

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

Стартовая обстановка Робота

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

Что такое стартовая обстановка?

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

Отличаются они только тем, что в стартовой обстановке 2 справа от Робота находится стена.

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

Как задать стартовую обстановку в Кумир?

Запустив среду Кумир в меню Инструменты выбираем пункт Редактировать стартовую обстановку Робота.

кумир

Откроется окно с синим фоном. Это и есть стартовая обстановка Робота. И мы ее можем изменить.

По-умолчанию, размер окна 10 на 15 клеток. Если нам необходимо изменить количество строк и столбцов, то щелкаем Обстановка -> Новая обстановка и задаем необходимые значения

кумир

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

После того, как мы задали нужную стартовую обстановку, ее необходимо сохранить (Обстановка -> Сохранить или Обстановка -> Сохранить как). После этого закрываем окно Обстановка и в основном окне программы выбираем Робот -> Сменить стартовую обстановку

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Исполнитель Робот. Простые команды.

У нашего Робота тоже есть система команд. Сегодня мы рассмотрим простые команды Робота. Всего их 5:

вверх

влево

вправо

закрасить

Результат выполнения этих команд понятен из их названия:

вверх — переместить Робота на одну клетку вверх

вниз — переместить Робота на одну клетку вниз

влево — переместить Робота на одну клетку влево

вправо — переместить Робота на одну клетку вправо

закрасить — закрасить текущую клетку (клетку в которой находится Робот).

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

вверх — Escape, Up (стрелка вверх)

вниз — Escape, Down (стрелка вниз)

влево — Escape, Left (стрелка влево)

вправо — Escape, Right (стрелка вправо)

закрасить — Escape, Space (пробел)

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

Теперь мы готовы написать первый алгоритм для Робота. Предлагаю начать с простого — нарисуем квадрат со стороной 3 клетки. Поехали!

Запускаем Кумир, настраиваем его. Можно начинать писать программу? Конечно нет! Мы же не задали стартовую обстановку! Делаем это. Предлагаю использовать вот такую:

кумир

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

Как работать в программе Кумир

Как работать в программе Кумир

Предлагаю рисовать квадрат, двигаясь по часовой стрелке. Для начала закрасим текущую клетку, дав команду закрасить. Потом делаем шаг вправо и опять закрашиваем клетку. И еще раз шаг вправо и закрасить.

Как работать в программе Кумир

Попробуем запустить программу и посмотреть что же получилось. Для запуска нажимаем F9 или же кнопку на панели инструментов

Как работать в программе Кумир

В результате мы должны увидеть вот такую картину

Как работать в программе Кумир

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

Потом пойдем влево, закрашивая нижнюю границу квадрата

У нас осталась одна не закрашенная клетка. Закрасим ее

Все готово! В итоге наша программа выглядит так:

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

алг Квадрат

нач

закрасить

вправо

закрасить

вправо

закрасить

вниз

закрасить

вниз

закрасить

влево

закрасить

влево

закрасить

вверх

закрасить

кон

А результат ее работы вот так

Как работать в программе Кумир

Итак, сегодня мы с вами написали программу, используя простые команды Робота. Рекомендую попрактиковаться самостоятельно — придумать себе задание и написать программу. Это могут быть самые различные фигуры, узоры, буквы. К примеру, попробуйте написать программу, рисующую букву П, Р, Ш, Щ, М. А если получится и захотите поделиться — комментируйте и прикрепляйте результат к комментарию.

Исполнитель Робот. Циклы.

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

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

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

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

Виды циклов.

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

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

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

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

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

Закрасим 7 клеток, как на рисунке. Рекомендую почитать про стартовую обстановку Робота и про его простые команды.

Как работать в программе Кумир

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

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

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

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

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

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

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

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

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

пока не устал

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

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

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

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

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

сверху стена

снизу стена

слева стена

справа стена

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

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

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

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

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

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

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

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