Задачи и упражнения к §13 Команды с аргументами
1. Петя записал через запятую несколько вещественных и целых чисел, по привычке поставив десятичные запятые внутри чисел. Вот что у него получилось:
а) 3,5,7; 6)7,3,5,0,1.
Сколькими способами можно прочесть эти записи, если в а) записано два числа, а количество чисел, записанных в б) неизвестно?
2. Нарисуйте результат выполнения следующего алгоритма:
алг домик
дано | перо поднято
надо | нарисован домик, перо в исходном положении и поднято
нач
опустить перо
сместиться на вектор (4, 0)
сместиться на вектор (0, 4)
сместиться на вектор (-4,0)
сместиться на вектор (0,-4)
поднять перо
сместиться на вектор (Q, 4)
опустить перо
сместиться на вектор (2, 2)
сместиться на вектор (2, -2)
поднять перо
сместиться на вектор (-4, -4)
кон
3. Измените алгоритм "домик" так, чтобы домик рисовался с окошком.
4. Дан основной алгоритм "улица из трех домиков":
алг улица из трех домиков
нач
домик; сместиться на вектор (6, 0)
домик; сместиться на вектор (6, 0)
домик
кон
Этот алгоритм использует вспомогательный алгоритм "домик". Нарисуйте результат выполнения алгоритма улица из трех домиков (полученную картинку и положение пера Чертежника).
5. Составьте алгоритм рисования улицы из шести домиков.
6. Петя зачеркнул последнюю команду сместиться на вектор (-4, -4) в алгоритме "домик". Как Коля должен изменить алгоритм "улица из трех домиков", чтобы рисовалась та же картинка, что и раньше?
7. Составьте алгоритм управления Чертежником, после выполнения которого будут нарисованы:
а) отрезок с концами в точках (1, 2) и (-1, 1);
б) квадрат со сторонами длины 4, параллельными координатным осям, так, чтобы левый нижний угол квадрата совпадал с начальным положением пера Чертежника;
в) квадрат со сторонами длины 6, параллельными координатным осям, так, чтобы левый нижний угол квадрата совпадал с начальным положением пера Чертежника;
г) какой-нибудь отрезок длины 3, проходящий через точку (2, 2);
д) какой-нибудь квадрат со сторонами длины 2 и центром в начале координат;
е) какой-нибудь прямоугольник с длинами сторон 3 и 4, содержащий внутри себя начало координат;
ж) какой-нибудь параллелограмм.
8. Составьте алгоритм управления Чертежником, после исполнения которого будут нарисованы:
а) инициалы полководца Кутузова;
б) ваши инициалы;
в) буква «Ф»;
г) зеркальные отражения букв «И» и «Р» относительно горизонтальной оси;
д) число 12 римскими цифрами;
е) слово «МГУ»;
ж) почтовый индекс 161110 (цифры индекса должны быть написаны как на почтовых конвертах).
9. Составьте алгоритм для рисования фигур, изображенных на рисунке 58, так, чтобы в процессе рисования перо не отрывалось от бумаги и ни одна линия не проводилась дважды.
10. Составьте десять алгоритмов для изображения десяти цифр почтового индекса так, чтобы при их последовательном вызове цифры рисовались друг за другом. Используя эти алгоритмы как вспомогательные, напишите ваш почтовый индекс.
11. По образцу алгоритма "МИР" (А39) составьте алгоритмы: а) РИМ;
б) МИМ.
12. Измените алгоритмы рисования букв «М», «И», «Р» так, чтобы при последовательном вызове этих алгоритмов слово «МИР» оказалось написанным:
а) с удвоенным расстоянием между буквами;
б) буквами удвоенного размера;
в) сверху вниз;
г) сверху вниз буквами удвоенного размера.
13. Дан алгоритм :
алг фигура
дано | перо в начале координат и поднято
нач
сместиться в точку (2, 1)
опустить перо
сместиться на вектор (0, 3) •
сместиться на вектор (1, 0)
сместиться на вектор (0, -1)
сместиться на вектор (1,0)
сместиться на вектор (0,-1)
сместиться на вектор («1, 0)
сместиться на вектор (0,-1)
сместиться в точку (2, 1)
поднять перо
кон
а) не выполняя алгоритма и не рисуя получившейся фигуры, определите, где будет расположено перо после выполнения алгоритма, будет ли оно поднято или опущено;
б) выполните алгоритм, нарисуйте получившуюся фигуру;
в) переделайте алгоритм так, чтобы он рисовал где-нибудь на плоскости фигуру вдвое большего размера;
г) переделайте алгоритм так, чтобы он рисовал фигуру, симметричную первой относительно оси у;
д) определите, что будет нарисовано, если в алгоритме изменить знаки всех аргументов на противоположные.
14. Дан алгоритм:
алг ломаная
дано | перо в начале координат и поднято
нач
опустить перо
сместиться на вектор (1,3)
сместиться на вектор (1, 2)
сместиться на вектор (1,1)
сместиться на вектор (1, 0)
сместиться на вектор (1, -1)
сместиться на вектор (1, -2)
сместиться на вектор (1, -3)
поднять перо
кон
Не выполняя алгоритма и не рисуя получившейся ломаной, определите:
а) будет перо после выполнения поднято или опущено;
б) координату х конечного положения пера;
в) координату у конечного положения пера;
г) будет ли ломаная замкнута;
д) расстояние между концами ломаной. Нарисуйте ломаную, проверьте ваши ответы.
15. Составьте алгоритм управления Чертежником, после исполнения которого будет нарисован квадрат 4х4, заштрихованный горизонтальными и (или) вертикальными линиями на рисунке 59 (расстояние между линиями равно 0,4).
1. Какую последовательность команд выполнит Чертежник и что будет нарисовано при вызовах: а) квадрат (0); б) квадрат (-1)?
2. Составьте алгоритм "прямоугольник(аргвещ х, у, а, b)", который рисует прямо-'" угольник с длинами сторон а и b, начиная и заканчивая в углу — точке (х, у) (рис. 62).
3. Используя алгоритм "прямоугольник"
(упр. 2), составьте алгоритмы рисования робота и собачки(рис. 63).
4. Составьте алгоритмы рисования схем (рис. 64).
5. Придумайте какую-нибудь картинку, составленную из прямоугольников. Напишите алгоритм для рисования этой картинки.
6. Сколько клеток будет закрашено и сколько команд компьютер выдаст Роботу при выполнении вызова:
а) закрасить прямоугольник (1, 1);
б) закрасить прямоугольник (0, 11);
в) закрасить прямоугольник (9, 0);
г) закрасить прямоугольник (9, 11)?
7. Опишите, как будет выполняться вызов "закрасить прямоугольник (3, З)" в ситуациях, изображенных на рисунке 65.
8. Измените алгоритмы "закрасить ряд" и "закрасить прямоугольник" так, чтобы при вызове "закрасить прямоугольник (3, З)" в ситуации на рисунке 65, (б) отказа не возникало, а оказался закрашенным квадрат 3х3 клетки.
9. Нарисуйте результат выполнения алгоритма:
а)алг тоннель
нач
квадрат (10); сместиться на вектор (1, 1)
квадрат (7); сместиться на вектор (1, 1)
квадрат (4); сместиться на вектор (1, 1)
квадрат(1)
кон
б)алг спираль
нач
опустить перо
виток (1); виток (3); виток (5); виток (7); виток (9)
поднять перо
кон
алг виток(арг вещ а)
нач
сместиться на вектор (а, 0)
сместиться на вектор (0, -а)
сместиться на вектор (-а -1,0)
сместиться на вектор (0, а + 1)
кон
10. Что нарисует Чертежник при выполнении алгоритма "спираль" (А50), если в алгоритме "виток" (А51) всюду заменить 1 на 2?
11. Измените алгоритм "виток" (А51) так, чтобы спираль в алгоритме А50 раскручивалась против часовой стрелки.
12. Составьте алгоритм рисования спирали, изображенной на рисунке 66.
13. Измените ваше решение упражнения 12 так, чтобы расстояние между витками при каждом новом витке увеличивалось.
14. Нарисуйте результат выполнения алгоритма "орнамент":
алг орнамент
дано | перо Чертежника в левом верхнем углу будущего орнамента размером 12х12 и поднято
надо | нарисован орнамент, перо в левом нижнем углу и поднято
нач
ряд; ряд; ряд
кон
алг ряд
дано | перо Чертежника в левом верхнем углу будущего ряда размером 12х4 и поднято
надо | нарисован ряд, перо в левом нижнем углу ряда и поднято
нач
фрагмент; фрагмент; фрагмент сместиться на вектор (-12, -4)
кон
алг фрагмент
дано | перо Чертежника в левом верхнем углу будущего фрагмента размером 4х4 и поднято
надо | нарисован фрагмент, перо в правом верхнем углу и поднято
нач
опустить перо
сместиться на вектор (2, -2)
сместиться на вектор (-2, -2)
поднять перо; сместиться на вектор (4, 0); опустить перо
сместиться на вектор (0, 1)
сместиться на вектор (-2, 0)
сместиться на вектор (0, 2)
сместиться на вектор (2, 0)
сместиться на вектор (0, 1)
поднять перо
кон
15. По образцу упражнения 14 составьте алгоритмы рисования орнаментов (рис. 67).
16. Составьте алгоритм "горизонтальная ломаная(арг цел п,арг вещ а)", рисующий с помощью Чертежника ломаную линию с 2n звеньями, показанную на рисунке 68.
17. Составьте алгоритм "вертикальная ломаная(арг цел п,арг вещ а)", рисующий ломаную из упражнения 16, повернутую вокруг начального положения пера на 900 по часовой стрелке.
18. Используя алгоритмы из упражнений 16 и 17 как вспомогательные, составьте алгоритмы, рисующие:
а) m горизонтальных ломаных с 2n звеньями одна под другой на расстоянии b друг от друга;
б) m вертикальных ломаных с 2n звеньями одна под другой на расстоянии b друг от друга.
19. Компьютер выполнил последовательность команд:
горизонтальная ломаная(5, 1) вертикальная ломаная (7,1) горизонтальная ломаная (5, -1) вертикальная ломаная (7, -1)
Что нарисовал Чертежник?
20. Составьте алгоритм с целыми аргументами m и n, который с помощью Робота закрашивает клетки, отмеченные на рисунке 69.