Меню

Ошибка выполнения робот нельзя сквозь стену

 Система подготовки обучающихся к ОГЭ по информатике на примере решения задач по алгоритмизации в среде «КУМИР»  Гребнева Татьяна Васильевна,  учитель информатики МБОУ г. Мурманска СОШ № 33

Система подготовки обучающихся к ОГЭ по информатике на примере решения задач по алгоритмизации в среде «КУМИР»

Гребнева Татьяна Васильевна,

учитель информатики

МБОУ г. Мурманска СОШ № 33

Задание 15.1  Разработка алгоритма для учебного исполнителя «Робот»

Задание 15.1 Разработка алгоритма для учебного исполнителя «Робот»

Задание 15.1 Традиционно заключается в разработке алгоритма для учебного исполнителя «Робот». Описание команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку, также оно дано в тексте задания. Формулировке задания предшествует описание команд исполнителя и синтаксиса записи алгоритмических конструкций ветвления и цикла, поэтому задание может быть выполнено даже теми школьниками, которые не знакомы с используемым синтаксисом языка, но владеют основами алгоритмизации. На бесконечном поле имеются стены, которые робот должен обойти, закрасить нужные клетки и не разбиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться. Учащиеся записывают алгоритм в текстовом редакторе и сохраняют в текстовом файле.

Задание 15.1

  • Традиционно заключается в разработке алгоритма для учебного исполнителя «Робот». Описание команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку, также оно дано в тексте задания.
  • Формулировке задания предшествует описание команд исполнителя и синтаксиса записи алгоритмических конструкций ветвления и цикла, поэтому задание может быть выполнено даже теми школьниками, которые не знакомы с используемым синтаксисом языка, но владеют основами алгоритмизации.
  • На бесконечном поле имеются стены, которые робот должен обойти, закрасить нужные клетки и не разбиться. Конечное расположение Робота может быть произвольным. Алгоритм должен решать задачу для произвольного размера поля и любого допустимого расположения стен внутри прямоугольного поля. При исполнении алгоритма Робот не должен разрушиться.
  • Учащиеся записывают алгоритм в текстовом редакторе и сохраняют в текстовом файле.

Основные ошибки при выполнении задания 15.1 Представленные алгоритмы решения работают только в частных случаях. Использование цикла «n раз» вместо цикла «пока». Использование конструкций ветвления вместо конструкции цикла. Представлены линейные алгоритмы решения. Происходит «зацикливание» (алгоритм не завершается). Закрашены лишние клетки. Закрашена лишняя клетка / Не закрашена нужная клетка. Столкновение со стеной (Робот разбивается). Алгоритм содержит бесконечные циклы. Некорректное использование операторов цикла – отсутствует начало цикла (НЦ) или конец цикла (КЦ).

Основные ошибки при выполнении задания 15.1

  • Представленные алгоритмы решения работают только в частных случаях.
  • Использование цикла «n раз» вместо цикла «пока».
  • Использование конструкций ветвления вместо конструкции цикла.
  • Представлены линейные алгоритмы решения.
  • Происходит «зацикливание» (алгоритм не завершается).
  • Закрашены лишние клетки.
  • Закрашена лишняя клетка / Не закрашена нужная клетка.
  • Столкновение со стеной (Робот разбивается).
  • Алгоритм содержит бесконечные циклы.
  • Некорректное использование операторов цикла – отсутствует начало цикла (НЦ) или конец цикла (КЦ).

Проблема Большая часть затруднений учащихся связана с недостаточностью умений смыслового чтения : представленные алгоритмы решения работают только при конкретных размерах коридора; робот закрашивает клетки, например, слева от стены, а не справа; алгоритм работает только для конкретной обстановки. По-прежнему учащиеся показывают недостаточные умения в использовании конструкции цикла «ПОКА» с условием : путают с конструкцией ветвления «ЕСЛИ» или неверно указывают условие выхода из цикла.

Проблема

Большая часть затруднений учащихся связана с недостаточностью умений смыслового чтения :

  • представленные алгоритмы решения работают только при конкретных размерах коридора;
  • робот закрашивает клетки, например, слева от стены, а не справа;
  • алгоритм работает только для конкретной обстановки.

