Вспомогательные алгоритмы

03.05.2018 Животные

¾ Рисование числа 1919 Семакин 9

Данная задача естественным образом выводит на идею вспомогательного алгоритма. Задание следующее: составить алгоритм рисования числа «1919». Учитель может поступить следующим образом: предложить ученикам написать алгоритм прежними средствами, т. е. используя только три основные команды: шаг, поворот, прыжок. Такое задание, очевидно, не вызовет энтузиазма учеников, поскольку принцип им уже понятен, а писать длинный линейный алгоритм довольно скучно. В этой ситуации вполне возможно самостоятельное «открытие» учениками идеи вспомогательного алгоритма. Обратив внимание на то, что в рисунке дважды присутствуют цифры «1» и «9», ученики могут прийти к идее отдельного описания алгоритмов рисования этих цифр, а затем использования их для получения четырехзначного числа «1919». После обсуждения этой идеи учитель вводит понятие вспомогательного алгоритма и объясняет, как производится его описание и использование. На языке Кенгуренка вспомогательный алгоритм называется процедурой.

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

Процедура

Процедура

Основная программа

ПРОЦЕДУРА единица

ПОВОРОТ ПОВОРОТ

ПОВОРОТ ШАГ ШАГ

ШАГ ШАГ ПОВОРОТ

ПРЫЖОК

КОНЕЦ ПРОЦЕДУРЫ

ПРОЦЕДУРА девять

ШАГ ШАГ ПОВОРОТ ШАГ ШАГ ШАГ ШАГ

ПОВОРОТ ШАГ

ШАГ ПОВОРОТ ШАГ ШАГ ПОВОРОТ ШАГ ШАГ ПОВОРОТ

ПРЫЖОК ПОВОРОТ

ПОВОРОТ ПОВОРОТ

ПРЫЖОК

КОНЕЦ ПРОЦЕДУРЫ

АЛГОРИТМ ПУТЬ_0

Дано: Исполнитель в т.А

Надо: воспроизвести образец

НАЧ

ДЕЛАЙ единица

ДЕЛАЙ девять

ДЕЛАЙ единица

ДЕЛАЙ девять

КОН

¾ Алгоритм «Обязанности» Гейн

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

Убрать со столов посуду. Вытереть столы. Расставить стулья. Уйти.

Эту последовательность действий предстоит выполнить три раза за дежурство: после завтрака, обеда и ужина. Назовём соответствующий алгоритм «Обязанности», а при написании распорядка дня заменим эти четыре действия одной командой:

Тогда распорядок дежурства по столовой примет такой вид:

Прийти в столовую в 7.00.

Накрыть столы к завтраку.

Дождаться окончания завтрака.

Исполнить алгоритм Обязанности.

Прийти в столовую в 13.00.

Накрыть столы к обеду.

Дождаться окончания обеда.

Прийти в столовую в 18.00.

Накрыть столы к ужину.

Дождаться окончания ужина.

Исполнить алгоритм Обязанности.

Использование команды Исполнить алгоритм ... позволило почти в два раза сократить длину нашей инструкции.

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

¾ Подготовка реферата макарова 8-9

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

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

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

¾ Алгоритм «Набор текста песен» макарова 8-9

Например, для набора текста песни, содержащей три куплета с припевом, можно воспользоваться основным алгоритмом под названием * Набор текста песни».

Алгоритм «Набор текста песни»

1.Набрать название песни.

2.Набрать первый куплет.

3.Набрать припев.

4.Набрать второй куплет.

5.Скопировать припев.

6.Набрать третий куплет.

7.Скопировать припев. Конец алгоритма

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

Здесь слово скопировать является именем алгоритма, определенного ранее, то есть вспомогательного алгоритма. Слово «припев» обозначает конкретный объект, над которым нужно произвести действие копирования.

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

Алгоритм «Скопировать (объект копирования)»

1.Выделить объект.

2.Выбрать команду Правка/Копировать.

3.Указать щелчком мыши место вставки.

4.Выбрать команду Правка/Вставить.

Конец алгоритма

При записи данного вспомогательного алгоритма мы указали его имя и в скобках - название параметра, с которым алгоритм работает. В данном случае параметр один - объект копирования. У параметра «объект копирования» могут быть разные значения. При наборе песни в качестве объекта копирования будет использоваться припев. При рисовании в качестве объекта копирования будет использоваться заранее созданный графический элемент. При создании формулы в качестве объекта копирования может использоваться, например, функция или ранее созданное простое математическое выражение.

