Алгоритм квадрата и треугольника

Алгоритм квадрата и треугольника

Для каждого проекта:

  • создайте полное ТЗ (на базе ТЗ , приведённого для первого задания);
  • при необходимости создайте спрайты, сцену, подготовьте музыкальные фрагменты;
  • составьте скрипты;
  • проверьте работу проекта;
  • сохраните проект на диске.

При необходимости пользуйтесь правилами копирования объектов из одного проекта в другой.

  1. Т-узоры ( по 1 куку за вариант ). Собрать программу, которая создавала бы узоры с помощью процедуры, рисующей букву Т.

Процедура T должна начать рисование «шапочки» по текущему направлению , а закончить рисование в нижней части «ножки« с направлением по «шапочке»:

Программа должна запускаться зелёным флажком и реагировать на клавиши 1–6. Описание узоров приводится в таблице.

СобытиеЧто на сценеКомментарий
Нажатие на зелёный флажок выводит на экран инструкцию по работе с программой.
Базовый узор в виде буквы Т.
Повторить рисование Т четыре раза.
Повторить рисование Т четыре раза со сдвигом вправо на половину длины «шапочки».
Повторить рисование Т десять раз с поворотом на 10&deg.
Получить узор, как на рисунке.
Получить узор, как на рисунке.

Для каждого из вариантов 3–6 создаём процедуру перехода (поворота), которая вместе с процедурой Т обеспечит нужный рисунок (при повторении этих двух процедур).

Примерные параметры пера:

Удобная начальная точка: (–200, 100).

Решение сохранить под именем Т узоры .

Рисование лесенки ( 3 кука )
— А сможешь ли ты нарисовать лесенку? — спросили Кота .

— Легко! — ответил усатый. — Я смогу нарисовать её даже кончиком своего хвоста!

Кот сдержал обещание: нарисовал лесенку и, действительно, кончиком своего хвоста:

Напишите и вы такую программу.

Центр спрайта сместите на кончик хвоста во встроенном графическом редакторе.

Решение сохраните под именем Лесенка .

Рисование и прохождение лесенки ( 4 кука , идея: Егоров Миша , 4 класс, Тверь)
Кот показал себя не только хорошим рисовальщиком, но и волшебником: сначала он нарисовал лесенку (как в предыдущем проекте), а затем спустился по нарисованному:

Видео выполненного проекта можно посмотреть по адресу: practical/01/unit03/

Повторите подвиг Кота в своей программе.

Решение сохраните под именем Лесенка1 .

Правильные многоугольники ( 4 кука ). Поставим задачу: научить исполнителя рисовать правильные многоугольники:

Видео выполненного проекта можно посмотреть по адресу: practical/01/unit03/

Решение сохранить под именем Многоугольники .

Мы уже строили правильный треугольник и квадрат. Попробуем обобщить эти опыты на построение произвольного правильного многоугольника.

Вспомним алгоритмы построения этих фигур:

  1. Рисуем сторону
  2. Поворачиваемся на 120°

  1. Рисуем сторону
  2. Поворачиваемся на 90°

Заметим, что после всех поворотов исполнитель оказывается установленным в прежнем направлении. Это означает, что в сумме все повороты составляют 360° !

Так как углы всех поворотов равны, то получается, что для построения N-угольника нужно после прорисовки каждой стороны поворачиваться на угол равный 360/N .

Получаем универсальный алгоритм построения правильного N-угольника:

  1. Рисуем сторону
  2. Поворачиваемся на 360/N°

В частности, имеем:

ТреугольникКвадрат

  1. Рисуем сторону
  2. Поворачиваемся на 72°

  1. Рисуем сторону
  2. Поворачиваемся на 60°

Кукарача высказал по этому проекту два интересных замечания.

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

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

Как нарисовать окружность . А если вершин у правильного многоугольника будет очень много? Тогда все точки описанной окружности будут вершинами многоугольника, и многоугольник не будет отличаться от окружности! Такое возможно на экране компьютера, где количество точек-пикселей ограничено. Попробуйте нарисовать окружность при помощи правильного многоугольника с 360 углами и стороной равной 1 .

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

Программа должна запускаться зелёным флажком и реагировать на клавиши 1–7. Описание узоров приводится в таблице.

ПятиугольникШестиугольник
СобытиеЧто на сценеКомментарий
Базовая фигура . Нажатие на зелёный флажок выводит на экран базовую фигуру (треугольник) и инструкцию по работе с программой.

Размер стороны треугольника: 50 .

Базовый узор . Получается поворотом базовой фигуры, 36 раз по 10° против часовой стрелки.
Два базовых узора на концах отрезка прямой длины 150 .
Три базовых узора в вершинах равностороннего треугольника с длиной стороны 150 .
Четыре базовых узора в вершинах квадрата с длиной стороны 150 .
Пять базовых узора в вершинах правильного пятиугольника с длиной стороны 150 .
Шесть базовых узора в вершинах правильного шестиугольника с длиной стороны 50 .
Используя базовый, получить узор такой, как на рисунке.

Начальная точка: (–50, –50).

Для быстрого рисования фигур можно в меню приложения Скретч включить Турбо режим :

Решение сохранить под именем Треугольные узоры .

Тетрадь в линейку ( 3 кука ). Перед новым учебным годом в роботландскую типографию поступил заказ на тетради в линейку. Помогите роботландцам создать макет тетрадного листа.

Видео выполненного проекта можно посмотреть по адресу: practical/01/unit03/

Этап ТЗСодержание
1Название проектаТетрадь в линейку
2Идея проектаСоздать макет тетради в линейку согласно следующему эскизу:

3Сценарий проектаУстановить исполнителя на начало первой линии (слева, снизу). Затем рисовать линии снизу вверх
4СредаИзначально белый фон
5СпрайтыКарандаш из библиотеки. Центр спрайта сместить на кончик карандаша во встроенном графическом редакторе:

6ИнтерфейсПриложение запускается по зелёному флажку, никаких взаимодействий с пользователем не предусматривается
7Идея алгоритмаРисовать линии в цикле. Тело цикла должно содержать: рисование линии, возврат в начальную точку, смещение вверх к началу следующей линии
8АлгоритмОписан отдельно за таблицей

  1. Подготовка
  2. Повторить 15 раз:
    1. Линия вправо
    2. Возврат влево (с поднятым пером)
    3. На строку выше
  3. Линия вправо
  4. Возврат влево (с поднятым пером)

Скрипт, соответствующий этому алгоритму, может быть таким:

Процедура Подготовка должна сделать следующее.

  • Установить исполнителя в начальное положение (на начало первой снизу линии).
  • Установить стиль вращения «не вращать» .
  • Очистить сцену.
  • Установить размер пера в 1 .
  • Установить синий цвет пера.

Решение сохранить под именем Тетрадь в линейку .

Палитра цветов Пера ( 4 кука ). Создайте на сцене Скретча палитру цветов Пера .

Видео выполненного проекта можно посмотреть по адресу: practical/01/unit03/

В Скретч цвет Пера можно задать командой . Число N меняется от 0 до 200 .

Получается, что цвет можно обозначать числом. Хотелось бы увидеть весь набор этих числовых цветов от 0 до 200 !

Создайте палитру, в которой каждый цвет от 0 до 200 будет занимать полоску шириной 2 и высотой 200 . При этом вся палитра будет представлять собой прямоугольник размером 400×200 :

Постановка задачи порождает следующий план решения:

  1. Подготовить сцену и исполнитель.
  2. Нарисовать прямоугольник цветовыми полосками.
  3. Завершить работу (спрятать исполнитель).

Уточняем этот план в виде более точного алгоритма:

  1. Подготовка
  2. Повторить 200 раз:
    1. Рисуем прямую вниз
    2. Возвращаемся вверх
    3. Смещаемся вправо на 2
    4. Меняем цвет пера на 1
  3. Завершение

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

— В каких из этих процедурах нужно поднимать и опускать перо? — спросил Лисёнок .

Кукарача ответил так.

— Перо опускается перед началом рисования и поднимается в конце рисования. Среди всех запланированных процедур только одна рисовальная — Рисуем прямую вниз . Значит, опускать перо надо в начале этой процедуры, а поднимать — в конце.

Процедура Подготовка должна сделать следующее.

  • Установить исполнителя в начальное положение.
  • Показать его.
  • Установить стиль вращения «не вращать» .
  • Очистить сцену.
  • Установить размер пера в 2 .
  • Установить цвет пера в 0 .

Процедура Завершение должна:

Решение сохранить под именем Палитра цветов Пера .

Тетрадь в клетку ( 5 кук ). В роботландскую типографию поступил новый заказ, на этот раз на тетради в клетку. Помогите роботландцам создать макет тетрадного листа.

Видео выполненного проекта можно посмотреть по адресу: practical/01/unit03/

Видео:Периметр треугольника. Как найти периметр треугольника?Скачать

Периметр треугольника. Как найти периметр треугольника?

Алгоритм квадрата и треугольника

Тема 7.1 Знакомство с основным инструментарием среды

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

вводить команды на языке ЛОГО;
измерять и изменять значения параметров объекта;
производить вычисления.

Интерфейс среды программирования

Каждая программа для компьютера разрабатывается на одном из специальных языков — языков программирования. В этом разделе вы познакомитесь с языком ЛОГО. Название ЛОГО образовано от древнегреческого слова logos , которое означает мысль , слово .

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

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

Команда — это предложение на языке программирования для указания действия объекту.

Правило записи команды: на первом месте пишется название команды, а затем указываются ее параметры.