По-прежнему учащиеся показывают недостаточные умения в использовании конструкции цикла «ПОКА» с условием :

  • путают с конструкцией ветвления «ЕСЛИ» или неверно указывают условие выхода из цикла.

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

Пример формулировки задания 15.1

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

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

Напишите для Робота алгоритм,

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

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

Важно учитывать:

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

Правильное решение:

Правильное решение:

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

Правильное решение:

  • Любое правильное решение этой задачи обязательно должно содержать не менее 7 циклов «пока», перемещающих робота вдоль стен.
  • Если такие циклы в алгоритме отсутствуют, то задание решено неверно и оценивается в 0 баллов.

Критерии оценивания:

Критерии оценивания:

Разбор возможных ошибок

Разбор возможных ошибок

Ошибка № 1 :  ширина прохода ровно      1 клетка  За такое решение: 0 баллов .

Ошибка № 1 : ширина прохода ровно 1 клетка

За такое решение: 0 баллов .

Ошибка № 2 : цикл n раз  За такое решение: 0 баллов .

Ошибка № 2 : цикл n раз

За такое решение: 0 баллов .

Ошибка № 3 : ветвление вместо цикла  За такое решение: 0 баллов .

Ошибка № 3 : ветвление вместо цикла

За такое решение: 0 баллов .

Ошибка № 4 : линейный алгоритм  За такое решение: 0 баллов .

Ошибка № 4 : линейный алгоритм

За такое решение: 0 баллов .

Ошибка № 5 : Задача решена, но при возвращении в исходную позицию  произведена проверка препятствия сверху За такое решение: 0 баллов . Здесь надо помнить, что поле Робота бесконечно ! Поэтому произойдёт зацикливание последнего цикла. Если в условии задачи не указано конечное расположение Робота, а учащийся возвращает его в исходную позицию, то это за ошибку не считается (п ри условии корректной остановки).

Ошибка № 5 : Задача решена, но при возвращении в исходную позицию произведена проверка препятствия сверху

За такое решение: 0 баллов .

Здесь надо помнить, что поле Робота бесконечно !

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

Если в условии задачи не указано конечное расположение Робота, а учащийся возвращает его в исходную позицию, то это за ошибку не считается (п ри условии корректной остановки).

Ошибка № 6 : Закрашены лишние клетки Здесь надо помнить, что по условию поле Робота бесконечно и ширина прохода может быть бесконечно большой ! Поэтому в результате увеличения ширины прохода будет закрашено более 10 клеток.  За такое решение: 0 баллов .

Ошибка № 6 : Закрашены лишние клетки

Здесь надо помнить, что по условию поле Робота бесконечно и ширина прохода может быть бесконечно большой !

Поэтому в результате увеличения ширины прохода будет закрашено более 10 клеток.

За такое решение: 0 баллов .

Ошибка № 7 :  Закрашена лишняя клетка/     Не закрашена нужная клетка Данное решение на 1 балл :  Робот не разбивается;  закрашено не более 10 лишних клеток;  не закрашено не более 10 клеток, которые должны быть закрашены.

Ошибка № 7 : Закрашена лишняя клетка/ Не закрашена нужная клетка

Данное решение на 1 балл :

  • Робот не разбивается;
  • закрашено не более 10 лишних клеток;
  • не закрашено не более 10 клеток, которые должны быть закрашены.

Ошибка № 8 : Столкновение со стеной ОШИБКА ВЫПОЛНЕНИЯ: Робот - нельзя сквозь стену ( 8061 )  За такое решение: 0 баллов .

Ошибка № 8 : Столкновение со стеной

ОШИБКА ВЫПОЛНЕНИЯ:

Робот — нельзя сквозь стену ( 8061 )

За такое решение: 0 баллов .

Правильное решение:

Правильное решение:

Рекомендации по проверке задания 15.1

Рекомендации по проверке задания 15.1