После выполнения вспомогательного алгоритма вы возвращаетесь в основной алгоритм для его продолжения.

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

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

¾ Рисование слова «МИР»с помощью исполнителя Чертежник Кушниренко

Составив три алгоритма для рисования букв М, И, Р, можно не только последовательно приказывать ЭВМ выполнять эти алгоритмы, но и задать порядок их выполнения в виде алгоритма:

алг МИР

дано перо поднято

надо нарисовано слово МИР, перо поднято и расположено в конце слова (начале следующей буквы)

нач

Буква М

Буква И

Буква Р

кон

Строки "буква М", "буква И", "буква Р" в записи алгоритма "МИР" -это команды алгоритмического языка, которые означают соответственно

выполнить алгоритм с именем "буква М",

выполнить алгоритм с именем "буква И",

выполнить алгоритм с именем "буква Р".

Если теперь поместить в ЭВМ алгоритм "МИР" и алгоритмы "буква М", "буква И", "буква Р" (см. АН), а затем приказать ЭВМ выполнить алгоритм "МИР", то ЭВМ автоматически вы­полнит сначала алгоритм "буква М", потом - "буква И" и наконец-"буква Р".

ПОНЯТИЯ ОСНОВНОГО И ВСПОМОГАТЕЛЬНОГО АЛГОРИТМОВ.
ВЫЗОВ ВСПОМОГАТЕЛЬНОГО АЛГОРИТМА

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

Приказ на выполнение вспомогательного алгоритма называется вызовом этого вспомогательного алгоритма. В общем случае если в записи алгоритма X встречается вызов алгоритма Y , то алгоритм Y называется вспомогательным для X , а алгоритм X называется основным для Y .

ОДИН И ТОТ ЖЕ АЛГОРИТМ МОЖЕТ ВЫСТУПАТЬ
И В РОЛИ ВСПОМОГАТЕЛЬНОГО, И В РОЛИ ОСНОВНОГО

Алгоритм "МИР" (All ) сам может быть использован как вспомогательный. Например, мы можем составить следующий алгоритм для рисования лозунга "МИРУ МИР":

алг МИРУ МИР

дано п epo поднято

надо | нарисован лозунг "МИРУ МИР", перо поднято и расположено в конце лозунга (в начале следующей буквы)

нач

МИР

буква У

сместиться на вектор (3, 0) |пропуск между словами МИР

кон

В этом примере алгоритм "МИР" является вспомогательным по отношению к алгоритму "МИРУ МИР" и основным по отношению к алгоритму "буква М".

¾ Алгоритм проезда по большому городу Каймин

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

Типичный пример - алгоритм проезда по большому городу. Рассмотрим задачу проезда в Москве от аэродрома Внуково до Красной площади. Один из способов можно описать следующим алгоритмом с использованием вспомогательных алгоритмов:

¾ Алгоритм рисования индекса 660000 Босова 7

Пример 1. Составить алгоритм рисования почтового индекса города Красноярска - 660000.

Для решения основной задачи (рисования почтового индекса 660000) достаточно «научить» Чертежника рисовать цифру 6 и цифру 0. Для этого алгоритм рисования цифры нужно предварительно оформить в виде процедуры (вспомогательного алгоритма).

Процедура

Процедура

алг цифра_0
нач
. опустить перо
. сместиться на вектор (0 , 2 )
. сместиться на вектор (1 , 0 )
. сместиться на вектор (0 , - 2 )
. сместиться на вектор (- 1 , 0 )
. поднять перо
. сместиться на вектор (2 , 0 )
кон

алг цифра_6
нач
. опустить перо
. сместиться на вектор (- 1 , - 1 )
. сместиться на вектор (1 , 0 )
. сместиться на вектор (0 , - 1 )
. сместиться на вектор (- 1 , 0 )
. сместиться на вектор (0 , 1 )
. поднять перо
. сместиться на вектор (2 , - 1 )
кон

Основной алгоритм

использовать Чертежник
алг индекс
нач
. установить цвет ("красный" )
. сместиться в точку (1 , 1 )
. цифра_6
. сместиться в точку (3 , 1 )
. цифра_6
. цифра_0
. цифра_0
. цифра_0
. цифра_0
кон

1.2. Определения ВА, предлагаемые авторами учебников

1. Вспомогательный алгоритм – алгоритм, который можно использовать в других алгоритмах, указав его имя и, если имеются, значения параметров. Макарова 8-9

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

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

