Решения для различных исполнителей 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Решения для различных исполнителей



Конкретный вид решения, разумеется, сильно зави­сит от системы команд исполнителя. Тем не менее, для некоторых из них алгоритмы выглядят очень, похоже. Ниже показаны решения задачи для исполнителей "Че­репашка" (язык Лого) и "Кенгуренок". В обоих из них после некоторых подготовительных действий четыре раза выполняется процедура р1, которая рисует по три стороны фигуры (первый раз это АБ, ВС и СО, за­тем по той же программе изображаются стороны ОЕ, ЕР и РО и т.д.).

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

А вот для исполнителя "Чертежник", описанного в учебнике А.Г. Кушниренко с соавторами, алгоритм будет несколько другим. Причина состоит в том, что в отличие от двух предыдущих исполнителей "Чертежник" не име­ет понятий "вперед" и "назад", а пользуется системой координат, связанной с листом бумаги. С другой сторо­ны, благодаря такому принципу работы он не нуждается в поворотах. Поэтому для "Чертежника" фигура разделя­ется не на четыре, а на две повторяющиеся части; их границей служит точка G на рисунке. Команды рисования обеих частей рисунка совпадают с точностью до зна­ка аргумента Х, именно поэтому повторный вызов вспо­могательного алгоритма р1 содержит знак "минус" пе­ред аргументом. Обратите также внимание на то, что алгоритмы рисования линий АВ—ВС и СО—ОЕ для дан­ного исполнителя одинаковы, что позволяет во вспомога­тельном алгоритме р1 использовать цикл повторения не­обходимых действий два раза (разумеется, если ученик вместо такого цикла дважды напишет повторяющуюся пару команд, это не будет ошибкой!).

Исполнитель "Чертежник"

алг плюс (арг веш X)

Нач

поднять перо

сместиться на вектор(X, 0)

опустить перо

р1(Х)

р1(-X)

кон

алг р1 (арг веа X)

Нач

нц 2 раза

сместиться на вектор(X, 0)

сместиться на вектор(0, X)

кц

сместиться на вектор(—X, 0)

сместиться на вектор(0, X)

Кон

Наконец, рассмотрим еще одного исполнителя, кото­рый также описывается в этом же учебнике, — это "Робот". "Робот" не умеет рисовать, поэтому для него придется несколько переформулировать задачу. Двига­ясь вдоль стены, он должен будет обойти вокруг всей фигуры из начального положения, показанного на ри­сунке около буквы А.

 

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

И еще об одной особенности решения для данного исполнителя. Из-за довольно "жесткой" системы команд — только на одну клетку строго в указанном направлении — решение получается очень громоздким. Может быть, стоит даже упростить задачу, убрав, на­пример, выступ стены РСН1. Нам удалось написать ал­горитм, используя 8 однотипных вспомогательных ал­горитмов, т.е. по два на каждое направление (напом­ню, что всего у фигуры 12 сторон). Три первых алго­ритма (для сторон АВ, ВС и СО) приведены в правой колонке, остальные легко могут быть восстановлены чи­тателями по аналогии.

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

алг обход

Нач

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

Билет №4

1. Внешняя память компьютера. Носители информа­ции (гибкие диски, жесткие диски, диски CD-ROM, магни­тооптические диски и пр.) и их основные характеристики.



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 200; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.162.247 (0.005 с.)