Параметр команды — это слово, число или выражение, уточняющее действие команды.

Интерфейс программной среды ЛОГО состоит из трех окон: paбочего поля , командного центра (поля команд) и листа программ . После загрузки приложения ЛОГО на экране появляются два окна — командный центр и рабочее поле.

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

Договоримся называть верхнюю границу рабочего поля Севером, нижнюю границу — Югом, правую — Востоком, а левую — Западом. Обычно после загрузки нового листа Черепашка находится в центре рабочего поля, и голова ее направлена на Север.

Командный центр служит для ввода команд Черепашке на языке ЛОГО.

Команды для графического исполнителя

Черепашка является исполнителем для создания графических объектов на рабочем поле. Посмотрите внимательно команды языка ЛОГО для управления Черепашкой (табл. 7.1). Для некоторых команд принята краткая форма.

По правилам оформления и результату действия команда в краткой форме записи ничем не отличается от команды в полной форме.

Расстояние на рабочем поле измеряется в шагах Черепашки. Один шаг равен одному пикселу. Угол поворота головы Черепашки измеряется в градусах.

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

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

Обратите внимание: один шаг Черепашки равен одному пикселу.

Команды домой , по , пп , сотри состоят только из названия, а команды вперед и назад требуют указания параметра — количества шагов. Если в команде, требующей параметра, не указать его, то в командном центре появится сообщение об ошибке.

Таблица 7.1.
Графические команды

Поворачивается по часовой стрелке относительно Севера

Название команды и краткая формаПараметр Действие исполнителя
вперед. впчисло шаговПродвигается в направлении головы на указанное число шагов
назад. ндчисло шаговПродвигается в направлении, противоположном направлению головы, на указанное число шагов
нов_хчисло шагов от оси XПеремещается по горизонтали в точку с указанной координатой по оси X (абсциссой)
нов_учисло шагов от оси YПеремещается по вертикали в точку с указанной координатой по оси Y (ординатой)
сотринетСтирает рисунок, состояние Черепашки сохраняется
домойнетУстанавливается в центр рабочего поля, голова направлена на Север
ппнетПоднимает перо
пономер цветаОпускает перо
нов_цвет, нцномер цветаПринимает цвет с указанным номером
нов_фон, нфнетРабочее поле принимает цвет с указанным номером
счнетСтановится невидимым
пччисло градусовСтановится видимым
направо, прчисло градусовПоворачивается направо относительно направления, заданного головой черепашки
налево, лвчисло градусовПоворачивается налево относительно направления, заданного головой черепашки
нов_курс, нкчисло градусов
    Запомните правила записи команд:
  • Правило точного названия. Название команды должно быть записано без ошибок — точно как в словаре.
  • Правило одного слова. Между буквами в названии команды не должно быть пробелов.
  • Правило пробела. Если в команде есть параметр, то он отделяется от названия пробелом. Если в одной строке записывается несколько команд, то они разделяются пробелами.

Используя команду нов_х . определите расстояние от центра до границ видимого рабочего поля по горизонтали.

При выполнении заданий 7.1 и 7.2 Черепашка перемещалась по рабочему полю, но направление ее головы не изменялось.

Введите команды, каждую на своей строке:

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

    Вспомните, что такое угол и как он измеряется. Что такое прямой угол, развернутый угол, полный угол?

Задание 7.4

Верните Черепашку «домой». Наберите в командном центре приведенную ниже последовательность команд (по три в каждой строке). Команды отделите друг от друга пробелом. Какая фигура появилась на рабочем поле? Где оказалась Черепашка?

по вперед 50 направо 90

вперед 50 направо 90 вперед 50

направо 90 вперед 50 направо 90

Вычисления на компьютере

В среде программирования ЛОГО можно не только рисовать графические объекты, но и вычислять значения математических выражений. Математическое выражение используется как параметр в любой команде, где требуется число. Для изменения порядка вычислений в математическом выражении в языке ЛОГО, как и в математике, применяются круглые скобки.

В среде ЛОГО допустимы целые и дробные числа. Дробная часть числа записывается в десятичном виде и отделяется от целой части точкой.

Обозначения арифметических действий и некоторых математических операций в языке ЛОГО приведены в табл. 7.2.

Таблица 7.2.
Основные арифметические действия и математические функции

ДействиеОбозначение в ЛОГОПример записи Результат
Сложение+5 + 27
Вычитание–25 – 1015
Умножение*25 * 12300
Деление/121 / 1111
Получение случайного числаслучайный (сл)сл 100число в интервале от 0 до 99
Вычисление остатка от деленияостатокостаток 100 164
Получение целой части числацелоецелое 13.34513
Получение числа с противоположным знакомминусминус 567–567
Округление числаокруглиокругли 256,56257

Задание 7.5

Черепашка должна нарисовать отрезок длиной 150 шагов, а затем встать на середину этого отрезка. Запишите последовательность действий Черепашки.

вп 150 нд 150 / 2

Черепашка окажется точно посередине нарисованного отрезка. Дли вывода на экран результата вычисления или текстовых данных используются команды вывода текста (табл. 7.3).

Таблица 7.3.
Команды вывода на экран

Название команды Результат исполнения
пишиУказанный текст или число выводится в текстовое окно на рабочем поле
покажиУказанный текст или число выводится в командном центре

Задание 7.6

Выведите в текстовом окне надпись: «Решение примера: 25 + 27» и результат вычисления указанной суммы.

пиши [Решение примера: 25 + 27]

Информационная модель среды ЛОГО

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

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

Так как и Черепашка, и рабочее поле являются объектами, для них, как и для любого объекта, можно составить информационные модели (табл. 7.4 и 7.5).

Таблица 7.4.
Информационная модель объекта «Черепашка»

Параметр объектаНазвание датчика в ЛОГОДействие объекта
Название Значения
Положение на Рабочем поле[0 0], [100 125]х_коор у_коор местоПередвижение по рабочему полю
Направление головы0, 90, 270курсПоворот
Состояние пераподнято, опущенонетИзменение состояния пера
Цвет1, 15, голубойцветИзменение своего цвета
Видимостьвидима, невидиманетПоказаться/спрятаться

Таблица 7.5.
Информационная модель объекта «Рабочее поле»

Параметр объектаНазвание датчика в ЛОГОДействие над объектом
НазваниеЗначения
Цвет фона0, белый, 15фонИзменение цвета фона
Цвет поля под пером Черепашки0, черный. 45цвет_поля, цпЗакрашивание фигур, ограниченных контуром

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

Задание 7.7. Нарисуйте пунктирную тропинку, состоящую из трех отрезков длиной по 20 шагов каждый с расстояниями между ними тоже по 20 шагов. Перепишите команды из командного центра в тетрадь и нарисуйте полученную тропинку (допустим, что сторона одной тетрадной клетки — 10 шагов Черепашки).

Задание 7.8. Наберите в одной строке командного центра указанные ниже команды:

сотри по вп 50 пр 90 вп 50 пр 90 вп 50 пр 90 вп 50 домой

Задание 7.9. Используя команды вперед и направо , установите Черепашку около самой границы рабочего ноля в положения, показанные на рис. 7.1. Для каждого варианта ответьте на вопрос: где окажется Черепашка после выполнения команды по вп 100 ?

Рис. 7.1. К заданию 7.9

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

Рис. 7.2. К заданию 7.10

Задание 7.11. Какие графические объекты нарисует Черепашка, выполняя последовательности команд а), б), в), если перед их выполнением она смотрела на Север? Перепишите команды в тетрадь, используя сокращенную форму записи. Нарисуйте эти фигуры в тетради.

а) по назад 40 направо 90 вперед 80 налево 90

вперед 40 направо 90 назад 80 налево 90 пп домой

б) сотри по направо 90 вперед 40 налево 90

вперед 40 направо 90 вперед 40 пп домой

в) сотри по назад 100 направо 90 вперед 40

налево 90 вперед 100 назад 100 направо 90

вперед 10 направо 90 вперед 5 пп домой

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

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

Рис. 7.3. К заданию 7.13
Рис. 7.4. К заданию 7.14

Задание 7.14. Какие команды должна выполнить Черепашка, чтобы на рабочем поле появились узоры, изображенные на рис. 7.4? (Будем считать, что одна клетка на рисунке равна 10 шагам Черепашки.)

Задание 7.15. Вы знаете, что на почтовых конвертах необходимо указывать индекс получателя письма. Сортировку писем по почтовым индексам выполняют специальные машина «узнавать» цифры. Поэтому для изображения этих цифр выработаны определенные правила. Вы видите их на рис. 7.5. Размеры отрезков указаны в шагах Черепашки.

Рис. 7.5. Начертание цифр почтового индекса (к заданно 7.15)

Каждая цифра изображается в прямоугольнике со сторонами 40 на 80 шагов. Будем считать, что перед рисованием цифры Черепашка находится в левом нижнем углу этого прямоугольника.

Запишите в тетрадь последовательности команд, следуя которым Черепашка могла бы нарисовать каждую цифру почтового индекса.

Задание 7.16. С помощью команды покажи выведите значения следующих дробей: 1/2; 1/5; 1/3; 1/6; 1/9. Сколько знаков десятичной дроби получилось в каждом случае?

Задание 7.17. С помощью команды покажи выведите в командный центр значение суммы частного от деления числа 200 на число 8 и разности чисел 50 и 211.

Задание 7.18. Установите Черепашке цвет с номером на 10 большим, чем текущий. Выведите в командный центр значения абсциссы и ординаты Черепашки в текущем положении.

Задание 7.19. Используя команды нов_х и нов_у , переместите Черепашку по горизонтали и по вертикали на случайные расстояния. Введите в командный центр значения абсциссы и ординаты Черепашки в текущем положении.

Задание 7.20. Опишите любым способом алгоритм вычисления площади прямоугольника.

Видео:Метод выделения полного квадрата. 8 класс.Скачать

Метод выделения полного квадрата. 8 класс.

Тема 7.2 Понятие программы

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

разрабатывать алгоритм для исполнителя;
записывать и редактировать текст алгоритма;
оформлять алгоритм в виде программы;
выполнить программы, записанные на листе программ.

Рассмотрим порядок разработки алгоритма и программы на примере создания графических объектов — цифр 0 и 1.

Разработайте алгоритм рисования цифры 0 в соответствии с рис. 7.5.

При выполнении задания рассмотрим три этапа создания алгоритма (см. учебник).

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

Определим цель разработки алгоритма — создание графического объекта в виде прямоугольника высотой 80 шагов и шириной 40 шагов. Начальное положение — левая нижняя вершина. Составим для себя следующий план действий:

1.Установить графический указатель в начальное положение.
2.Нарисовать прямоугольник, начав с левой нижней вершины.
3.Установить графический указатель в исходное положение.
Этап 2. Разработка уточненного варианта алгоритма для среды

Цифру 0 будет рисовать исполнитель Черепашка на рабочем поле. Поэтому следует уточнить разработанный на первом этапе алгоритм для этого исполнителя, используя действия, которые допустимы в среде ЛОГО:

1.Опустить перо.
2.Нарисовать левую сторону прямоугольника.
3.Изменить направление движения — направо на 90°.
4.Нарисовать верхнюю сторону прямоугольника.
5.Изменить направление движения — направо на 90°.
6.Нарисовать правую сторону прямоугольника.
7.Изменить направление движения — направо на 90°.
8.Нарисовать нижнюю сторону прямоугольника.
9.Изменить направление движения — направо на 90°.
Этап 3. Запись алгоритма на языке Исполнителя

Чтобы исполнитель понял этот алгоритм, нужно записать его на понятном исполнителю языке:

вперед 80 направо 90

вперед 40 направо 90

вперед 80 направо 90

вперед 40 направо 90

После выполнения этих команд на рабочем поле будет нарисован прямоугольник, а Черепашка окажется в исходном положении. Такая последовательность команд для достижения поставленной цели будет алгоритмом на языке ЛОГО .

Выполните более сложную задачу нарисуйте цифру 1 в соответствии с рис. 7.5. Этот графический объект должен быть нарисован в прямоугольнике. Составьте алгоритм рисования по этапам так же, как это сделано в задании 7.21.

Этап 1. Разработка приближенного варианта алгоритма
1.Выбрать начальное положение — середину левой стороны прямоугольника.
2.Установить Черепашку в начальное положение.
3.Соединить отрезком начальную точку и правую верхнюю вершину прямоугольника.
4.Нарисовать правую сторону прямоугольника.
Этапы 2 и 3. Разработка уточненного варианта алгоритма для среды. Запись алгоритма на языке исполнителя

Уточним алгоритм для исполнителя, наметив промежуточные цели (подцели). Для этого разделим графический объект на фрагменты и составим алгоритм рисования каждого фрагмента на языке ЛОГО (табл. 7.6).

Действия, перечисленные в первой графе табл. 7.6, уточняют разработанный на первом этапе алгоритм рисования цифры 1 для исполнителя — Черепашки. Во второй графе тот же алгоритм представлен в виде команд, которые можно ввести центр и выполнить.

Таблица 7.6.
Алгоритм рисования цифры 1

Действия для достижения подцелиКоманды для Черепашки Значения параметров Черепашки и рабочего поля после выполнения команд
Нарисовать первый фрагментпп вп 40 пр 45 по вп 60Черепашка в правом верхнем углу прямоугольника, голова повернута на 45° вправо относительно Севера. Нарисован первый фрагмент
Нарисовать второй фрагментпр 135 вп 80Черепашка в правом нижнем углу прямоугольника, голова смотрит на Юг. Нарисована цифра 1
Вернуться в начальное положениепр 90 пп вп 40 пр 90Черепашка в левом нижнем углу прямоугольник а, голова смотрит на Север. Перо поднято. Нарисована цифра 1

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

После окончания сеанса работы в среде ЛОГО информация в командном центре не сохраняется. На следующем сеансе для построения уже известных объектов придется снова набирать команды.

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

Содержимое рабочего поля и листа программ сохраняется в файле.

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

Рассмотрим подробнее, как создавать программу.

Сначала вы формируете цель, описывая параметры объекта и создавая информационную модель. Затем разрабатываете алгоритм его рисования по этапам.

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

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

Любой алгоритм предназначен для решения определенной задачи. Каждый новый алгоритм, записанный на листе программ и получивший имя , становится программой . Таким образом пополняется набор инструментов исполнителя в среде ЛОГО.

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

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

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

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

    В любой среде программирования существуют строгие правила оформления программы:
  • Программа имеет заголовок, в котором указано ее имя.
  • Программа содержит тело, в котором на языке программирования описан алгоритм.
  • Программа имеет конец, который является признаком завершения текста программы.

В среде программирования ЛОГО эти правила выполняются следующим образом:

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

Имя программы не должно содержать пробелов. Имя программы не должно совпадать ни с одним встроенным словом языка ЛОГО. Одинаковые имена разных программ приводят к путанице. Ниже представлены примеры правильных заголовков:

Так как алгоритм составляется для определенного действия, то ему принято давать имя, говорящее о результате выполнения программы. Например, по имени программы кораблик можно догадаться, что эта программа рисует кораблик, a house — дом. Имя jkl не говорит ни о чем, и понять, для чего предназначена программа с таким именем, невозможно.

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

Примеры правильно оформленных программ:

а) программа рисования цифры 0 (см. задание 7.21):

по вперед 80 направо 90 вперед 40 направо 90

вперед 80 направо 90 вперед 40 направо 90

б) программа рисования цифры 1 (см. табл. 7.6):

пп вперед 40 направо 45 по вперед 60

направо 135 вперед 80

направо 90 пп вперед 40 направо 90

Записав программу на листе программ, вы пополнили словарь ЛОГО новым словом — именем программы, например цифра_0 или цифра_1 . Теперь это слово можно ввести в командном центре или применить его в другой программе как команду.

Для вызова программы в командном центре или в теле другой программы используется только имя этой программы (без слова это ).

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

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

Задание 7.23. Откройте лист программ. Наберите текст программы рисования цифры 0 ( цифра_0 ). Закройте лист программ и убедитесь, что в командном центре не появилось сообщение об ошибке. Если обнаружена ошибка, снова откройте лист программ. найдите и исправьте ошибку и снова закройте лист программ. Если ошибок нет, выполните команду цифра_0 . введя это имя в командном центре. На рабочем поле должна появиться цифра 0.

Задание 7.24. Запишите алгоритмы для рисования остальных цифр почтового индекса в виде программ в среде ЛОГО.

Задание 7.25. Составьте алгоритмы рисования фигур, приведенных на рис. 7.6. Для выполнения этого задания подготовьте в тетради рисунки, отметьте на них начальное положение Черепашки и промежуточные цели. Числа на рисунках указывают размер отмеченных углов в градусах. Размеры других углов рассчитайте или подберите сами. Размеры отрезков произвольны.

Рис. 7.6. К заданию 7.25

Задание 7.26. Придумайте и нарисуйте в тетради лабиринт. Опишите алгоритм рисования этого лабиринта для Черепашки. Затем, задав начальное положение Черепашки — у входа, «объясните» ей, как проходить лабиринт.

Задание 7.27. Вы должны объяснить человеку, не знающему русского языка, как приготовить яичницу. Изобразите этот алгоритм в тетради с помощью рисунков, расположенных в определенном порядке. Может ли Черепашка выполнить ваш алгоритм?

Задание 7.28. Опишите двумя способами (на русском языке и на языке математических символов) алгоритм получения суммы частного от деления числа 200 на число 8 и разности чисел 211 и 50.

Задание 7.29. Запишите на листе программ программу рисования буквы «П». Введите в командном центре команду буква_п .

по вп 80 пр 90 вп 40 пр 90 вп 80 пр 180 пп

Задание 7.30. Запишите на листе программ программу рисования бантика:

по вп 40 пр 120 вп 80 лв 120

вп 40 лв 120 вп 80 пр 120 пп

Введите в командном центре команду бантик .

Задание 7.31. В теле программы песочные_часы используется записанная ранее программа бантик :

нк 270 бантик нк 0

Записав текст этой программы, закройте лист программ и выполните команду песочные_часы .

Задание 7.32. Опишите объект «прямоугольник» со сторонами 100 и 60 шагов и составьте программу для его построения.

Задание 7.33. Найдите и объясните ошибки, допущенные при написании программ:

а) это ерунда вп 10 нд 10 конец

по буква_п вп 40 6уква_п конец

в) это двойной бант

по бантик вп 10 бантик пп

Задание 7.34. Изучите объекты, представленные на рис. 7.7. Найдите и назовите элемент, который встречается во всех трех объектах. Составьте описание каждого объекта и алгоритм его построения. Дайте имена полученным алгоритмам и запишите соответствующие программы на лист программ. Проверьте новые команды.

Рис. 7.7. К заданию 7.34

Видео:Площадь треугольника. Как найти площадь треугольника?Скачать