3. Вспомогательный алгоритм – алгоритм, целиком используемый в составе другого алгоритма. Босова, Ершов

4. Вспомогательный алгоритм – это набор действий, многократно использующихся в алгоритме, выделенных в качестве самостоятельного алгоритма и имеющих имя. Гейн

5. В общем случае если в записи алгоритма Х встречается вызов алгоритма Y , то алгоритм Y называется вспомогательным для Х, а алгоритм Х называется основным для Y . Кушниренко

6. Для решения каждой подзадачи составляют свою программу на языке программирования, которая называется вспомогательной программой (подпрограммой). Быкадоров 15п 9

7. Вспомогательным называется алгоритм, снабженный таким заголовком, который позволяет вызывать этот алгоритм из других алгоритмов. Любой алгоритм можно сделать вспомогательным: надо лишь снабдить его соответствующим заголовком (т.е. указать название, аргументы и результаты). ВА – мощное и удобное средство, облегчающее решение трудных задач.

8. (Вспомогательные) подпрограммы предназначены для сокращения записи часто встречающихся формул и алгоритмов, текстуально совпадающих или имеющих одну и ту же структуру. Бауэр Гооз

1.3.Обращение к ВА (описание ВА)Босова 9 Семакин 161

1.3.1. Заголовок ВА. Гейн 8

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

1.3.2. Команда вызова ВА Босова 9 Гейн.

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

Команда вызова вспомогательного алгоритма исполняется следующим образом (рис. 2.4):

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

2. для заданных входных данных исполняются команды вспомогательного алгоритма;

3. полученные результаты присваиваются переменным с именами фактических результатов;

4. осуществляется переход к следующей команде основного алгоритма.

Босова информатика 9

1.3.3. Общая форма записи ВА:

Записывая вспомогательный алгоритм, кроме названия, следует указывать переменные, служащие аргументами и результатами. Гейн 8

АЛГ “<НАЗВАНИЕ ПОДЗАДАЧИ>”

АРГ <СПИСОК АРГУМЕНТОВ>

РЕЗ <СПИСОК РЕЗУЛЬТАТОВ>

НАЧ

<ПЛАН ДЕЙСТВИЙ>

КОН

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

1.3.4. Типы переменных

Основные понятия:

· тип переменной;

· объявление переменных;

· переменная вещественного типа;

· переменная целого типа;

· локальная переменная;

· глобальная переменная;

· формальные параметры;

· фактические параметры;

· передача данных во вспомогательный алгоритм

Есть много различных формальных исполнителей алгоритмов, которые умеют работать с числовыми переменными. Все они оперируют с числами примерно одинаково.

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

Вспомним, как записывают числа на уроках математики.

  1. Небольшие натуральные числа записывают цифрами без всяких дополнительных знаков.
  2. Дробные числа могут записываться с помощью дробной черты или запятой.
  3. Большие или, наоборот, маленькие числа часто записывают, используя степень числа 10: например, вместо 20 000 000 000 000 пишут 2 10 13 , а вместо 0,0000000000015 пишут 1,5 10 12 .

Более того, некоторые числа, скажем p или Ö 2 , цифрами вообще не запишешь.

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

В алгоритме редко присутствует запись самих чисел. Обычно в нём фигурируют переменные, которые, словно пустая тара, всегда готовы принять в себя числа на временное хранение. Но никто не хранит подсолнечное масло в бумажных пакетах или сахар в сетках. Каждому виду продукта - свой тип тары. Так же и с переменными: каждому виду чисел - свой тип переменных.

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

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

Приступая к написанию программы, мы обязаны сообщить исполнителю, каков тип используемых в ней переменных. Эту информацию записывают с помощью специальной конструкции, называемой объявлением переменных.

Объявление переменных может, например, выглядеть так:

вещ : а, b , х, с, киса;

цел : п, т, i , у, вася;

Переменные объявляются до фигурных скобок, ограничивающих тело алгоритма, программы или подпрограммы. Например:

Программа

вещ : х, с, киса;

цел : а, b , i , j , вася;

} Подпрограмма Нечто (арг : цел : с, вася; вещ : b ; рез : цел : х, z )

вещ : а, у;

цел : п, т, i , j , киса;

Стандартные слова вещ и цел , как обычно, подчёркиваются.

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

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

Алгоритм Простой множитель (арг : цел : п; рез : цел : т)

(*п - исходное число, т - наименьший простой множитель числа п*)

{ т := 2;

Делать пока (п не делится на т)

{ т:= т + 1;

} (*Конец цикла*)

Сообщить т;

Алгоритм цел : п, т;

{ Запросить т;

(*3десь т - исходное число, an - наименьший простой мно­житель числа п*)

Если (т = 1) то

{ Сообщить "Разложения не существует";

Делать пока (т > 1)

{ Вызвать Простой множитель (т, п);

т := т / п;

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

Имена переменных (неважно, аргументы это или результаты), которые фигурируют в операторе Вызвать , являются фактически­ми параметрами . Правила присваивания значений формальным параметрам очень просты.

Перед началом выполнения подпрограммы:

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

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

¾ если в подпрограмме есть третий аргумент, то третья переменная присваивается третьей переменной и т. д.

После окончания работы подпрограммы:

¾ если в подпрограмме есть результаты, то берётся первая переменная после слова рез в заголовке соответствующей подпрограммы; её содержимое присваивается следующей переменной, которая осталась после присваивания значений аргументам в операторе Вызвать ;

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

Количество переменных и их тип в операторе Вызвать должны совпадать с количеством переменных и их типом в заголовке соответствующей подпрограммы.

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

Но переменные можно объявить в основном алгоритме, работать с ними во вспомогательном алгоритме. Такие переменные называются глобальными переменными. Например, в алгоритме разложения на простые множители переменные можно описать так:

Алгоритм Простой множитель (рез : цел : т)

{ т := 2;

Делать пока («не делится на т)

{ т := т + 1;

} (*Конец цикла*)

Сообщить т;

Алгоритм Разложение на простые множители

цел : п, р;

{ Запросить п;

Если (п = 1) то

{ Сообщить "Разложения не существует";

Делать пока (п > 1)

{ Вызвать Простой множитель (р);

п := п / р;

}

}

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

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

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

2.3. Блок «предопределённый процесс»

При представлении алгоритмов с помощью блок-схем для обозначения команды вызова вспомогательного алгоритма используется блок «предопределённый процесс» (рис. 2.3), внутри которого записывается название (имя) вспомогательного алгоритма, после которого в скобках перечисляются параметры - входные данные и результаты.

Фактические параметры указываются в этом блоке, а формальные параметры - в начальном блоке вспомогательного алгоритма.

Вспомогательный алгоритм делает структуру алгоритма более понятной.

Таким образом:

  1. для работы с данными разного вида требуются переменные разных типов. Для переменных, в которых хранится числовая информация, обычно используются целый и вещественный типы. Тип используемой в алгоритме переменной должен быть объявлен до тела алгоритма.
  2. Переменные, объявленные во вспомогательном алгоритме, являются локальными - их тип и значения действительны только в пределах исполнения вспомогательного алгоритма. Если переменная объявлена в основном алгоритме, но не объявлена во вспомогательном, хотя там используется, то она является глобальной переменной.
  3. Переменные в заголовке вспомогательного алгоритма являются формальными параметрами. Они указывают на то, как внутри вспомогательного алгоритма будут называться переменные, в которые передаётся информация из основного алгоритма (аргументы вспомогательного алгоритма), и откуда будет браться информация, полученная после исполнения вспомогательного алгоритма (результаты вспомогательного алгоритма).

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


Проверка домашней работы 2 8 (р.т.). Составить для Чертежника алгоритм рисования прямоугольника со сторонами, параллельными осям координат, если известны координаты его двух вершин (2,1) и (7,5). Координаты прямоугольника: (2,1), (2,5), (7,5), (7,1) переведи в точку (2, 1) опусти перо переведи в точку (2,5) переведи в точку (7, 5) переведи в точку (7, 1) переведи в точку (2, 1)


3 9 (р.т.). Составить для Чертежника алгоритм рисования ромба, центр которого находится в точке (5,5), диагонали параллельны координатным осям, а их длины равны 8 и 4 единицам. Возможно два варианта расположения ромба на координатной плоскости. переведи в точку (3, 5) опусти перо переведи в точку (5, 9) переведи в точку (7, 5) переведи в точку (5, 1) переведи в точку (3, 5) переведи в точку (1, 5) опусти перо переведи в точку (5, 7) переведи в точку (9, 5) переведи в точку (5, 3) переведи в точку (1, 5)


4 10 (р.т.). Составить алгоритм управления Чертежником в результате которого на координатной плоскости будет нарисован квадрат, длина стороны которого равна 2 единицам. Можно выбрать любую точку координатной плоскости в качестве одной из вершин, например, (2,2). переведи в точку (2, 2) опусти перо сдвинь на вектор (0, 2) сдвинь на вектор (2, 0) сдвинь на вектор (0, -2) сдвинь на вектор (-2, 0)


5 11 (р.т.). Составить алгоритм управления Чертежником в результате выполнения которого на координатной плоскости будет нарисован прямоугольник, длины сторон которого равны 3 и 4 единицам. Можно выбрать любую точку координатной плоскости в качестве одной из вершин, например, (4,4). переведи в точку (4, 4) опусти перо сдвинь на вектор (0, 4) сдвинь на вектор (3, 0) сдвинь на вектор (0, -4) сдвинь на вектор (-3, 0)


6 12 (р.т.). Составить алгоритм управления Чертежником в результате выполнения которого на координатной плоскости будет нарисован произвольный параллелограмм. Можно выбрать любую точку координатной плоскости в качестве одной из вершин, например, (1,1). переведи в точку (1, 1) опусти перо сдвинь на вектор (1, 3) сдвинь на вектор (4, 0) сдвинь на вектор (-1, -3) сдвинь на вектор (-4, 0)


7 13(а) (р.т.). Составить алгоритм рисования изображения так, чтобы в процессе рисования перо не отрывалось от бумаги и ни одна линия не проводилась дважды. Пусть (1, 1) – координаты левой нижней вершины фигуры. Один из возможных вариантов: переведи в точку (1, 1) опусти перо сдвинь на вектор (4, 4) сдвинь на вектор (0, -4) сдвинь на вектор (4, 4) сдвинь на вектор (0, -4) сдвинь на вектор (-8, 0) сдвинь на вектор (0, 4) сдвинь на вектор (8, 0)


8 13(б) (р.т.). Составить алгоритм рисования изображения так, чтобы в процессе рисования перо не отрывалось от бумаги и ни одна линия не проводилась дважды. Пусть (7, 1) – координаты левой верхней вершины фигуры. Один из возможных вариантов: переведи в точку (1, 7) опусти перо сдвинь на вектор (0, -4) сдвинь на вектор (4, 0) сдвинь на вектор (0, 2) сдвинь на вектор (-2, 0) сдвинь на вектор (0, -4) сдвинь на вектор (4, 0) сдвинь на вектор (0, 4) сдвинь на вектор (-2, 0) сдвинь на вектор (0, 2) сдвинь на вектор (-4, 0)





10 Пусть (1, 1) – координаты левой нижней вершины фигуры. Начинать построение следует в одной из вершин, в которой сходится нечетное число линий. Таких вершин здесь две: (5, 1) и (5, 5). Один из возможных вариантов: переведи в точку (5, 1) опусти перо сдвинь на вектор (4, 4) сдвинь на вектор (-8, -4) сдвинь на вектор (4, 4) сдвинь на вектор (4, -4) сдвинь на вектор (-8, 4) сдвинь на вектор (4, -4) сдвинь на вектор (0, 4) сдвинь на вектор (4, 0) сдвинь на вектор (0, -4) сдвинь на вектор (-8, 0) сдвинь на вектор (0, 4) сдвинь на вектор (4, 0)





12


13 18 (а) (р.т.). Составить алгоритм управления Чертежником, для описания которой уместно использовать цикл «повторять n раз». переведи в точку (1, 1) опусти перо ПОВТОРИТЬ 5 РАЗ сдвинь на вектор (0, 1) сдвинь на вектор (5, 0) сдвинь на вектор (0, -1) сдвинь на вектор (-5, 0) сдвинь на вектор (0, 1) КОНЕЦ


14 19 (а) (р.т.). Составить алгоритм управления Чертежником, после исполнения которого будет получен следующий рисунок: ПРОЦ квадрат НАЧАЛО опусти перо сдвинь на вектор (0, 2) сдвинь на вектор (2, 0) сдвинь на вектор (0, -2) сдвинь на вектор (-2, 0) КОНЕЦ ПРОЦ ромб НАЧАЛО опусти перо сдвинь на вектор (-1, 1) сдвинь на вектор (1, 1) сдвинь на вектор (1, -1) сдвинь на вектор (-1, -1) КОНЕЦ переведи в точку (1, 1) опусти перо ПОВТОРИТЬ 5 РАЗ квадрат подними перо сдвинь на вектор (3, 0) ромб подними перо сдвинь на вектор (1, 0) КОНЕЦ