Использование вспомогательных алгоритмов 


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



ЗНАЕТЕ ЛИ ВЫ?

Использование вспомогательных алгоритмов



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

 
 
А33


алг МИР

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

надо | нарисовано слово МИР, перо поднято и расположено

| в конце слова (в начале следующей буквы)

нач

буква М

буква И

буква Р

кон

 

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

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

 

ЗАДАЧИ И УПРАЖНЕНИЯ

1. Петя записал через запятую несколько вещественных и целых чисел, по привычке поставив десятичные запятые внутри чисел. Вот что у него получилось:

а) 3,5,7; 6)7,3,5,0,1.

Сколькими способами можно прочесть эти записи, если в а) записано два числа, а количество чисел, записанных в б), неизвестно?

2. Нарисуйте результат выполнения следующего алгоритма:

А34
алг домик

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

надо | нарисован домик, перо в исходном положении

| и поднято

Нач

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

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

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

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

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

поднять перо

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

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

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

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

поднять перо

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

Кон

3. Измените алгоритм "домик" (А34) так, чтобы домик рисовался с окошком.

А35
4. Дан основной алгоритм "улица из трех домиков":

 

алг улица из трех домиков

Нач

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

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

домик

Кон

Этот алгоритм использует вспомогательный алгоритм "домик" (А34). Нарисуйте результат выполнения алгоритма А35 (полученную картинку и положение пера Чертежника).

5. Составьте алгоритм рисования улицы из шести домиков.

6. Петя зачеркнул последнюю команду сместиться на вектор (-4, -4) в алгоритме "домик" (А34). Как Коля должен изменить алгоритм "улица из трех домиков" (А35), чтобы рисовалась та же картинка, что и раньше?

7. Составьте алгоритм управления Чертежником, после выполнения, которого будут нарисованы:

а) отрезок с концами в точках (1, 2) и (-1, 1);

б) квадрат со сторонами длины 4, параллельными координатным осям, так, чтобы левый нижний угол квадрата совпадал с начальным положением пера Чертежника;

в) квадрат со сторонами длины 6, параллельными координатным осям, так, чтобы левый нижний угол квадрата совпадал с начальным положением пера Чертежника;

г) какой-нибудь отрезок длины 3, проходящий через точку (2, 2);

д) какой-нибудь квадрат со сторонами длины 2 и центром в начале координат;

е) какой-нибудь прямоугольник с длинами сторон 3 и 4, содержащий внутри себя начало координат;

ж) какой-нибудь параллелограмм.

8. Составьте алгоритм управления Чертежником, после исполнения, которого будут нарисованы:

а) инициалы полководца Кутузова;

б) ваши инициалы;

в) буква «Ф»;

г) зеркальные отражения букв «И» и «Р» относительно горизонтальной оси;

д) число 12 римскими цифрами;

е) слово «МГУ»;

ж) почтовый индекс 161110 (цифры индекса должны быть написаны как на почтовых конвертах).

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

 

Рис. 42

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

14 По образцу алгоритма "МИР" (А33) составьте алгоритмы: а) РИМ; б) МИМ.

14 Измените алгоритмы рисования букв «М», «И», «Р» так, чтобы при последовательном вызове этих алгоритмов слово «МИР» оказалось написанным:

а) с удвоенным расстоянием между буквами;

б) буквами удвоенного размера;

в) сверху вниз;

г) сверху вниз буквами удвоенного размера.

А36
13. Дан алгоритм:

алг фигура

дано | перо в начале координат и поднято

Нач

сместиться в точку (2, 1)

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

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

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

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

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

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

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

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

сместиться в точку (2, 1)

поднять перо

Кон

а) не выполняя алгоритма и не рисуя получившейся фигуры, определите, где будет расположено перо после выполнения алгоритма, будет ли оно поднято или опущено;

б) выполните алгоритм, нарисуйте получившуюся фигуру;

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

г) переделайте алгоритм так, чтобы он рисовал фигуру, симметричную первой относительно оси у;

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

 

12. Дан алгоритм:

 

А37
алг ломаная

дано | перо в начале координат и поднято

Нач

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

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

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

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

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

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

сместиться на вектор (1, -2)

сместиться на вектор (1, -3)

поднять перо

Кон

Не выполняя алгоритма и не рисуя получившейся ломаной, определите:

а) будет перо после выполнения поднято или опущено;

б) координату х конечного положения пера;

в) координату у конечного положения пера;

г) будет ли ломаная замкнута;

д) расстояние между концами ломаной.

Нарисуйте ломаную, проверьте ваши ответы.

15. Составьте алгоритм управления Чертежником, после исполнения, которого будет нарисован квадрат 4x4, заштрихованный горизонтальными и (или) вертикальными линиями на рисунке 43 (расстояние между линиями равно 0,4).

 

Рис. 43

 

Алгоритмы с аргументами

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

 

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

А как быть, если нужно рисовать много разных квадратов с разными длинами сторон? Можно, конечно, составить множество похожих алгоритмов, но делать этого очень не хочется! Было бы намного удобнее создать единый алгоритм-образец, в который компьютер сам подставлял бы каждый раз нужные числа.

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

 
 
А38


алг квадрат (арг вещ а)

дано | перо Чертежника в левом нижнем углу будущего

| квадрата и поднято

надо | нарисован квадрат с длиной стороны а, перо Чертежника

| в исходной точке и поднято

Нач

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

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

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

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

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

поднять перо

кон

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

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

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

 



Поделиться:


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

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