Площадь треугольника. Как найти площадь треугольника?

Тема 7.3 Последовательный алгоритм

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

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

Задание 7.35

Составьте алгоритм построения домика (рис. 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

Таблица 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 шагов,

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

вперед на 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 повторяется 4 раза.

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

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

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

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

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

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

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

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

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

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

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

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

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

Постройте правильный треугольник.

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

Рис. 7.10. К заданию 7.44

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

Графические объекты с повторяющимися элементами
Задание 7.45

Постройте правильный шестиугольник.

Информационная модель правильного шестиугольника со стороной 50 шагов представлена в табл. 7.9.

Таблица 7.9.
Информационная модель объекта «Правильный шестиугольник»

Параметры объектаДействия объекта
НазваниеЗначение
Длина стороны50 шаговРисовать
Число сторон6Стирать
Соотношение сторонВсе стороны равны
Соотношение угловВсе углы равны
Величина угла, смежного с углом между сторонами360/6 градусов
Цвет контураТекущий

Начальное состояние Черепашки — текущее. Ее конечное состояние должно совпадать с начальным. Начальное состояние рабочего поля — текущее. После выполнения алгоритма на рабочем поле должен быть нарисован шестиугольник со стороной 50 пикселов.

Составим алгоритм рисования шестиугольника (табл. 7.10).

Таблица 7.10.
Алгоритм рисования правильного шестиугольника

Действия для достижения целиКоманды для Черепашки Значения параметров Черепашки и рабочего поля
Повторить 6 раз следующие действия: вперед на 50 шагов, повернуть голову направо на угол, равный 360/6 градусовповтори 6 [вп 50 пр 360 / 6]Нарисован шестиугольник справа от начального положения Черепашки. Черепашка вернулась в начальное положение

Обобщим предложенный метод для построения правильного многоугольника с любым количеством сторон. Обозначим буквой А длину стороны многоугольника, буквой N — количество углов многоугольника. Такой объект описан в табл. 7.11, а алгоритм его построения приведен в табл. 7.12.

Таблица 7.11.
Информационная модель объекта «Правильный многоугольник»

Параметры объектаДействия объекта
НазваниеЗначение
Длина стороны А пикселовРисовать
Число сторон NСтирать
Соотношение сторонВсе стороны равны
Соотношение угловВсе углы равны
Величина угла, внешнего к углу между сторонами360/ N градусов
Цвет контураТекущий

Таблица 7.12.
Алгоритм рисования правильного многоугольника

Действия для достижения целиКоманды для Черепашки Значения параметров Черепашки и рабочего ноля
Повторить N раз: вперед на А шагов, повернуть голову направо на угол, равный 360/ Nповтори N [вп А пр 360 / N]Нарисован многоугольник справа от начального положения Черепашки. Черепашка вернулась в начальное положение

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

Посмотрите на рис. 7.11. На нем изображены правильные 18-угольник со стороной 10 шагов и З6-угольник со стороной 5 шагов. На глаз их почти не отличить от окружности. Чем больше сторон у правильного многоугольника, тем больше он будет похож на окружность.

Рис 7.11. Правильные 18-угольник (слева) и 36-угольник (справа)

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

Задание 7.46. Постройте правильные многоугольники (рис. 7.12) с помощью команды повтори. Черепашка должна всегда возвращаться в начальное положение.

Рис 7.12. К заданию 7.46

Заданне 7.47. Найдите ошибки, допущенные при написании команд:

а) (вп 20 нд 20 пр 90 вп 20 лв 90] повтори 5

б) повтори 20 раз [вп 10 жди 10]

в) повтори 100 (пр 90 вп 20 лв 90 вп 20)

Задание 7.48. Что нарисует Черепашка, выполнив следующие команды:

а) по повтори 10 [вп 20 нд 20 пр 90 вп 20 лв 90) пп

б) по повтори l5 [пр 90 вп 20 лв 90 вп 20) пп

в) по повтори 3 [ вп 50 пр 60 ] пп

Задание 7.49. На какой угол должна поворачиваться Черепашка, начертив очередную сторону: а) квадрата; б) треугольника; в) шестиугольника?

Задание 7.50. На какой угол повернулась Черепашка, придя к начальному положению после рисования: а) квадрата; б) треугольника; в) шестиугольника?

Задание 7.51. Запишите в командном центре команды для построения правильного 9-уголышка с длиной стороны 10 шагов (см. табл. 7.12) и выполните их.

Задание 7.52. Изменив команды, написанные для построения 9-угольннка. нарисуйте следующие многоугольники:

а) 15-угольник со стороной 10 шагов;

б) 18-угольннк со стороной 10 шагов;

в) 36-угольник со стороной 5 шагов.

Задание 7.53. Нарисуйте стебель и 16 одинаковых игольчатых лепестков (рис. 7.13).

Рис 7.13. К заданию 7.53

Заданне 7.54. Нарисуйте пучок, состоящий из 30 расходящихся лучей длиной по 60 шагов. Угол между крайними лучами — 60° (рис. 7.14).

Рис 7.14. К заданию 7.54

Задание 7.55. Нарисуйте полумесяц, являющийся половиной З60-угольника со стороной 1 шаг (рис. 7.15).

Рис. 7.15. К заданию 7.55

Залание 7.56. Подсчитайте путь, который проходит Черепашка, когда рисует:

а) квадрат со стороной 30 шагов;

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

в) шестиугольник со стороной 30 шагов.

Задание 7.57. Подсчитайте путь, который проходит Черепашка, когда рисует:

а) 18-угольник со стороной 10 шагов;

б) 36-угольник со стороной 5 шагов;

в) 360-угольвик со стороной 0,5 шага.

Задание 7.58. Напишите программу квадрат для построения квадрата со стороной 20 шагов. Составьте информационные модели объектов, представленных на рис. 7.16. Напишите программы для построения этих объектов. В программах используйте команду квадрат .

Рис. 7.16. К заданию 7.58

Видео:Треугольник в НейроГрафике. НейроГрафикаСкачать

Треугольник в НейроГрафике. НейроГрафика

Тема 7.5 Процедура и модуль

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

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

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

Рассмотрим графические объекты, изображенные на рис. 7.16. Все они составлены из квадратов со стороной 30 пикселов. Составим информационную модель композиции «Лесенка из квадратов» (табл. 7.13), опираясь на разработанный алгоритм построения квадрата и соответствующую ему программу квадрат .

Таблица 7.13.
Информационная модель объекта «Лесенка из квадратов»

Параметры объектаДействие объекта
Название Значение
Количество квадратов3Рисовать
Соотношение квадратовВсе одинаковыеСтирать
Соотношение вершин квадратовЛевая нижняя вершина следующего квадрате совпадает с правой верхней вершиной предыдущего
Соотношение углов между квадратамиВсе углы равны
Цвет контураТекущий

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

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

повтори 3 [квадрат вп 30 пр 90 вп 30 лв 90]

пп повтори 3 [пр 90 нд 30 лв 90 нд 30]

Таблица 7.14.
Алгоритм рисования лесенки из квадратов

ДействияКоманды для Черепашки Значения параметров Черепашки и рабочего поля
Повторить 3 раза действия:
нарисовать квадрат, перейти в правую верхнюю вершину
повтори 3

вп 30 лв 90]

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

лв 90 нд 30]

Черепашка в левой нижней вершине первого квадрата, голова направлена на Север

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

Процедура — это вспомогательная программа, которая может вызываться из другой программы.

Различают встроенные и пользовательские процедуры. Все команды ЛОГО обращаются к встроенным процедурам. Вспомогательные программы, написанные вами и помещенные на лист программ, являются пользовательскими процедурами.

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

Процедура перед своим завершением должна восстановить исходные значения параметров исполнителя.

На рис. 7.17 представлены объекты, которые получились из сложного объекта — лесенки. Объект, который составляется из более простых объектов и может использоваться для создания более сложных объектов, называют модулем . В современном производстве модули (или блоки) используются очень широко, например при проектировании домов, при изготовлении корпусной мебели и пр. Детский конструктор предоставляет возможность детям воплощать свои строительные фантазии, используя готовые модули. Компьютер также собирается из отдельных модулей, которые легко заменяются.

Рис. 7.17. Композиции из нескольких лесенок

Программный модуль — это совокупность процедур, связанных определенными правилами.

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

Одни и те же процедуры могут применяться в разных модулях. В свою очередь, модули могут применяться как для создания отдельных объектов, так и для создания более сложных модулей (рис. 7.18). Такой подход к программированию называется процедурным.

Рис. 7.18. Построение модулей на основе процедур

Рассмотрим пример создания модуля четырехлистника, который используется для рисования цветка (рис. 7.19).

Сначала надо провести анализ структуры графического объекта «Цветок»:

цветок состоит из 16 лепестков;
каждый лепесток образован двумя дугами;
элементарным объектом является дуга, равная четверти окружности.

На основании анализа предлагаем технологию создания программы рисования цветка:

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

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

1.Нарисовать четырехлистник.
2.Повернуть графический указатель вправо на 22,5°.

Для получения цветка с большим количеством лепестков нужно увеличить число повторений и уменьшить угол поворота Черепашки.

Создание программ путем объединения модулей называется модульным программированием .

Рис. 7.19. Графический объект «Цветок»
Рис. 7.20. Алгоритм создания модуля для рисования четырехлистника

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

Задание 7.59. Составьте процедуру рисование элементарного объекта (дуги) и программный модуль для рисования четырехлистника для рис. 7.19. Напишите программы для рисования разных цветков, используя модуль четырехлистника.

Задание 7.60. Выделите в каждой фигуре, изображенной на рис. 7.21, свой повторяющийся элемент. Напишите процедуру для их построения. Составьте программы для рисования каждой фигуры, используя написанные процедуры.

Рис. 7.21. К заданию 7.60

Задание 7.61. Составьте программы для рисования снежинок (рис. 7.22). В чем сходство и различие этих программ?

Рис 7.22. К заданию 7.61

Задание 7.62. Составьте программы для рисования звездочек (рис. 7.23). В чем сходство и различие этих программ?

Рис 7.23. К заданию 7.62

Задание 7.63. Зачет: конкурс по модульному программированию.

а) Даны процедуры фрагм1 и фрагм2 :

вп 12 пр 90 вп 12

вп 12 пв 90 вп 12

Используя только процедуры фрагм1 и фрагм2 , команды поворота и повтори , построить фигуры, приведенные на рис. 7.24.

Рис 7.24. К заданию 7.63, а

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

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

Рис. 7.25. Узоры-меандры (к заданию 7.63, б )
Рис. 7.26. К заданию 7.63, в

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

Видео:ТЕОРЕМА СИНУСОВ И ТЕОРЕМА КОСИНУСОВ. Тригонометрия | МатематикаСкачать

ТЕОРЕМА СИНУСОВ И ТЕОРЕМА КОСИНУСОВ. Тригонометрия | Математика

Тема 7.6 Процедура с параметрами

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

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

Процедура с одним параметром

До сих пор в программах для создания графических объектов длина Отрезка, угол поворота, цвет задавались определенными числами. Однако часто возникает необходимость построить такой же объект, но с другими значениями параметров. Рассмотрим, как это сделать, на примере процедуры рисования квадрата. Для этого проведем анализ свойств объекта «Квадрат» и выявим общие и специфические параметры.

Этап 1. Перечислим параметры, характеризующие квадрат на рабочем поле:

a)количество сторон (всегда 4);
б)соотношение сторон (всегда равны);
в)длины сторон (например, 60 пикселов);
г)соотношение углов (всегда равны);
д)величины углов (все по 90°);
е)цвет контура (например, синий);
ж)цвет внутри контура (например, желтый);
з)координаты расположения на рабочем поле (например, нижняя левая вершина в точке с координатами х = 0, у = 0);

Этап 2. Выявим среди перечисленных характеристик параметры, общие для любого квадрата.

Параметры а), б), г), д) определяют общие свойства квадрата. Изменение их значений превратит квадрат в другую фигуру.
Параметры в), е), ж), з) характеризуют конкретный квадрат. Математическое определение объекта «Квадрат» не зависит от значений этих параметров.

Этап 3. Перечислим действия, которые можно выполнить над объектом на рабочем поле.

Квадрат можно нарисовать в любом месте рабочего поля. Изменяя цвет, длину стороны и место расположения квадрата, можно построить сложные объекты, например орнаменты из квадратов.

При использовании квадрата в другом объекте цвет контура и положение начальной вершины на рабочем поле зависят от места этого квадрата в сложном объекте. Значения таких параметров можно принять текущими.

Результаты анализа свойств квадрата представлены в табл. 7.15.

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

Параметры объектаДействия объекта
Название Значение
Число сторон4Рисовать
Соотношение сторонВсе стороны равныСтирать
Соотношение угловВсе углы равны
Величина угла, внешнего к углу между сторонами90°
Длина стороныМожно изменятьПриобретать указанные размеры
Цвет контураТекущийУстанавливать указанный цвет контура
Цвет внутри контураТекущийЗакрашивать внутри контура
Координаты расположения левой нижней вершиныТекущиеРасполагать в разных местах рабочего поля

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

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

Сравним эту процедуру с процедурами построения квадратов с другими длинами сторон, например, 80 и 60 пикселов:

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

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

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

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

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

это квадрат сторона

повтори 4 [вп : сторона пр 90]

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

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

В языке ЛОГО двоеточие ( : ) перед именем параметра показывает, что в данной команде используется значение параметра, которое будет известно при выполнении процедуры.

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

Фактический параметр — это значение, задаваемое при вызове процедуры. Это значение заменит формальный параметр при выполнении команды вызова процедуры.

Задание 7.64

это квадрат сторона

повтори 4 [вп :сторона пр 90)

1.Запишите на листе программ процедуру:
2.Введите команду квадрат без фактического параметра. В командном центре появится сообщение: Не хватает входных данных для квадрат .
3.Исправим ошибку, задав значение фактического параметра: квадрат 100 . На рабочем поле будет нарисован квадрат со стороной 100 пикселов. При вводе команды квадрат 80 на рабочем поле появится квадрат со стороной 80 пикселов.
4.Какие значения можно давать параметру? Очевидно, только те, что могут быть применены в команде, использующей этот параметр. Проверим это. Введем в командном центре: квадрат s . Появится сообщение: Не могу выполнить s .
5.Введем команду: квадрат «s . Появится сообщение: вп не допускает s на входе .

Задание 7.65

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

Вводите в командный центр поочередно команду квадрат c разными значениями параметра и передвигайте Черепашку на новое место.

по квадрат 2 пп нов_х 2

по квадрат 150 пп нов_у –170

по квадрат 500 пп нов_х –300

Что вы видите па рабочем поле при самом маленьком фактическом параметре, а что — при самом большом? Почему?

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

  • При вызове процедуры после ее имени обязательно указывается фактический параметр.
  • Процедура с несколькими параметрами

    Количество параметров в процедуре зависит от описания объекта. Рассмотрим пример создания правильного многоугольника, свойства которого отображены в табл. 7.16.

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

    Напишем процедуру прав_мн_угол , которая рисует правильный многоугольник текущим цветом. Используем алгоритм из табл. 7.12 (тема 7.4):

    это прав_мн_угол а n

    повтори :n [вп :а пр 360 / :n]

    Для изменения цвета необходимо в данную процедуру добавить еще один параметр:

    это прав_мн_угол а n с

    повтори :n [вп :а пр 360 / :n)

    Чтобы на рабочем поле нарисовать синий шестиугольник с длиной стороны 50 пикселов, введем команду: прав_мн_угол 50 6 5 . Здесь первый фактический параметр (число 50) обозначает длину стороны, второй (число 6) — количество сторон (вершин), а третий (число 5) — цвет.

    Таблица 7.16.
    Информационная модель объекта «Правильный многоугольник»

    Параметры объектаДействия объекта
    НазваниеЗначение
    Соотношение сторонВсе стороны равныРисовать
    Соотношение угловВсе углы равныСтирать
    Величина угла, внешнего к углу между сторонамиПолный угол, разделенный на число сторон
    Число сторонМожно изменятьПриобретать указанное число сторон
    Длина стороныМожно изменятьПриобретать указанные размеры
    Цвет контураМожно изменятьУстанавливать указанный цвет контура
    Цвет внутри контураТекущийЗакрашивать внутри контура
    Координаты расположения начальной вершиныТекущиеРасполагать в разных местах рабочего пола
      Запомните правила создания и вызова процедуры с несколькими параметрами:
    • При описании процедуры в заголовке после ее имени записываются имена формальных параметров, разделенные пробелом.
    • В теле процедуры имена появляются как параметры в командах.
    • При вызове процедуры после ее имени записываются все фактические параметры в порядке, соответствующем порядку записи формальных параметров в заголовке процедуры.

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

    Задание 7.66. Составьте процедуру для рисования правильного шестиугольника с длиной стороны, заданной формальным параметром.

    Задание 7.67. Составьте процедуру для рисования правильного треугольника с длиной стороны, заданной формальным параметром.

    Задание 7.68. Составьте процедуру для рисования условной окружности — правильного 36-угольника с длиной стороны, заданной формальным параметром.

    Задание 7.69. Напишите процедуру рисования закрашенного квадрата с длиной стороны 80 пикселов и изменяемым параметром — цветом контура. Какие изменения надо внести в имеющийся алгоритм построения квадрата?

    Задание 7.70. Напишите программы для рисования композиций, представленных на рис. 7.27. Для описания каждой композиции заполните табл. 7.17 аналогично тому, как заполнялась табл. 7.16. Установите начальное и конечное состояния Черепашки и рабочего поля.

    Рис. 7.27. К заданию 7.70

    Таблица 7.17.
    Шаблон информационной модели объекта

    Параметры объектаДействия объекта
    НазваниеЗначение
    Количество квадратовРисовать
    Соотношение квадратовСтирать
    Соотношение вершин квадратов
    Соотношение углов между квадратами
    Цвет контура

    Задание 7.71. Напишите процедуру рисования полуокружности как половины 360-угольника с переменной длиной стороны и углом поворота после каждого шага, равным 1°.

    Задание 7.72. Используя процедуру, созданную при выполнении предыдущего задания, напишите программы для рисования составных графических объектов (рис. 7.28).

    Рис. 7.28. К заданию 7.72

    Задание 7.73. Модифицируйте программу прав_мн_угол , добавив еще один параметр — угол поворота. Теперь угол поворота можно задавать независимо от количества сторон. Какой графический объект описывает такая программа?

    Задание 7.74. Опишите элементарный объект, из которого составлены снежинки (см. рис. 7.22). Напилите процедуру рисования элементарного объекта с параметром, управляющим размером этого объекта.

    Задание 7.75. Составьте информационную модель объекта «Куб», который можно изобразить на плоскости как объемную фигуру. Какие элементы добавляются к квадрату, чтобы на экране можно было увидеть куб? Представьте алгоритм рисования куба в виде таблицы.

    Задание 7.76 . Используя дугу, равную четверти окружности, опишите объект «Летящей птица». Составьте программный модуль для изображения птицы, который вызывает процедуру рисования дуги. Напишите программу создания стаи летящих птиц, используя модуль рисования одной птицы.

    Видео:Квадрат в НейроГрафике. НейроГрафика.Скачать

    Квадрат в НейроГрафике. НейроГрафика.

    Тема 7.7. Переменная в алгоритме

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

    задавать и изменять значение переменной;
    запоминать в одной переменной список значений;
    использовать значение переменной для вычисления параметров команд.

    На рисунке 7.29 изображен объект «Тоннель». Он состоит на 40 восьмиугольников, причем сторона каждого следующего на 1 пиксел длиннее текущего. Мы можем указать в процедуре длину самого маленького восьмиугольника как изменяемый параметр:

    Рис. 7.29. Объект Тоннель

    повтори 40 [прав_мн_угол :s 8 вп 1]

    Процедура тоннель1 , повторенная 40 раз, позволит нарисовать 40 восьмиугольников, но все они будут с одинаковой заданной длиной стороны. Для получения тоннеля, изображенного на рис. 7.29, значение s надо увеличивать на каждом проходе цикла. Иначе говоря, значение параметра s должно храниться в памяти компьютера, чтобы исполнитель мог его менять по ходу выполнения программы. В программировании для этого используют объект переменная .

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

    В любой среде программирования различаются имя и значение переменной.

    Имя переменной показывает, в каком месте памяти компьютера хранится значение переменной.

    Значение переменной считывается из указанного ее именем места памяти. Значение переменной применяется как фактический параметр в команде и в выражении.

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

    Запомните правило работы с переменной в среде ЛОГО:

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

    Рассмотрим пример. В переменную al надо записать число 30, в переменную а2 — число 6. а в переменную сумм — сумму переменных al и а2 .

    Для выполнения этих действий вводим команды:

    пусть «сумм :al + :а2

    Результат выполнения этих команд на экран компьютера не выводится.

    Командой пусть можно также изменить значение уже созданной переменной. Например, для увеличения значения переменной s на 1 вводим:

    В этом случае из памяти считывается старое (текущее) значение переменной s и увеличивается на 1, а затем новое значение записывается в то же место памяти.

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

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

    пусть «положение место

    Тогда в переменной положение окажется список из двух значений. Вы увидите их, если введете команду:

    Команда нов_место :положение устанавливает Черепашку в указанное место рабочего поля.

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

    Задание 7.77. Запишите на листе программ программу для рисования тоннеля (см. рис. 7.29), которая вызывает процедуру построения правильного многоугольника прав_мн_угол s (параметр s показывает длину стороны самого маленького восьмиугольника). Проверьте работу этой программы:

    повтори 40 [прав_мн_угол :s 8 пусть «s :s + 1]

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

    Задание 7.79. Создайте в теле программы тоннель переменную с — счетчик для номера цвета, начальное значение счетчика задайте равным 9. На каждом шаге цикла увеличивайте значение переменной c на 10 и устанавливайте цвет Черепашки равным значению :с . Тоннель получится разноцветным.

    Задание 7.80. Каким будет значение переменной z после выполнения следующих команд:

    а) пусть «z 10 вп :z + 5

    б) пусть «z 10 вп :z пусть «z :z + 5

    в) пусть «z 10 повтори 5 [пусть «z :z + 1]

    г) пусть z 105 / (30 + 5)

    д) пусть «z 105 / 30 + 5

    Задание 7.81. Сохраните координаты точки, в которой находится в данный момент Черепашка, в переменной cт_место :

    пусть «ст_место место

    Передвиньте Черепашку мышью в другую точку, а затем выполните команду:

    Черепашка вернется на прежнее место.

    Видео:Реактивный треугольник 🔺Скачать

    Реактивный треугольник 🔺

    Тема 7.8. Логика в среде программирования

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

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

    Инструменты сравнения

    Знаменитый Шерлок Холмс при расследовании применял законы логики, что позволяло ему находить выход из любой ситуации и распутывать самые замысловатые истории.

    Лучшим способом освоения понятий логики является их практическое применение при составлении алгоритмов и проверке алгоритмов на компьютере.

    В качестве примера использования законов логики рассмотрим задачу о лабиринте. Как научить Черепашку проходить по лабиринту?

    Прежде всего построим объект «Лабиринт», который состоит из закрашенных квадратиков (плиток) одного цвета. Процедуры для построения лабиринта из элементарных объектов приведены в табл. 7.18.

    Запишите на листе программ процедуры, приведенные в табл. 7.18. Проверьте работу этих процедур. Опишите объект «Лабиринт», состоящий из плиток одного заданного цвета и одного заданного размера. Какие параметры нужны для этого объекта? Какой инструмент нужен для рисования такого объекта? Напилите процедуру лабиринт , которая рисует лабиринт, начиная с текущего положения Черепашки (рис. 7.30).

    Рис. 7.30. Лабиринт

    Таблица 7.18.
    Инструменты-процедуры для построения лабиринта

    ОбъектПараметры Инструмент (процедура)
    Элемент закрашенной плиткир — длина стороны элемента;
    с — цвет элемента
    это эл_пл р цв по нц :цв повтори 3 [лв 90 вп :p] конец
    Закрашенная плитка, состоящая из элементов закрашенной плиткист — длина стороны плитки;
    цв — цвет плитки
    это плитка ст цв
    пусть «е 1
    пусть «xн х_коор
    пусть «ун у_коор
    повтори :ст – 1
    [эл_пл :е :цв
    пусть «е :е + 1]
    нов_х :xн
    нов_у :ун
    нк 0
    конец

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

    Для выполнения операций сравнения в любой среде программирования имеются инструменты, представленные в табл. 7.19. Как видно из таблицы, значение операции сравнения может быть только истина ( да ) или ложь ( нет ).

    Таблица 7.19.
    Инструменты сравнения

    x1 > х2

    да (истина), если значение xl больше значения х2. нет (ложь) — в противном случае

    xl х2

    да (истина), если значение xl меньше значения х2, нет (ложь) — в противном случае

    х1 = х2

    да (истина), если значение xl равно значению х2, нет (ложь) — в противном случае

    ОбозначениеФорма записи Значение операции сравнения

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

    покажи color > 8

    Если для анализа состояния объекта требуется осуществить несколько проверок, составляется логическое выражение, включающее несколько операций сравнения. В логическом выражении операции связываются логическими действиями И , ИЛИ и НЕ . Например, чтобы проверить, совпадает ли цвет Черепашки с цветом пиксела под ее пером и одновременно с цветом фона, введите команду:

    покажи и (цвет = цп) (цвет = фон)

    Выбор действий по условию

    Рассмотрим такую ситуацию. Черепашка гуляет по рабочему полю. На рабочем поле расположено озеро определенного цвета. Черепашка, попав на озеро, должна «спрятаться».

    Для моделирования ситуации сначала нужно нарисовать объект «Озеро», изображенный на рис. 7.31 и описанный в табл. 7.20. Для этого потребуется специальный инструмент — процедура озеро .

    Рис. 7.31 Озеро

    Для создания объекта «Озеро» введите команду:

    Инструмент-процедура фортуна заставляет Черепашку менять свое положение на рабочем поле случайным образом:

    пп нов_х –300 + сл 600

    нов_у –180 + сл 360

    Оставьте и запишите на листе программ процедуры озеро и фортуна . Проверьте работу этих процедур. Проверьте в разных точках рабочего поля значение выражения «цвет под пером равен 85». устанавливая Черепашку на озере и вне озера и — вводя команду покажи цп = 85 .

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

    Параметры объектаИнструмент (процедура)
    НазваниеЗначение
    Цветцвэто оэеро ст чв цв
    пп нов_х сл 100 нов_у сл 100
    пусть «тц цвет
    нц: :цв по
    прав_мн_угол :ст :цв
    пр 90 пп вп :ст
    по крась
    нд :ст лв 90
    нц :тц
    пп нов_х –100
    нов_у –100
    конец
    ФормаПравильный многоугольник
    Длина стороныст
    Число вершинчв
    Начальное положение исполнителяСлучайное в области: 0 х у если позволяет реализовать неполную форму разветвляющегося алгоритма;
    команда если__иначе позволяет реализовать полную форму разветвляющегося алгоритма.

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

    Формат команды для неполной формы разветвляющего алгоритма:

    если условие [ список команд ]

    Команда состоит из ключевого слова если и двух входных параметров: условия и одного списка команд . Условие представляет собой одну операцию сравнения или логическое выражение. Список команд содержит те команды, которые надо выполнить, если условие выполняется (значение выражения да , или «истина»). Если значение условия «ложь», то команды, записанные в квадратных скобках, не выполняются.

    Формат команды для полной формы разветвляющего алгоритма:

    если_иначе условие [ список команд 1 ] [ список команд 2 ]

    Команда состоит из ключевого слова если_иначе и трех входных параметров: условия и двух списков команд . Первый список команд содержит те команды, которые надо выполнить, если условие выполняется (истинно). Второй список команд содержит команды, которые надо выполнить в случае, когда условие ложно. Теперь научим Черепашку «нырять под воду» — становиться невидимой. На русском языке мы объяснили бы объекту, что он должен делать, таким образом:

    Если цвет под пером голубой (номер 85), то стань невидимой, подожди некоторое время и снова покажись.

    В приведенном выше объяснении после слова «если» записано условие: цвет под пером голубой (номер 85) .

    На языке ЛОГО это условие будет выглядеть так: цп = 85 .

    Действия, которые должна выполнить Черепашка, записаны после слона «то»: стань невидимой, подожди некоторое время и снова покажись .

    На языке ЛОГО эти действия выражаются командами: сч жди 10 пч .

    Разветвляющийся алгоритм для Черепашки выглядит следующим образом:

    если цп = 85 [сч жди 10 пч]

    Нарисуйте на рабочем поле озеро командой озеро 1 360 85 и установите Черепашку вне озера.

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

    если цп = 85 [сч жди 10 пч]

    Вы видите, что при цвете под пером, не равном 85, никаких Действий не выполняется.

    б) Переместите Черепашку на озеро. Введите в командном центре команду:

    если цп = 85 [сч жди 10 пч]

    Черепашка исчезла на некоторое время, а потом появилась опить.

    Теперь пусть Черепашка на берегу оставляет квадратный коврик. Ваш алгоритм должен предусматривать один список действий при выполнении условия и другой — в противном случае:

    Если цвет под пером голубой (номер 85), то стань невидимой, подожди некоторое время и покажись, иначе нарисуй квадрат со стороной 10 шагов.

    Запишем этот алгоритм на языке Лого:

    если_иначе цп = 85 [сч жди 10 пч] [по нц 65 цв_кв 10 ]

    Нарисуйте на рабочем поле озеро командой озеро 1 360 89 и установите Черепашку вне озера.

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

    если_иначе цп = 85 [сч жди 10 пч]

    [по нц 65 плитка 10 45]

    Вы видите, что при цвете под пером, не равном 85, Черепашка рисует коврик.

    б) Переместите Черепашку на озеро. Введите в командном центре команду:

    если_иначе цп = 85[сч жди 10 пч]

    [по нц 65 плитка 10 45]

    Черепашка исчезла на некоторое время, а потом появилась опять.

    Создание процесса в среде программирования

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

    Процедура фортуна забрасывает Черепашку в случайную точку рабочего поля. Что мы будем наблюдать на экране, если запускать ее несколько ( t ) раз?

    Нарисуйте на рабочем поле озеро командой озеро 1 360 85 и установите Черепашку вне озера.

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

    повтори 100 [фортуна]

    Черепашка «летает» по рабочему полю.

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

    повтори 100 [фортуна если цп = 85 [сч жди 10 пч]]

    Поведение Черепашки изменилось. Попадая на озеро, она исчезает на некоторое время, а потом снова появляется.

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

    повтори 100 [фортуна

    если_иначе цп = 85 [жди 10 сч жди 10 пч]

    Теперь Черепашка то исчезает в озере, то рисует коврик на берегу.

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

    В среде ЛОГО можно создать повторяющийся процесс и другим способом. Известно, что в теле процедуры допускается вызов любой процедуры, в том числе и той же самой. Оформим алгоритм изменения состояния Черепашки как процедуру:

    если_иначе цп = 85 [жди 10 сч жди 10 пч] [плитка 10 45]]

    Для моделирования процесса прогулки вокруг озера предложим следующую программу:

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

    Рекурсивный алгоритм — это алгоритм повторения, в котором процедура по ходу ее выполнения обращается к самой себе.

    Процесс, основанный на рекурсивном вызове. называется рекурсивным .

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

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

    это спираль с угол

    вп :с пр :угол спираль :с – 5 :угол

    Введя команду по спираль 58 90 , вы будете наблюдать бесконечный процесс рисования прямоугольной спирали.

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

    это спираль с угол

    вп :с пр :угол спираль :с – 5 :угол

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

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

    это лабиринт ст цв

    пусть «хт х_коор пусть «ут у = коор пусть «цт цвет

    сч повтори 4 [плитка :ст :цв нов_x х_коор + :ст]

    повтори 3 [плитка :ст :цв нов_у y_коор + :ст]

    нов_у у_коор – :ст нов_x х_коор – :ст

    повтори 6 [плитка :ст :цв нов_x х_коор – :ст]

    пп нов_х :хт нов_у :ут нц :цт нк 90 пч

    В приведенном алгоритме Черепашка после рисования лабиринта помещается в середину первой плитки, а ее голова смотрит на Восток.

    Используя программу лабиринт , нарисуйте па рабочем поле лабиринт из голубых (цвет 85) плиток размером 30 шагов. Измерьте цвет под пером Черепашки, выведя его значение в командный центр.

    Черепашка находится в лабиринте. Вводя несколько раз команды вп 30 покажи цп = 85 , проведите ее до поворота. Черепашка окажется вне лабиринта. Какое слово появится в командном центре — «истина» или «ложь»? Что теперь должна делать Черепашка?

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

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

    Сравните придуманный вами алгоритм с представленным в табл. 7.21.

    Запишите программы путь_по_лаб и ищи_ход на листе программ. Проверьте, как Черепашка выбирается из лабиринта. Выйдет ли Черепашка из лабиринта? Нужно ли задать еще один параметр объекта «Лабиринт», чтобы Черепашка распознала правильный путь?

    Таблица 7.21.
    Программы прохождения по лабиринту

    Словесное описание Программа
    Путь по лабиринту
    Повторить т раз:
    если под пером — цвет лабиринта
    то вперед на с шагов,
    иначе назад на с шагов
    Ищи ход
    Конец повторения
    Конец
    это путь_по_лаб т с цл
    повтори :т
    [если_иначе цп = :цл
    [вп :c]
    [нд :с
    ищи_ход :с]
    ]
    конец
    Ищи ход
    налево на 90°
    вперед на с шагов
    Конец
    это ищи_ход c
    лв 90
    вп :c
    конец

    Черепашка странно ведет себя в лабиринте. На каком-то участке она в панике бегает по одним и тем же плиткам до тех пор, пока не кончится отведенное время. Очевидно, ей необходима «нить Ариадны», чтобы отмечать уже пройденные участки. Например, Черепашка может оставлять след на каждой пройденной плитке:

    это путь_по_лаб1 с цл

    если_иначе цп = :цл [нд :с по штамп пп вп :с]

    [еспи_иначе цвет = :цл [стоп]

    путь_ло_лаб1 :с :цл

    Теперь Черепашка поворачивается и ищет путь, по которому она еще не проходила. Здесь уместно применить рекурсию.

    Запишите процедуру путь_по_лаб1 на листе программ. Проверьте, как теперь Черепашка выбирается из лабиринта. Сколько времени ей потребуется? Нужно ли задать еще один параметр объекта «Лабиринт», чтобы Черепашка остановилась в конце лабиринта? Предложите свой вариант решения.

    Для моделирования в среде программирования некоторой системы необходимо понять, для чего вам нужна эта модель, то есть поставить цель. Затем вы описываете объекты, которые будут составлять систему, и, конечно, их параметры. Вам надо будет задать правила взаимодействия этих объектов. Одним словом, для моделирования вам придется подготовить инструмент — процедуры и модули.

    Моделирование можно сравнить с представлением в театре. Вы создаете свой маленький мир — микромир, готовите декорации, маски, костюмы, подбираете актеров, учите с ними роли. Затем запускаете процесс изменения параметров определенного объекта. То, что происходит потом, кажется загадочным, но постепенно вы разбираетесь в ходе событий, иногда обнаруживаете ошибки в описании объектов или их взаимодействия и в конце концов достигаете поставленной цели.

    Представьте, что Черепашка обучена нескольким профессиям и отправилась путешествовать по рабочему полю. Судьба забрасывает Черепашку в разные части света. В зависимости от положения на координатной плоскости Черепашка выполняет ту или иную известную ей работу, например рисует определенный объект.

    Цель нашего моделирования — освоить законы логики. Для этого вы познакомитесь с историями из жизни Черепашки в созданном микромире. Каждая история происходит в течение времени t , поэтому ее можно моделировать с помощью цикла.

    На листе программ вам нужно подготовить инструменты для рисования объектов, создания процессов из жизни Черепашки в роли разных мастеров. Необходимые процедуры описаны в табл. 7.22 и 7.23.

    История 1. Черепашка-лесник

    Всякий раз, попадая на поле справа от вертикальной границы х = 60, Черепашка должна сажать дерево. Цвет дерева выбирается случайно в интервале от 51 до 58. Высота дерева должна быть не более 20 шагов Черепашки.

    История 2. Черепашка-садовник

    Всякий раз. попадая на поле слева от вертикальной границы х = 0. Черепашка должна сажать цветок. Цвет цветка выбирается случайно в интервале от 41 до 48. Количество лепестков цветка — не более 8.

    Запишите процедуры, перечисленные в табл. 722 и 7.23. на листе программ и проверьте, как они работают.

    Видео:№ 5.6. Периметр и площадь квадрата (дополнение)Скачать

    № 5.6. Периметр и площадь квадрата (дополнение)

    Уроки с использованием среды программирования Pascal ABC, по теме «Процедура и модуль», 7-й класс

    Класс: 7

    ОБРАЗОВАТЕЛЬНАЯ ЦЕЛЬ: Сформировать представление о понятиях “вспомогательный алгоритм”, “процедура”, “модуль” и научить составлять программный модуль из процедур в среде Pascal ABC.

    ОБРАЗОВАТЕЛЬНЫЕ ЗАДАЧИ:

    • анализ строения сложного объекта или процесса;
    • понятие “вспомогательный алгоритм”;
    • понятие “процедура” в среде программированияPascal ABC;
    • понятие “модуль” и способ его составления;
    • программирование процедурным способом.

    ТИП УРОКА: комбинированный.

    ФОРМИРУЕМЫЕ УМЕНИЯ: анализировать и делать выводы, работать в среде программирования (Pascal ABC).

    ОСНОВНЫЕ ПОНЯТИЯ: вспомогательный алгоритм, процедура, модуль.

    ОСНАЩЕНИЕ: среда программирования Pascal ABC; готовые программы “Треугольник”, “Квадрат”, “Домик”.

    объект – некоторая часть окружающего мира, как единое целое;

    алгоритм – описание последовательности действий, исполнение которых приводит к решению задачи за конечное число шагов;

    шаг алгоритма – отдельное действие по исполнению алгоритма;

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

    .Проверим знание программной среды

    Алгоритм квадрата и треугольника

    Рис. 1. Интерфейс программной среды Паскаль АВС

    ФОРМИРОВАНИЕ НОВЫХ ПОНЯТИЙ И

    ОСНОВНЫЕ СВЕДЕНИЯ И ДЕМОНСТРАЦИИ:

    Анализ строения сложного объекта или процесса

    Анализируем ранее разработанные программы (таблица 1) для создания сложных объектов в графическом окне.

    Имя программыРезультат выполнения программыЗадание
    TreugolnikТреугольникПример № 1
    KvadratКвадратПример № 2
    DomikДомикПример № 3

    Программы “Треугольник” и “Квадрат” отображают простые объекты, из которых могут состоять более сложные — “Домик”.

    Выводы из примера, для написания программ:

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

    Program Kvadrat; // Объявление названия программы

    Begin // Начало составного оператора (служебное слово)

    MoveTo(50,50); //Передвигает невидимое перо к точке с координатами (50,50)

    LineTo(50,100); //Рисует линию от текущего положения пера до точки с координатами (50,100)

    End. // Конец составного оператора (служебное слово)

    Program Treugolnik; // Объявление названия программы Uses GraphABC;

    Var m:integer; // Объявление переменной: типа

    Begin // Начало составного оператора (служебное слово)

    m:=25; // Присвоение переменной значения 25

    MoveTo(50,50); //Передвигает невидимое перо к точке с координатами (50,50)

    LineTo(50+m,m); //Рисует линию от текущего положения пера до точки с координатами (50+25,25)

    End. // Конец составного оператора (служебное слово)

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

    Program Domik; // Объявление названия программы Uses GraphABC;

    Var m:integer; // Объявление переменной: типа

    Begin // Начало составного оператора (служебное слово)

    MoveTo(50,50); //Передвигает невидимое перо к точке с координатами (50,50)

    LineTo(50,100); //Рисует линию от текущего положения пера до точки с координатами (50,100)

    LineTo(50+m,m); //Рисует линию от текущего положения пера до точки с координатами (50+25,25)

    End. // Конец составного оператора (служебное слово)

    Алгоритмы для простых объектов, из которых строятся сложные, представляют как вспомогательные алгоритмы, присвоив им специальные имена. Программы для них можно написать позже.

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

    Задание: нарисовать “домик”.

    Выделим объекты, из которых состоит домик – квадрат и треугольник.

    Изобразим алгоритм рисования домика в виде блок-схемы (рис. 2).

    Алгоритм квадрата и треугольника

    Рис. 2. Блок-схема алгоритма рисования домика

    Напишем программу по этой блок-схеме (схематично):

    Процедура в среде программирования Pascal ABC

    Процедура– вспомогательная программа, которая вызывается из другой программы.

    Первый шаг создания домика — разработка отдельных программ вспомогательных алгоритмов (процедур) Квадрат и Треугольник.

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

    Procedure KvadratP(x,y,x1,y1:integer); // Объявление названия процедуры и параметров

    Begin // Начало составного оператора (служебное слово)

    MoveTo(x,y); //Передвигает невидимое перо к точке с координатами (x,y)

    LineTo(x1,y); //Рисует линию от текущего положения пера до точки с координатами (x1,y)

    End; // Конец составного оператора (служебное слово)

    Procedure TreugolnikP(x,y,x1:integer); // Объявление названия процедуры и параметров Var m:integer;

    Begin // Начало составного оператора (служебное слово)

    m:=(x1-x) div 2;; // Присваиваем m целую часть от деления x1-x на 2

    MoveTo(x,y); //Передвигает невидимое перо к точке с координатами (x,y)

    LineTo(x+m,y-m); //Рисует отрезок от текущего положения пера до точки с координатами (x+m,y-m)

    End; // Конец составного оператора (служебное слово)

    Второй шаг создания домика — разработаем программу “Домик”, включив в описательной части ранее разработанные процедуры “Квадрата” и “Треугольника”, а затем в составном операторе вызовем эти процедуры на исполнение.

    Program Domik2; // Объявление названия программы Uses GraphABC;

    Procedure KvadratP(x,y,x1,y1:integer); // Объявление названия процедуры и параметров

    Begin // Начало составного оператора (служебное слово)

    MoveTo(x,y); //Передвигает невидимое перо к точке с координатами (x,y)

    LineTo(x1,y); //Рисует линию от текущего положения пера до точки с координатами (x1,y)

    End; // Конец составного оператора (служебное слово)

    Procedure TreugolnikP(x,y,x1:integer); // Объявление названия процедуры и параметров

    Begin // Начало составного оператора (служебное слово)

    m:=(x1-x) div 2;; // Присваиваем m целую часть от деления x1-x на 2

    MoveTo(x,y); //Передвигает невидимое перо к точке с координатами (x,y)

    LineTo(x+m,y-m); //Рисует отрезок от текущего положения пера до точки с координатами (x+m,y-m)

    End; // Конец составного оператора (служебное слово)

    Begin // Начало составного оператора (служебное слово)

    KvadratP (50,50,100,100); // Вызов на исполнение процедуры Kvadrat

    TreugolnikP (50,50,100); // Вызов на исполнение процедуры Treugolnik

    end. // Конец составного оператора (служебное слово)

    Модуль и способ его составления

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

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

    Напишем программу для постоянного хранения разработанных процедур — модуль.

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

    Unit Risunok; // Объявление названия модуля

    Procedure KvadratP (x,y,x1,y1:integer); // Объявление названия процедуры и параметров

    Begin // Начало составного оператора (служебное слово)

    MoveTo(x,y); //Передвигает невидимое перо к точке с координатами (x,y)

    LineTo(x1,y); //Рисует линию от текущего положения пера до точки с координатами (x1,y)

    End; // Конец составного оператора (служебное слово)

    Procedure TreugolnikP (x,y,x1:integer); // Объявление названия процедуры и параметров

    Begin // Начало составного оператора (служебное слово)

    m:=(x1-x) div 2;; // Присваиваем m целую часть от деления x1-x на 2

    MoveTo(x,y); //Передвигает невидимое перо к точке с координатами (x,y)

    LineTo(x+m,y-m); //Рисует отрезок от текущего положения пера до точки с координатами (x+m,y-m)

    End; // Конец составного оператора (служебное слово)

    End. // Конец модуля

    Разработаем программу “Домик” включая в описательной ее части ранее разработанные процедуры.

    Program DomikM; // Объявление названия программы

    Uses GraphABC, Risunok; // Подключение модулей

    Begin // Начало составного оператора (служебное слово)

    End. // Конец составного оператора (служебное слово)

    Рассмотрим разработанные программы пример № 6 и пример № 8, в каждой из них имеется вызов процедуры — программы вспомогательного алгоритма. Однако на разработку программы пример №8 потрачено времени в несколько раз меньше.

    V. Программирование процедурным способом

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

    Написать программу для рисования вертикального столбика из 8 квадратов.

    Написать программу для рисования горизонтального ряда из 8 квадратов.

    Написать программу для рисования поля, состоящего из 8 рядов по 8 квадратов .

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

    Процедура – вспомогательная программа, которая вызывается из другой программы.

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

    ЗАДАНИЕ НА ДОМ: Разработать программу с использованием процедурного подхода (геометрический ленточный орнамент)

    🎥 Видео

    Математика это не ИсламСкачать

    Математика это не Ислам

    Лишний квадрат в треугольникеСкачать

    Лишний квадрат в треугольнике

    Реакция на результаты ЕГЭ 2022 по русскому языкуСкачать

    Реакция на результаты ЕГЭ 2022 по русскому языку

    Правильные многоугольники. Геометрия 9 класс | Математика | TutorOnlineСкачать

    Правильные многоугольники. Геометрия 9 класс  | Математика | TutorOnline

    Всё про углы в окружности. Геометрия | МатематикаСкачать

    Всё про углы в окружности. Геометрия  | Математика

    Определение натуральной величины треугольника АВС методом замены плоскостей проекцииСкачать

    Определение натуральной величины треугольника АВС методом замены плоскостей проекции

    Сколько треугольников на рисунке? Универсальный алгоритм решения задачиСкачать

    Сколько треугольников на рисунке? Универсальный алгоритм решения задачи

    Вектор. Сложение и вычитание. 9 класс | МатематикаСкачать

    Вектор. Сложение и вычитание. 9 класс | Математика

    Периметр квадрата. Как найти периметр квадрата?Скачать

    Периметр квадрата. Как найти периметр квадрата?

    Как найти периметрСкачать

    Как найти периметр

    9 класс, 15 урок, Решение треугольниковСкачать

    9 класс, 15 урок, Решение треугольников
    Поделиться или сохранить к себе: