Меню
Разработки
Разработки  /  Информатика  /  Подготовка к ОГЭ  /  9 класс  /  Методическое пособие для подготовки к выполнению практического задания ОГЭ

Методическое пособие для подготовки к выполнению практического задания ОГЭ

Методическое пособие разработано для учащихся 9 классов в помощь при подготовке к ОГЭ по информатике. Практическое задание по разработке алгоритма для исполнителя Робот

07.09.2017

Содержимое разработки




Методическая разработка по информатике

по теме: «Задание 20.1 »









Авторы:

Акимова Татьяна Ефимовна,

учитель информатики, 1кв.кат.,

Миногина Нина Петровна,

учитель информатики, 1кв.кат.



Оглавление

Пояснительная записка 2

Цель разработки 2

Учащиеся должны знать: 2

Учащиеся должны уметь: 2

Теоретическая часть 3

Общая часть формулировки заданий 3

Система команд исполнителя Робот: 3

Занятие 1 Дидактическая игра «Я робот» 5

Занятие 2 Учебная среда программирования КУМИР. 6

Исполнитель Робот. Система команд исполнителя. 6

Планируемый результат: 6

Умения, характеризующие достижение этого результата: 6

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

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

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

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

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

Занятие 3. Практическая работа 13

«Составление линейных алгоритмов». 13

Планируемый результат 13

Умения, характеризующие достижение этого результата: 13

Задания: 13

Занятие 4. Исполнитель Робот. Циклы. 13

Планируемый результат 13

Умения, характеризующие достижение этого результата: 13

Виды циклов. 15

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

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

Занятие 5. Практическая работа. Составление и отладка циклических алгоритмов. 19

Планируемый результат: 19

Умения, характеризующие достижение этого результата: 19

Решение задач базового уровня 19

Занятие 6. Практическая работа Составление и отладка циклических алгоритмов. 23

Планируемый результат 23

Умения, характеризующие достижение этого результата: 23

Решение задач базового уровня 24

Занятие 7. Практическая работа Составление и отладка циклических алгоритмов. 30

Планируемый результат 30

Умения, характеризующие достижение этого результата: 30

Решение задач повышенного уровня сложности 30

PS. 37




Пояснительная записка

Цель разработки: изучить возможности программирования на примере конкретного исполнителя Робот с использованием среды КУМИР; дать практические навыки работы с исполнителем.


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

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


Учащиеся должны знать:

  • что такое исполнитель; СКИ Робота, среду исполнителя Робот;

  • что такое алгоритм ; в чем состоят основные свойства алгоритма;

  • способы записи алгоритмов: блок-схемы, учебный алгоритмический язык; основные алгоритмические конструкции: следование, ветвление, цикл; структуры алгоритмов;

  • технологии построения сложных алгоритмов


Учащиеся должны уметь:

  • понимать описания алгоритмов на учебном алгоритмическом языке;

  • выполнить трассировку алгоритма для известного исполнителя;

  • составлять линейные, ветвящиеся и циклические алгоритмы управления исполнителя Робот.

Теоретическая часть

