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

Рис. 7.8. К заданию 7.35

Этап 1. Разработка приближенного варианта алгоритма

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

1.

Нарисовать квадрат, начиная с верхней вершины, и вернуться в ту же точку.

2.

Нарисовать крышу — оставшиеся стороны треугольника.

Этап 2. Разработка уточненного варианта алгоритма для среды

Опишем объект, который должна нарисовать Черепашка, в виде информационной модели (табл. 7.7).

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

Таблица 7.7.
Информационная модель объекта «Домик»

Параметр объекта

Действие объекта

Название

Значение

Длина стороны

50 шагов

Рисовать

Число сторон в основании

4

Стирать

Соотношение сторон в основании

Все стороны равны

Величина угла между сторонами основания

90°

Число сторон у крыши

2

Соотношение сторон крыши

Все стороны равны

Величине угля между сторонами крыши

60°

Цвет контура домика

Текущий

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

НЕ нашли? Не то? Что вы ищете?

Этап 3. Запись алгоритма на языке исполнителя

Представим алгоритм построения домика на языке для исполинтеля — Черепашки (табл. 7.8).

Все команды, приведенные во втором столбце табл. 7.8, выполняются в порядке записи друг за другом. Такой алгоритм называется линейным, или последовательным. На основании алгоритма, полученного во втором столбце табл. 7.8, напишем программу:

это домик

вп 50 пр 90 ал 50 пр 90

вп 50 пр 90 вп 50

пр 30 вп 50

пр 120 вл 50

конец

Таблица 7.8.
Алгоритм рисования домика в ЛОГО

Действие для достижения подцели

Команды для Черепашки

Значения параметров Черепашки и рабочего пола

Нарисовать основание

вп 50 пр 90 вп 50 пр 90 вп 50 пр 90 вп 50

Нарисован квадрат справа вниз от начального положения Черепашки. Черепашка в верхней левой вершине нарисованного квадрата, голова направлена на Север

Нарисовать крышу

пр 30 вп 50

пр 120 вп 50

Нарисована крыша над основанием. Черепашка в правой верхней вершине, голова направлена вдоль стороны крыши

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

Задания для самостоятельной работы

Задание 7.36. Дан прямоугольник со сторонами 30 и 60 шагов.

Составьте программу его рисования на рабочем поле.

Задание 7.37. Составьте программу вычисления площади прямоугольника со сторонами 30 и 60 шагов. Какую команду вы используете для вывода полученного значения в командный центр?

Задание 7.38. Какую фигуру нарисует Черепашка после выполнения следующих действий:

вперед на 30 шагов,

влево на 60°,

назад на 30 шагов,

влево на 60°,

вперед на 30 шагов?

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

Задание 7.39. Нарисуйте в тетради квадрат со стороной 100 шагов (10 клеток) и обозначьте начальное положение Черепашки — в левом нижнем углу этого квадрата, голова ее направлена на Север. Подготовьте таблицу по образцу табл. 7.7, в которой укажите параметры графического объекта «Квадрат». Опишите начальное и конечное состояния Черепашки и рабочего поля. Запишите программу построения квадрата на рабочем поле в таблице по образцу табл. 7.8. В результате выполнения программы Черепашка должна вернуться в начальное положение.

Тема 7.4 Циклический алгоритм

Выполнив задания этой темы, вы научитесь:

записывать циклический алгоритм;

рисовать равносторонний треугольник;

составлять алгоритм построения любого правильного многоугольника и окружности;

составлять алгоритм построения объектов с повторяющимися элементами.


Способ записи циклического алгоритма

Задание 7.40

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

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

1.

Переместить Черепашку в центр рабочего поля. Записать в командном центре команду вызова программы рисования квадрата. Ввести эту команду, нажав клавишу Enter. На рабочем поле будет нарисован квадрат. Черепашка вернется в начальное положение — в левый нижний угол квадрата.

2.

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

3.

Переместить Черепашку в новое начальное положение и повернуть голову направо на 30°. Затем выполнить ту же команду. На экране снова будет нарисован квадрат тех же размеров, но развернутый относительно оси Y вправо на 30°. Черепашка окажется в левом нижнем углу этого квадрата.

4.

Коней алгоритма.

Во всех пунктах задания 7.40 получался один и тот же результат при выполнении последовательного (линейного) алгоритма:

вп 100 пр 90

вп 100 пр 90

вп 100 пр 90

вп 100 пр 90

Подчеркните в этом алгоритме одинаковые команды: команду вп 100 — одинарной чертой, команду пр 90 — двойной чертой. Вы видите, что пара команд вп 100 пр 90 повторяется 4 раза.

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

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

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

В языке программирования ЛОГО для записи циклического алгоритма применяется команда повтори. В этой команде два параметра: первый задает количество повторений (условие цикла), второй — список команд, которые должны повторяться (тело цикла). С помощью команды повтори алгоритм построения квадрата можно записать короче:

повтори 4 [вп 100 пр 90]

Здесь число 4 — условие цикла, а команды вп 100 пр 90 — тело цикла. Тело цикла всегда заключается в квадратные скобки.

Задание 7.41

Введите команду:

повтори 6 [лв 45 вп 30 пр 90 вп 30 лв 45]

Черепашка нарисует зигзагообразную линию с шестью зубцами. Алгоритм создания одного зубца описан в теле цикла.

Задание 7.42

Введите команду:

повтори 4 [повтори 4 [вп 40 пр 90] лв 90]

Здесь в тело одного цикла вложен второй цикл.

Вложенный цикл описывает алгоритм рисования квадрата. В соответствии с внешним циклом Черепашка 4 раза рисует квадрат, поворачиваясь после рисования каждого на 90°. В результате вы увидите на экране большой квадрат, составленный из четырех маленьких. Длину стороны большого квадрата легко подсчитать.

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

Рис. 7.9. Построение правильного пятиугольника (а) и правильного восьмиугольника (б)

Задание 7.43

Введите команды:

вп 50 пр 60

вп 50 пр 60

вп 50 пр 60

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10