Задание 15.1 Представление в задании команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку. Использование свободно распространяемой среды учебного исполнителя, например, среду Кумир (сайт http:// www.niisi.ru/kumir ) или другую среду с аналогичными возможностями исполнителя «Робот». Синтаксис команд используемой среды может отличаться от синтаксиса, описанного в условии. Результатом выполнения является файл, подготовленный в среде учебного исполнителя , содержащий запись алгоритма, являющегося решением задания или  текстовый файл , содержащий запись алгоритма.

Задание 15.1

  • Представление в задании команд исполнителя и синтаксиса управляющих конструкций соответствует общепринятому школьному алгоритмическому языку.
  • Использование свободно распространяемой среды учебного исполнителя, например, среду Кумир (сайт http:// www.niisi.ru/kumir ) или другую среду с аналогичными возможностями исполнителя «Робот».
  • Синтаксис команд используемой среды может отличаться от синтаксиса, описанного в условии.
  • Результатом выполнения является файл, подготовленный в среде учебного исполнителя , содержащий запись алгоритма, являющегося решением задания или текстовый файл , содержащий запись алгоритма.

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

Рекомендации по оцениванию

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

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

Источники Система программирования КуМир https://www.niisi.ru/kumir/books.htm К.Ю. Поляков Кумир для подготовки к ОГЭ. Практикум http://kpolyakov.spb.ru/school/kumir.htm Программирование в системе Кумир https://sites.google.com/site/fakultativinformatika/ Денис Кириенко (Архив с курсом заданий для практикума) http://server.179.ru/wiki/?page=DenisKirienko/Kumir https://server.179.ru/wiki/?show_files=1&page=Denis_Kirienko/Kumir#header-files Удалова Т.Л. (Варианты для Робота) http://licey.net/free/18-programmirovanie_na_yazyke_kumir/70-sistema_programmirovaniya_kumir.html «Информатика. Кумир» Удалова Т.Л. https://books.google.ru/books?id=CdAqevFDPa4C&printsec=frontcover&hl=ru#v=onepage&q&f=false

Источники

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

https://www.niisi.ru/kumir/books.htm

К.Ю. Поляков Кумир для подготовки к ОГЭ. Практикум

http://kpolyakov.spb.ru/school/kumir.htm

Программирование в системе Кумир

https://sites.google.com/site/fakultativinformatika/

Денис Кириенко (Архив с курсом заданий для практикума)

http://server.179.ru/wiki/?page=DenisKirienko/Kumir

https://server.179.ru/wiki/?show_files=1&page=Denis_Kirienko/Kumir#header-files

Удалова Т.Л. (Варианты для Робота)

http://licey.net/free/18-programmirovanie_na_yazyke_kumir/70-sistema_programmirovaniya_kumir.html

«Информатика. Кумир» Удалова Т.Л.

https://books.google.ru/books?id=CdAqevFDPa4C&printsec=frontcover&hl=ru#v=onepage&q&f=false

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

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

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

  3. Последовательно
    читает команды после строки нач
    и передает
    их исполнителю. Каждый такой приказ на
    выполнение команды называется вызовом
    этой команды.

  4. Встретив строку
    кон,
    проверяет,
    достигнута ли цель алгоритма, указанная
    в строке надо
    (см. примечание
    к п. 2).

  5. Заканчивает
    выполнение алгоритма.

Пример.
Компьютер
получает приказ исполнить алгоритм
«ход конем».

  1. Компьютер находит
    в памяти алгоритм А1.

  2. В строке дано
    записан
    комментарий — компьютер его пропускает.

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

  4. В строке надо
    помещен
    комментарий — компьютер его пропускает.

  5. Компьютер
    заканчивает выполнение алгоритма «ход
    конем».

7.6. Ошибки в алгоритмах

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

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

Иногда логическая
ошибка может привести к отказу
— невозможности
выполнить очередную команду. Например,
при попытке выполнить алгоритм «ход
конем» (А1) в обстановке, изображенной
на рисунке 2, компьютер попытается
последовательно вызвать команды вправо,
вправо, вниз
.
Однако вторую команду вправо
Робот выполнить
не сможет — возникает отказ. Получив
от исполнителя сигнал отказа, компьютер
сообщает об ошибке и прекращает выполнение
алгоритма.

Рис. 2

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

Ошибки в алгоритме
не всегда приводят к отказам. Возможны
логические ошибки, не обнаруживаемые
компьютером ни до, ни во время выполнения
алгоритма. Так, если в алгоритме А1 мы
вместо вправо
случайно напишем влево,
то компьютер выполнит алгоритм, Робот
из клетки А
переместится в клетку В (см. рис. 2), но
никаких сообщений об ошибках мы не
получим (да и откуда компьютеру знать,
куда мы на самом деле хотели переместить
Робота!).

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

Таблица 1. Ошибки
в алгоритмах.

Смысл ошибки

Название

Пример

1

Цель не достигнута

Логическая

Робот не попал
куда надо

2

Команда не входит
в СКИ

Синтаксическая

наверх, направо

3

Авария при попытке
исполнения команды

Семантическая
(отказ)

Попытка пройти
сквозь стену

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

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

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

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

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

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

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

если условие то

последовательность команд

все

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

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

вправо

закрасить

все

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

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

вправо

все

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

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

последовательность команд

кц

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

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

вправо

кц

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

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

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

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

15.2 Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 4. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число  — максимальное число, кратное 4.

Пример работы программы:

Входные данные Выходные данные
3
8
16
11
16

Спрятать решение

Решение.

15.1 Следующий алгоритм выполнит требуемую задачу.

нц

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

закрасить

вверх

кц

нц

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

вверх

кц

нц

пока сверху свободно

закрасить

вверх

кц

нц

пока не сверху свободно

закрасить

влево

кц

нц

пока сверху свободно

влево

кц

нц

пока не сверху свободно

закрасить

влево

кц

15.2 Решение

var n, a, k, g: integer;

begin

g:=0;

readln(n);

for k:=1 to n do

begin

readln(a);

if (a mod 4 = 0) and (a>g) then

g:=a;

end;

writeln(g);

end.

Приведём решение на языке Python.

n = int(input())

maxi = 0

for i in range(n):

a = int(input())

if a % 4 == 0 and a > maxi:

maxi = a

print(maxi)

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

Входные данные Выходные данные
1

2

4

6

4
2

3

12

20

16

20
3

3

4

44

24

44

Спрятать критерии

Критерии проверки:

Критерии оценивания выполнения задания 15.1 Баллы
Алгоритм правильно работает при всех допустимых исходных данных 2
При всех допустимых исходных данных верно следующее:

1) выполнение алгоритма завершается, и при этом Робот не разбивается;

2) закрашено не более 10 лишних клеток;

3) остались незакрашенными не более 10 клеток из числа тех, которые должны были быть закрашены

1
Задание выполнено неверно, т. е. не выполнены условия, позволяющие поставить 1 или 2 балла 0
Максимальный балл 2
Критерии оценивания выполнения задания 15.2 Баллы
Предложено верное решение. Программа правильно работает на всех приведённых выше тестах. Программа может быть записана на любом языке программирования 2
Программа выдаёт неверный ответ на одном из тестов, приведённых выше 1
Программа выдаёт на тестах неверные ответы, отличные от описанных в критерии на 1 балл 0
Максимальный балл 2

Источник: ГИА по информатике 31.05.2013. Основная волна. Сибирь, Дальний Восток. Вариант 1307.

Автор статьи

Дмитрий Михайлович Беляев

Эксперт по предмету «Информатика»

Задать вопрос автору статьи

Определение 1

Исполнитель «робот» в КуМире — это программа, написанная в программной среде КуМир.

В 1970 году академик Ершов А.П. разработал специальный язык для реализации различных алгоритмов, который был назван КуМир. На сегодняшний день КуМир является программой, которая может свободно распространяться и имеет различные модификации для разных операционных систем, включая Linuх и Windоws.

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

Запустив программу КуМир, мы попадаем в окно, предназначенное для набора программы робота.

Окно программы «Робот». Автор24 — интернет-биржа студенческих работ

Рисунок 1. Окно программы «Робот». Автор24 — интернет-биржа студенческих работ

Профориентация для студентов

Поможем определиться с профессией, окажем помощь в профессиональном самоопределении и трудоустройстве

Пройти профориентацию

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

Обстановка старта. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Обстановка старта. Автор24 — интернет-биржа студенческих работ

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

«Исполнитель Робот в КуМире» 👇

Вид обстановки в текущий момент времени всегда целиком виден в рабочем поле наблюдательного окна Робота. Ниже приведён пример возможного вида текущей обстановки в наблюдательном окне.

Пример вида текущей обстановки. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Пример вида текущей обстановки. Автор24 — интернет-биржа студенческих работ

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

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

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

  1. Путём загрузки стартовой обстановки из заранее сформированного файла с расширением .fill.
  2. Путём редактирования уже имеющейся стартовой обстановки при помощи программы редактирования стартовой обстановки. Далее необходимо выполнить сохранение обстановки в файл или прямо её использовать в программе.
  3. Сформировать свою стартовую обстановку.

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

Редакция обстановки. Автор24 — интернет-биржа студенческих работ

Рисунок 4. Редакция обстановки. Автор24 — интернет-биржа студенческих работ

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

Сохранение. Автор24 — интернет-биржа студенческих работ

Рисунок 5. Сохранение. Автор24 — интернет-биржа студенческих работ

Чтобы исключить ошибки и упростить работу, желательно при вводе текста применять команду «Вставка». Эта команда позволяет вставлять уже подготовленные командные наборы.

Порядок действий при формировании программы Робот в КуМире

Чтобы создать программу исполнителя Робот на алгоритмическом языке КуМир, надо выполнить следующие действия:

  1. Выполнить активацию исполнителя Робот с помощью вкладки Вставка и там выбрать «использовать Робот».
  2. Осуществить создание стартовой обстановки (возможно путём редактирования имеющейся стартовой обстановки). Выбрать в списке меню Робот пункт «Новая обстановка», затем необходимо выбрать нужные размеры рабочего поля. После этого надо отредактировать обстановку, расставить требуемые стенки, определить начальную позицию робота. В завершение данного пункта требуется выполнить сохранение стартовой обстановки в файл.
  3. Выполнить загрузку стартовой обстановки.
  4. Сформировать программу в поле для алгоритма.
  5. Выполнить старт программы (при помощи кнопки F9 или через соответствующий пункт меню).
  6. Осуществить сохранение файла.

Тестирование программы на ошибки

Редактор оснащён сервисом подсветки ключевых слов, и, кроме того, нижнее окно представляет собой консоль ввода/вывода. Правая часть его предназначена для вывода итоговых результатов действий каждого оператора. Когда при работе программы происходит грубая ошибка, например, разбился исполнитель, системой формируется информация об ошибке, и она окрашивает в определённый цвет первую команду, вызвавшую сбой. Кроме того, окрашивается в аварийный цвет и робот. Когда выполнение программы завершается, системой так же формируется сообщение об этом. В случае, если при проверке работы алгоритма обнаруживается неверное функционирование Робота, имеется возможность возврата к стартовой обстановке, используя команду «Вернуться к стартовой обстановке» из меню Робота. Выполнить операцию сохранения программы, сформированной в операционной системе КуМир, возможно при помощи командной опции «Сохранить программу» из меню Программа. Этот файл оснащается расширением kum.

Пример написания программы

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

Пример написания программы. Автор24 — интернет-биржа студенческих работ

Рисунок 6. Пример написания программы. Автор24 — интернет-биржа студенческих работ

Находи статьи и создавай свой список литературы по ГОСТу

Поиск по теме

Содержание

  1. Кумир имя не объявлено что делать
  2. Помогите, пожалуйста, почему в программе КуМир ,,Имя не объявлено», хотя там всё правильно. Что мне нужно исправить. ​
  3. Настройка среды Кумир для исполнителя Робот
  4. КуМир, Исполнитель Робот
  5. Главное меню
  6. Пульт
  7. Задачи
  8. Знакомство с языком и системой КуМир путем решения задач С2

Кумир имя не объявлено что делать

Помогите, пожалуйста, почему в программе КуМир ,,Имя не объявлено», хотя там всё правильно. Что мне нужно исправить. ​

Замечание: предполагается, что в имени файла нет «.».
program qq;
var s:string;
begin
writeln(‘Введите имя файла:’);
readln(s);
s:=copy(s,1,pos(‘.’,s))+’exe’;
writeln(s);
end.

Пример:
Введите имя файла:
Привет.txt
Привет.exe

5 — 10 + 20 = 15 (q = -2)
15 — 15 + 15 = 15 (q = -1)
20 -10 + 5 = 15 (q = -0.5)
15 + 0 + 0 = 15 (q = 0)
5 + 5 + 5 = 15 (q = 1)

программа на руби, для нахождения

Ответ:

Объяснение:

В этой кодировке символ занимат 1 байт = 8 бит.

284 на 8 нацело не делится, а число символов должно быть целым, поэтому такое сообщение невозможно.

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

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

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

Среда Кумир, исполнитель Робот

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

Раскомментируем первую строку

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

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

алг

нач

кон

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

КуМир, Исполнитель Робот

Чтобы задать условия для выполнения, нужно выполнить команду меню Инструменты→Редактировать стартовую обстановку Робота.

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

Помощь выводит исчерпывающую информацию о возможных действиях:

Меню Обстановка позволяет сделать следующее:

Новая обстановка Сбрасывает имя файла и создает обстановку, показанную в синем окне выше
Открыть Открытие уже созданной обстановки (файл *.fil) для редактирования
Недавние обстановки Ускоряет доступ к 8 последним проектам
Сохранить Сохраняет текущие изменения
Сохранить как. Позволяет задать имя для обстановки
Сохранить как стартовую Именно она будет средой по умолчанию
Печать в файл Создает PDF-файл с картинкой обстановки, именем файла, датой и комментарием
Закрыть Закрывает окно редактирования

Главное меню

Пульт

Вызов пульта производится нажатием на кнопку или через меню Робот→Показать пульт.

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

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

Подробности использования пульта смотри меню Инфо→Язык и система КуМир.

Задачи

  1. Робот находится в левом верхнем углу прямоугольной области неизвестного размера, со всех сторон окруженной стенками. Посередине находится стена, в которой есть проход. Где он, точно неизвестно, но проход не примыкает к нижней стенке. Задача: написать программу, которая переведет робота в правый нижний угол. Файл среды.
  2. См. также ОГЭ: вопрос 20.1.
  3. См. также ЕГЭ: вопросы 6, 14.

Copyright © 1993–2022 Мацкявичюс Д.А. Все права защищены.
Никакая часть сайта не может быть воспроизведена никаким способом без письменного разрешения правообладателя и явной ссылки на данный ресурс.

Источник

Знакомство с языком и системой КуМир путем решения задач С2

Знакомство с языком и системой КуМир путем решения задач С2

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

Предполагается, что читатель хочет с минимальными затратами времени научиться решать на школьном алгоритмическом языке в системе КуМир, задачи, подобные задачам С2-С6 демоверсии компьютеризированного ЕГЭ. Эта демоверсия опубликована на сайте МИОО: На том же сайте сказано, как загрузить систему КуМир (версия для ЕГЭ) для операционных систем типа MS Windows и Linux . Ниже мы будем обсуждать только те понятия, конструкции и команды школьного языка и системы КуМир, которые нужны при решении задач типа С2-С3. В частности, все программы ниже будут состоять из одного алгоритма без параметров. В условиях задач С2-С6 не предусмотрена какая-либо работа с файлами. Предписывается вводить информацию с клавиатуры и выводить ее на экран. Дополнительно требуется, чтобы каждая порция вводимой или выводимой информации размещалась на отдельной строке и обрабатывалась одной командой ввод или вывод .

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

где нс означает н овая с трока.

Ввод значения величины х производится командой

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

Итак, загружаем КуМир и, согласно инструкции, запускаем версию КуМира для ЕГЭ. Мы увидим следующую картинку.

В верхней строке с иконками команд, правее крестика, должно быть пусто. Если правее крестика Вы увидели три желто-зеленые иконки, то Вы запустили полный КуМир, с Роботом и Чертежником, которые Вам не нужны. Перечитайте инструкцию и запустите версию КуМир для ЕГЭ. Размеры трех областей, которые мы видим при первом появлении окна КуМира на экране, для задач С2-С6 неудобны. Их нужно изменить. Для этого нужно «схватить» мышкой нижний край окна (под словом Редактирование) и уменьшить высоту окна, затем «схватить» мышкой правый край окна и уменьшить ширину и наконец, нужно подвинуть границы между тремя областями окна так, чтобы получилась картинка примерно такой формы и размера:

Начнем с задачи С2, в которой нужно подсчитать количество различных значений среди модулей трех введенных с клавиатуры целых чисел a , b , c .

Условие и решение задачи C 2

С2. Составить программу, которая вводит с клавиатуры три целых числа a, b,c (каждое число – отдельной командой «ввод»), заменяет каждое из этих чисел на его модуль и выводит на экран количество различных среди полученных трех чисел. Ничего, кроме этого количества, программа выводить не должна. Например, если все числа равны, программа должна выводить число 1 . При использовании системы Fr ee Pascal для представления целых чисел используйте тип LongInt .

Указание. Модуль целого числа можно вычислить следующим образом:

Пояснение. Ответом в этой задаче является программа, записанная на школьном алгоритмическом языке или языке Free Pascal. Эта программа должна быть подготовлена и проверена в среде программирования КуМир или Free Pascal и сохранена в одном файле средствами среды программирования. Далее этот файл должен быть загружен в экзаменационную работу средствами системы КТС ЕГЭ.
Не забудьте загрузить в Вашу экзаменационную работу файл с подготовленной Вами программой.

Важное замечание. В КуМире имена переменных можно писать русскими буквами, а можно и латинскими. Какой способ удобнее? При решении задач С2-С6 удобнее всего установить латинский нижний регистр и давать переменным однобуквенные имена, тем более, что в условиях задач уже используются имена: a , b , c , n . Чтобы поменьше переключать регистр при наборе ключевых слов на русском языке, используйте клавишу Alt: пока эта клавиша удерживается в нажатом положении, текущий латинский регистр становится русским (и наоборот).

Алгоритм решения задачи С2 назовем С2 (заглавная латинская буква С). КуМир для ЕГЭ настроен так, что латинские буквы в именах изображаются курсивом, поэтому в тексте программы латинские буквы можно отличить от схожих по начертанию русских. Сохранять программу будем в файле C 2.kum

Начнем составление алгоритма. В начале алгоритма, после слова нач, опишем целые переменные a , b , c

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

Далее, следуя указанию по программированию из условия задачи, добавим команды, заменяющие каждое число на его модуль, и выполним получившуюся программу, нажав клавишу F9

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

На полях программы, справа от ее текста, система КуМир показывает результаты выполнения команд ввод в строках 3,4,5 и результаты присваиваний в строках 6,7,8. И на полях строк 3,4,5 и в окне ввода/вывода видно, что были введены три числа 1 -1 2 . Однако на полях строк 6,7,8 почему-то показано, что все три числа стали равны 1 . Почему же число c оказалось равным 1 , а не 2 ? «Элементарно, Ватсон»: на место строки 8 мы скопировали строку 6, собираясь затем поменять в ней в двух местах букву a на букву c . После этого мы изменили первую букву а , но забыли изменить вторую и получилась ошибочная команда

Исправим эту ошибку и попробуем дописать в конец алгоритма команду, вычисляющую количество различных среди чисел a , b :

Технические замечания. 1) Хотя в меню вставка есть макрокоманды по вставке управляющих конструкций, в данном случае удобнее набрать ключевые слова конструкции вручную, разместив их в одной строке.

2) В процессе редактировании строки, до момента окончания редактирования строки, КуМир не производит перепроверку программы. Эта перепроверка запускается после «покидания» строки курсором.

Уводим курсор из редактируемой строки номер 9 и смотрим, что получилось. КуМир сообщает, что в строке 9 найдены три ошибки типа «Величина или алгоритм не описаны»:

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

Исправляем эти ошибки и пока [1] КуМир переразбирает программу, думаем, что еще осталось сделать. Величина k показывает, сколько различных среди первых двух чисел a и b . Сравним третье число c числом а, затем с числом b . Если c не совпадает ни с a ни с b , то при переходе от набора чисел

a b к набору a b c количество различных чисел увеличивается на 1. Если же число c совпадает с одним из первых двух чисел, то добавление числа c к набору a b количества различных чисел не меняет. Эти длинные словесные объяснения записываются в алгоритме очень коротко:

Для завершения программы осталось вывести вычисленный ответ k в отдельной строке вывод k , нс:

Запустив программу для входных данных 1 1 1 , получим правильный ответ 1:

Запуская программу еще на нескольких наборах входных данных, убеждаемся, что она работает правильно:

Убедившись в правильности программы, необходимо сохранить ее, а затем включить файл C 2. kum в экзаменационную работу средствами системы КТС ЕГЭ.

[1] Для коротенькой программы переразбор происходит мгновенно. Для очень длинной программы на не очень новом компьютере переразбор может занять несколько секунд. Зеленый сигнал светофора показывает, что переразбор закончен. Для коротких программ на светофор можно не обращать внимания.

Источник

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка вычисления mac на терминале
  • Ошибка выполнения рецепта для цели modules