Вариант задания 20.1 предусматривает разработку алгоритма для исполнителя «Робот». Для выполнения этого задания рекомендуется использование учебной среды исполнителя «Робот». В качестве такой среды может использоваться, например, учебная среда разработки «Кумир», разработанная в НИИСИ РАН (http://www.niisi.ru/kumir), или любая другая среда, позволяющая моделировать исполнителя «Робот».

В случае если синтаксис команд исполнителя в используемой среде отличается от того, который дан в задании, допускается внесение изменений в текст задания в части описания исполнителя «Робот». При отсутствии учебной среды исполнителя «Робот» решение задания 20.1 записывается в простом текстовом редакторе.

Задание 20.1 из части 2 ОГЭ направлено на проверку практических навыков разработки алгоритма для конкретного исполнителя, на умение записать и реализовать сложный алгоритм с использованием условных конструкций и циклов, а также на знание логических связок при задании условий.

Общая часть формулировки заданий

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

Система команд исполнителя Робот:

Команда

Описание команды

вверх

Робот перемещается в соседнюю клетку в указанном направлении. Если же в этом направлении между клетками стоит стена, то робот разрушается

вниз

вправо

влево

закрасить

Робот закрашивает ту клетку, в которой находится

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

Проверка истинности условия отсутствия стены у каждой стороны той клетки, где находится Робот; стены нет – истина, иначе - ложь

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

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

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

если условие

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

все

Организация ветвления: если условие верно, то выполняется последовательность команд

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

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

кц

Организация цикла: пока условие верно, то выполняется последовательность команд


Можно использовать составные условия, получаемые из простых с помощью

логических связок: и, или, не.




Занятие 1 Дидактическая игра «Я робот»

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

Один из учеников играет роль робота, а все остальные будут им управлять (сидя за партами). Учитель называет действие, которое должен выполнить робот (примеры действий для игры: подойти к окну, съесть конфету, стереть с доски, написать определенное слово на доске, обойти кабинет по периметру и т. д.). А учащиеся по очереди дают команды роботу для достижения конкретной цели.

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

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

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

Занятие 2 Учебная среда программирования КУМИР. Исполнитель Робот. Система команд исполнителя.

Планируемый результат: исполнять алгоритм для формального исполнителя с заданной системой команд.

Умения, характеризующие достижение этого результата:
  • понимать термины «исполнитель», «формальный исполнитель», «среда исполнителя», «система команд исполнителя»;

  • понимать смысл команд, входящих в систему команд исполнителя;

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


А теперь рассмотрим учебную среду программирования Кумир

Запустим программу: Пуск – Кумир или ярлык

Кто такой исполнитель Робот? (Нажать клавишу F9)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Далее,

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

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

  • чтобы закрасить/очистить клетку, щелкаем по ней левой кнопкой мыши

  • чтобы добавить или убрать точку в клетку щелкаем по клетке, удерживая клавишу Ctrl

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

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

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

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

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

вверх

вниз

влево

вправо

закрасить

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

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

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

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

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

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

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

вверх

вниз

влево

вправо

закрасить

Esc,

Esc,

Esc,

Esc,

Escape, Space (пробел)

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

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

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


Вот теперь все готово. Начинаем писать программу.

Удаляем символ «|» и называем наш алгоритм «Квадрат»

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

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


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

Если такое окно Робота у вас не появилось, то на панели инструментов щелкните «Показать окно Робота» или в меню Робот выберите пункт "Показать окно Робота". Продолжаем дальше.

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

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

влево; закрасить; влево; закрасить

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

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

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

алг Квадрат

нач

закрасить

вправо; закрасить

вправо; закрасить

вниз; закрасить

вниз; закрасить

влево; закрасить

влево; закрасить

вверх; закрасить

кон

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

Рекомендую попрактиковаться самостоятельно.





Задача 1.1

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

До исполнения После исполнения





Задача 1.2

До исполнения После исполнения




Занятие 3. Практическая работа «Составление линейных алгоритмов».

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

Умения, характеризующие достижение этого результата:
  • понимать смысл понятия «алгоритм» и широту сферы его применения;

  • формулировать простейшие алгоритмы в виде последовательности команд;

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

Задания:

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

  2. Робот в произвольной точке поля. Передвинуть Робот на 4 клетки вправо, закрасив их.

  3. Создайте новую стартовую обстановку, нарисовав на поле квадрат со стороной 4 клетки. Сохраните обстановку как стартовую.

  4. Создайте новую стартовую обстановку, нарисовав на поле коридор с проходами в стенах. Сохраните обстановку как obst2.fil. Смените стартовую обстановку на вновь созданную.

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

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

Умения, характеризующие достижение этого результата:
  • различать алгоритмические конструкции «следование», «ветвление», «цикл»;

  • подбирать алгоритмическую конструкцию, соответствующую той или иной ситуации.

  • исполнять линейный алгоритм; алгоритмы, содержащие ветвление и повторения, для формального исполнителя с заданной системой команд.

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

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

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

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

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

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

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

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

Т. е мы повторили команду «сделай приседание» 7 раз.

А есть ли смысл писать 7 одинаковых команд?

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

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

Повтори 7 раз

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

конец цикла

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

Виды циклов. Цикл со счетчиком.

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

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

нц раз

кц

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

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

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

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

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


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

алг
нач

закрасить; вправо

закрасить; вправо

закрасить; вправо

закрасить; вправо

закрасить; вправо

закрасить; вправо

закрасить; вправо

кон

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

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

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

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

алг

нач

нц 7 раз

закрасить; вправо

кц

кон

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

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

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

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

пока не устал

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

конец цикла

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

У исполнителя Робот есть несколько условий

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

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

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

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

сверху стена

снизу стена

слева стена

справа стена

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

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

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

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

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

алг

нач

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

вправо; закрасить

кц

кон

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

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

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

Занятие 5. Практическая работа. Составление и отладка циклических алгоритмов.

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

Умения, характеризующие достижение этого результата:
  • представлять план действий формального исполнителя по решению задачи укрупненными шагами (модулями);

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

  • осуществлять детализацию каждого из укрупненных шагов формального исполнителя с помощью понятных ему команд.

Решение задач базового уровня

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

Решение:

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

Спуститься к стене;

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

Сместиться вправо в клетку, примыкающую к стене;

Закрасить клетки над стеной, правее исходной клетки.

А теперь запишем сам алгоритм

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

алг

нач

нц пока снизу свободно /Спускаемся к стене

вниз

кц

нц пока не снизу свободно /Смещаемся к левому краю стены и

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

кц

вправо /Смещаемся в левую клетку над стеной

нц пока не снизу свободно /Смещаемся вдоль стены вправо, закрашивая

закрасить; вправо каждую клетку

кц

кон

2.Составьте алгоритм, закрашивающий все внутренние клетки, прилегающие к стене.

Разберем действия робота на три этапа:

1) пройти вдоль верхней стены до встречи с правой стеной, закрашивая каждую клетку

2) пройти вдоль правой стены до встречи с нижней стеной, закрашивая каждую клетку

3) пройти вдоль нижней стены

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

алг

нач

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

закрасить; вправо

кц

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

закрасить; вниз

кц

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

закрасить; влево

кц

кон

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

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

алг

нач

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

вправо; закрасить

кц

кон


4. Составить алгоритм, закрашивающий все клетки, находящиеся между двумя стенами.

Разберем действия робота на два этапа:

1) пройти вдоль какой-то из стен, до первой клетки, ограниченной и верхней и нижней стенами;

2) пройти по клеткам, находящимся между верхней и нижней стенами, закрашивая каждую клетку.

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

алг уч3

нач

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

вправо

если (не сверху свободно) и (не снизу свободно)

то закрасить

все

кц

кон

5. Составить алгоритм, закрашивающий все клетки вокруг прямоугольной стены.

алг уч4

нач

закрасить; вверх

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

закрасить; вверх;

кц

закрасить; вправо

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

закрасить; вправо;

кц

закрасить; вниз

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

закрасить; вниз;

кц

закрасить; влево

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

закрасить; влево;

кц

кон

6. Составить алгоритм, закрашивающий все клетки буквой Т вокруг соответствующих стен.

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

алг уч5

нач

вправо

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

закрасить; вправо

кц

закрасить; вниз

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

закрасить; влево

кц

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

закрасить; вниз

кц

закрасить; влево

закрасить; вверх;

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

закрасить; вверх

кц

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

закрасить; влево

кц

кон

Занятие 6. Практическая работа Составление и отладка циклических алгоритмов.

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

Умения, характеризующие достижение этого результата:
  • представлять план действий формального исполнителя по решению задачи укрупненными шагами (модулями);

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

  • осуществлять детализацию каждого из укрупненных шагов формального исполнителя с помощью понятных ему команд.

Решение задач базового уровня

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

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

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

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


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

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

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

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

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


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

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

Робот находится в левом верхнем углу огороженного пространства, имеющего форму прямоугольника. Размеры прямоугольника неизвестны. Где-то посередине прямоугольника есть вертикальная стена, разделяющая прямоугольник на две части. В этой стене есть проход, при этом проход не является самой левой или самой нижней клеткой стены. Точное расположение прохода также неизвестно. Одно из возможных расположений стены и прохода в ней приведено на рисунке (робот обозначен буквой «Р»):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Занятие 7. Практическая работа Составление и отладка циклических алгоритмов.

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

Умения, характеризующие достижение этого результата:
  • представлять план действий формального исполнителя по решению задачи укрупненными шагами (модулями);

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

  • осуществлять детализацию каждого из укрупненных шагов формального исполнителя с помощью понятных ему команд.

Решение задач повышенного уровня сложности

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

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

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

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

РЕШЕНИЕ При решении таких задач следует выделить то, что мы точно знаем. В данном случае это высота и ширина ступени. Количество ступеней неизвестно, значит восхождение и спуск по лестнице должен проходить по условию цикла. Значит нужно найти клетки ступеней у которых вначале и в конце части лестницы не совпадают условия. Это вторая клетка первой ступени и последняя клетка нижней ступени. Запишем первую часть алгоритма.

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

алг

нач

закрасить / закрасили первую клетку первой ступени

вправо /сместились в исходную клетку

нц пока не слева свободно / условие найденного различия для клеток

закрасить /закраска и следование по фрагменту до исходной клетки

вниз

вправо

закрасить

вправо

кц

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

Записываем концовку алгоритма:

закрасить

вправо

вниз /сместились в клетку исходную

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

закрасить

вправо

закрасить

вправо

вверх

кц

кон

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

На бесконечном поле имеется лестница. Сначала лестница спускается вниз слева направо, потом поднимается вверх также слева направо. После подъема лестница переходит в вертикальную стену. Высота каждой ступени 1 клетка, ширина – 1 клетка. Количество ступенек, ведущих вверх, и количество ступенек, ведущих вниз, неизвестно. Между спуском и подъемом ширина площадки 1 клетка.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


PS. Совет сразу строить две стартовых обстановки на одну задачу с разной длиной стен и разной шириной проходов (если они есть) и разным расстоянием между стенами; для другого типа с разным количеством ступеней

-75%
Курсы дополнительного образования

Создание динамических веб-страниц с помощью PHP и MySQL

Продолжительность 72 часа
Документ: Cвидетельство о прохождении курса
4000 руб.
1000 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Методическое пособие для подготовки к выполнению практического задания ОГЭ (4.13 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт