Меню

Логомиры как нарисовать цветок



Логомиры как нарисовать цветок

Урок 13. Учимся командовать с умом

Вам уже известно, что свойства черепашки (курс, размер, цвет, форму) можно изменять вручную, используя меню графического редактора или Поля форм. Можно ли автоматизировать не слишком производительный ручной труд?
Вы уже много знаете о команде нов_форма, которая мгновенно, незаметно для глаза, производит смену формы. Вы также использовали команду нов_курс, которая автоматически ориентирует черепашку в любом направлении. Кроме них есть и другие команды, позволяющие изменять свойства черепашки автоматически и таким образом облегчающие процесс управления ею.
Наиболее часто используемые команды и соответствующие им датчики приведены в таблице.

Команда Действие команды Датчик Значения датчика
нов_форма Меняет форму черепашки форма от 0 до 60
нов_курс Поворачивает черепашку в указанном направлении курс от 0 до 359
нов_цвет Меняет цвет черепешки и пишущего пера цвет от 0 до 139;
нов_размер Меняет размер черепашки размер от 5 до 150
нов_размер_пера Меняет толщину пишущего пера размер_пера от 1 до 100

Задание 22. Использование датчиков для постепенного изменения состояния черепашки
1. Напишите команды, которые автоматически установят для черепашки, одетой в костюм солнца максимальный размер (150) и сделают толщину пишущего пера 40, а его цвет — фиолетовым.
2. Запустите из Поля команд цикл:

нов_размер 40 повтори 30 [нов_размер размер + 2 жди 1]

Объясните его работу.
3. Разработайте сюжет «Выросла репка большая-пребольшая» . Форму репки создайте сами в свободной клетке меню форм.
4. Реализуйте на компьютере сюжет «Радужный диск », в котором черепашка рисует множество лучей, исходящих из одной точки. Размер пера установите равным 2:

по нов_размер_пера 2
повтори 360 [вперед 100 назад 100
нов__курс курс + 1
нов_цвет цвет + 1]

Обратите внимание, что перед рисованием следующего луча изменяется курс (направление луча) и его цвет при помощи соответствующих команд и датчиков.
5. Реализуйте на компьютере сюжет «Цветик-семицветик». Чтобы семь лепестков равномерно распределились вокруг центра цветка, курс при их рисовании должен меняться с шагом 360/7:

нов_курс курс + (360 / 7)

Перед началом цикла установите красный цвет (нов_цвет 15) и размер пера (нов_размер_пера 10).
Лепестки у цветка должны быть ярких цветов. В gалитре ЛогоМиров номера таких цветов заканчиваются цифрой 5, поэтому шаг изменения цвета должен быть равным 10:

нов_цвет цвет + 10

Вопросы для самоконтроля
1. Для чего служит команда нов_форма?
2. Для чего служит команда нов_цвет?
3. Для чего нужна команда нов_размер_пера?
4. Для чего нужна команда нов_размер?

Источник

Логомиры как нарисовать цветок

Татьяна-Петровна Аверкина запись закреплена

Составление процедур для игровой программы.
Смысл игры «Блокада» состоит в том, чтобы играющий добился столкновения черепашки, моделирующей зенитную ракету, с черепашками, моделирующими самолеты противника.
Показать полностью.

Самолеты моделируют черепашки ч1, ч2, ч3. Процедура «Самолет» содержит проверку выполнения условия – значения датчика коснулись. Если касания не происходит, самолет продолжает полет курсом 90°. Если черепашка-самолет коснулась черепашки-ракеты, то самолет меняет курс на 150°, форму на «повернутый горящий самолет», движется с большей скоростью, пока не снизится до уровня земли, после чего по команде сч черепашка становится невидимой и останавливается по команде выкл.

если_иначе коснулись? «ч1 «ч4 [нк 150 нф 2 повтори 15 [вп 30 жди 1] сч выкл] [нф 1 нк 90 вп 15 жди 1]

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

Татьяна-Петровна Аверкина запись закреплена
Татьяна-Петровна Аверкина запись закреплена
Татьяна-Петровна Аверкина запись закреплена
Татьяна-Петровна Аверкина запись закреплена

Алгоритм закрашивания замкнутой фигуры.
Алгоритм закрашивания фигур:
1. Для того чтобы изменить цвет нарисованной черепашкой фигуры, нужно сначала убедиться, что фигура замкнутая. В противном случае, закрасится весь экран.
2. Далее, поднять перо (команда пп).
3. Переместить черепашку внутрь закрашиваемой области (команды вп, нд, нк).
Показать полностью.
4. Выбрать новый цвет и применить команду крась.

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

Пример: построение цветного квадрата:
это красный_квадрат
по повтори 4 [вп 60 пр 90 жди 4]
пп нк 45 жди 4 вп 40 нц 15 жди 4 крась
конец

Татьяна-Петровна Аверкина запись закреплена
Татьяна-Петровна Аверкина запись закреплена

Что такое — Процедура с параметрами. Правила написания таких процедур.

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

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

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

это треугольник :сторона
по
повтори 3 [вп :сторона пр 120]
конец

это шестиугольник :сторона
повтори 6 [треугольник :сторона пр 60]
конец

это паутина
шестиугольник 20
шестиугольник 30
шестиугольник 40
шестиугольник 50
шестиугольник 60
конец

Источник

Учебно-методическое пособие «Логомиры» (стр. 2 )

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

c) ПО ЛВ 90 ВП 60 ПР 90 ВП 60

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

4. Напишите команды, в результате выполнения которых в текстовом окне и в командном центре будет напечатано значение площади прямоугольника со сторонами 13 и 123.

Вспомним алгоритм рисования квадрата.

В этом алгоритме команды ВП 60 ПР 90 повторяются 4 раза.

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

ПОВТОРИ N [ список команд ], где N целое число, обозначающее количество повторений.

Тогда алгоритм рисования квадрата можно записать так

Как нарисовать в ЛОГО правильный многоугольник?

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

Рассмотрим, например, правильный треугольник:

На рисунке один из внутренних углов правильного треугольника обозначен цифрой 1. Цифрой 2 на рисунке обозначен один из внешних углов. Для любого правильного многоугольника сумма его внешних углов равна 360 градусов и внешние углы равны между собой.

Для треугольника внешний угол равен:

360 : 3 = 120 градусов.

Для многоугольника формула вычисления внешнего угла следующая:

360 : N, где N – количество вершин.

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

ПОВТОРИ 3 [ ВП 100 ЛВ 120 ]

Окружность можно нарисовать как 360-угольник со стороной 1 шаг. Тогда алгоритм рисования окружности будет следующим:

ПО ПОВТОРИ 360 [ ВП 1 ПР 1 ]

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

Читайте также:  Ивана купала что за цветок

ПО ПР 90 ПОВТОРИ 5 [ ВП 100 ПР 144 ]

Давайте составим алгоритм, по которому можно нарисовать такую геометрическую фигуру:

На рисунке четыре одинаковых окружности. Черепашка стоит в центре фигуры. Нарисовав одну окружность и повернувшись на 90 градусов вправо, черепашка нарисует следующую и т. д.

Алгоритм можно записать так:

ПО ПОВТОРИ 360 [ ВП 1 ПР 1 ] ПР 90

ПОВТОРИ 360 [ ВП 1 ПР 1 ] ПР 90

ПОВТОРИ 360 [ ВП 1 ПР 1 ] ПР 90

ПОВТОРИ 360 [ ВП 1 ПР 1 ] ПР 90

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

ПО ПОВТОРИ 4 [ПОВТОРИ 360 [ ВП 1 ПР 1 ] ПР 90 ]

Такая конструкция, когда внутри одного цикла содержится другой, называется вложенный цикл.

Домашние задания для самостоятельного решения.

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

2. Нарисовать стебель и 16 игольчатых лепестков на нем.

3. Нарисовать пучок из 30 разноцветных расходящихся лучей длиной по 60 шагов. Угол между крайними лучами 60 градусов.

4. Объясните, что подучится, если черепашка выполнит следующие команды:

а) ПО ПОВТОРИ 6 [ЛВ 45 ВП 30 ПР 90 ВП 30 ЛВ 45]

б) ПО ПОВТОРИ 4 [ПОВТОРИ 4 [ВП 40 ПР 90] ЛВ 90 ]

5. Нарисовать следующую фигуру:

6. Нарисовать следующую фигуру:

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

Программы и процедуры

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

это имя, а после них — конец.

«Имя» — это, в данном случае, название нашей программы. Вообще имена могут состоять из букв, цифр и знака подчеркивания _. Заметьте: Лого, в отличие от большинства языков программирования, допускает использование в именах русских букв. Однако, он при этом считает большие и маленькие русские буквы разными («FACE» и «face» будут считаться одним и тем же словом, а «рожица» и «Рожица» — разными). Обычно стараются пользоваться значащими (осмысленными) именами.

Теперь черепашка знает еще одну команду. Стоит нам набрать в поле команд слово «квадрат» («это» набирать не надо!) — и черепашка нарисует квадратик со стороной 60 шагов. А можно ли использовать нашу новую команду в программах? Конечно, можно. Например:

это четыре_квадрата
ПОВТОРИ 4 [квадрат лв 90 ]
конец

(Какой рисунок получится в результате?)

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

Контрольные вопросы

1. Как оформляется процедура на ЛОГО? Как исполнить ее?

2. Каким может быть имя процедуры?

3. Что изменится, если во вспомогательном алгоритме «квадрат» вместо команды «направо» поставить «налево»?

4. Когда используются вспомогательные алгоритмы?

Домашние задания для самостоятельного решения.

1. Составить цепочку программ Ель – Аллея – Лес.

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

3. Напишите процедуру рисования дуги. Используя ее напишите процедуру рисования лепестка, а затем программу рисования разных цветков.

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

Геометрические задачи в Лого

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

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

четыре вложенных друг в друга квадрата. Сторона самого большого квадрата — 80 шагов, следующего – 60 шагов, следующего — 40 шагов и самого маленького – 20 шагов.

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

Наша процедура будет выглядеть следующим образом:

Это квадрат :размер

повтори 4[ вп :размер пр 90]
конец

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

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

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

Наша программа будет выглядеть следующим образом:

пп нд 20 лв 90 вп 20 пр 90 по

пп нд 20 лв 90 вп 20 пр 90 по

пп нд 20 лв 90 вп 20 пр 90 по

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

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

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

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

Можно сделать программу более короткой, если переход от одного квадрата к другому оформить тоже в виде процедуры:

пп нд 20 лв 90 вп 20 пр 90 по

Тогда наша программа станет такой:

Немного усложним задачу. Пусть теперь нам нужно нарисовать следующую фигуру:

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

Наша процедура будет выглядеть следующим образом:

Это прямоугольник :высота :ширина

повтори 2 [вп :высота пр 90 вп :ширина пр 90]

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

Теперь составим программу:

прямоугольник 40 80

пп нд 20 лв 90 вп 20 пр 90 по

пп нд 20 лв 90 вп 20 пр 90 по

Читайте также:  Цветок с названием диантус

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

Теперь, если переход от одного прямоугольника к другому мы “убираем” в отдельную процедуру, наша программа будет выглядеть так:

прямоугольник 40 80

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

Это переход

пп нд 20 лв 90 вп 20 пр 90 по

конец

Бывает, что в задаче необходимо ввести не один, два параметра, а больше. Они вводятся точно по тем же правилам, что и два параметра.

Структура и правила использования

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

Процедура начинается с заголовка. Заголовок процедуры имеет следующий формат:

ЭТО имя процедуры список параметров

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

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

Перед каждым параметром ставится двоеточие. Список параметров в процедурах может и отсутствовать (в процедурах без параметра).

Заголовок процедуры пишется на отдельной строке. В конце заголовка обязательно нажать клавишу .

Процедура заканчивается словом конец.

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

Обращаются к процедурам (инициируют их выполнение) из программы, назвав имя процедуры и перечислив значения всех параметров в том порядке, в котором они стоят в заголовке процедуры. Значения параметров отделяются друг от друга и от названия процедуры пробелом.

Одна процедура вызывает другую процедуру

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

Перед нами задача: нарисовать вот такие пересеченные квадраты:

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

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

Это квадратсегмент :размер

повтори 4[вп :размер пр 90]

конец

Поскольку во всех четырех сегментах нарисовано одно и то же, можно написать процедуру, которая “размножает” содержимое одного сегмента на все другие, при переходе от одного сегмента к другому можно делать поворот направо нп 90 градусов:

Это квадрат :размер

повтори 4[квадратсегмент :размер пр 90]

конец

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

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

Это фигура

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

Выполните эту программу на компьютере.

Домашние задания для самостоятельного решения.

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

Треугольники, из которых состоит пирамида, все равные и правильные со стороной 80 шагов.

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

2.

Составьте программу с процедурами, которая рисует следующую фигуру: В ней вы можете видеть 6 одинаковых правильных треугольников. Один такой правильный треугольник обязательно должен рисоваться в процедуре. Длина стороны правильного треугольника пусть будет 60 шагов.

3. Используя процедуру с параметром, нарисуйте на листе Лого вот такую симпатичную рожицу:

4. Используя процедуру с двумя параметрами, сделайте программу, которая рисует следующий узор, соблюдая масштаб рисунка:

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

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

Задания с элементами головоломок

1. Из клетчатой бумаги вырежьте такие два квадрата, как указано на рисунке: один квадрат со стороной 8 клеточек, другой – со стороной 4 клеточки.

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

2. Разбейте правильный шестиугольник на 12 равных четырехугольников. (Четырехугольники не обязательно должны получиться правильными).

ПРОЦЕДУРЫ С ВЫЧИСЛЯЕМЫМИ ПАРАМЕТРАМИ

Фактические параметры в процедурах – числа, а с числами можно выполнять арифметические действия: сложение, вычитание, умножение деление.

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

В программе БАШНЯ используется процедура с параметром для рисования квадрата со страницы 11. Обратите внимание, что знаки арифметических действий с двух сторон должны быть выделены пробелами.

Команды для построения правильных многоугольников следующие:

ПОВТОРИ 3 [ ВП 50 ПР 120 ]

ПОВТОРИ 6 [ ВП 30 ПР 60 ]

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

Испытайте процедуру при разных значениях параметров.

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

Чтобы нарисовать круг надо выполнить следующие команды:

ПОВТОРИ 360 [ ВП 1 ПР 1 ]

А вот как будет выглядеть рекурсивная процедура рисования круга:

Черепашка будет бесконечно двигаться по кругу, поэтому для аварийной остановки программы надо нажать клавиши Ctrl + Break.

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

ЭТО КВАДРАТЫ :СТОРОНА

ПОВТОРИ 4 [ВП :СТОРОНА ПР 90]

Команда ЖДИ замедляет выполнение программы. Параметр 1 определяет время задержки. Эта программа тоже будет выполняться бесконечно, поэтому необходимо также как и в предыдущем примере прервать ее выполнение.

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

Условную конструкцию на языке ЛОГО можно записать следующим образом:

Это неполная форма записи условной команды в языке ЛОГО, которая выполняется следующим образом: если ”условие” выполняется, то происходит “действие”, иначе ничего не происходит.

Например: ЕСЛИ :СТОРОНА > 100 [ СТОП ]

Добавим эту команду в процедуру КВАДРАТЫ.

ЭТО КВАДРАТЫ :СТОРОНА

ПОВТОРИ 4 [ВП :СТОРОНА ПР 90]

ЕСЛИ :СТОРОНА > 100 [ СТОП ]

Теперь квадраты будут рисоваться до тех пор пока параметр СТОРОНА будет меньше 100, как только он станет больше 100 произойдет остановка программы.

Существует полная форм условной команды:

Которая выполняется следующим образом: если ”условие” выполняется, то происходит “действия1”, иначе происходит “действия2”.

ЕСЛИ_ИНАЧЕ :СТОРОНА > 100 [СТОП] [:СТОРОНА 0 ]

Условие — это некоторое выражение, о котором можно сказать, что оно истинно или ложно. При его записи можно использовать знаки сравнения ( , =), а также логические операции: и, или, не.

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

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

Читайте также:  Ремень резинка с цветком

Домашние задания для самостоятельного решения.

1. Составьте рекурсивную процедуру с параметрами, рисующую на экране спирали с различными углами поворота (например: 90, 60, 45, 30 градусов или 93, 120, 135, 144, 145, 160, 170 градусов). Спираль – это геометрическая фигура, у которой каждая последующая сторона немного больше предыдущей.

2. Измените процедуру предыдущей задачи, увеличивая не сторону, а угол поворота. Посмотрите, что при этом получится.

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

4. Составьте программу, описывающую действия путника при выборе пути в русской сказке: «Направо пойдешь – коня потеряешь, налево пойдешь – смертью умрешь, прямо пойдешь – друга найдешь»

ПЕРЕМЕННАЯ В АЛГОРИТМЕ

Черепашка умеет не только рисовать но и решать различные математические задачи. Например, решить уравнение a*x + b = 0. Для решения этой задачи надо выполнить следующий алгоритм:

2. посчитать x = 0 – b / a

3. получить значение x.

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

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

пусть переменная выражение
Например, пусть “а :с + 23

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

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

Предположим, переменная «х» имела значение 5. Что произойдет? Сперва вычисляется значение выражения: :х + 1 = 5 + 1 = 6. Затем полученный результат помещается в переменную «х». Таким образом, как мы видим, при выполнении такой команды значение переменной увеличивается на единицу.

В выражениях можно использовать числа, переменные, арифметические знаки (+, -, *, /), а также некоторые функции, например, квадратный корень (обозначается — кк). Для указания нужного порядка действий применяют круглые скобки. В Лого все знаки действий отделяются с обеих сторон пробелами. Например, для вычислений по формуле нужно написать

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

пиши список вывода

При выполнении этой команды сообщения выводятся в текстовое окно — область на рабочем листе, предварительно определяемую с помощью инструмента . Все сообщения остаются в этом окне, пока не будет дана команда «сотри_текст» (ст).

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

сообщи список вывода

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

В качестве списка вывода можно использовать:

· текст, заключенный в квадратные скобки;

· одно слово с кавычками перед ним (без пробела);

· любую комбинацию из этих элементов, образованную с помощью функции «предложение»:

предложение список1 список2

пред список1 список2

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

Выполняя такую команду, компьютер показывает окно диалога с текстом вопроса ( — он формируется так же, как список вывода), рамкой для ввода ответа и кнопками «OK» и «Отменить». Человек должен набрать ответ, а затем щелкнуть на кнопке «OK». Теперь можно этот ответ как-то использовать. Чаще всего его помещают в переменную с помощью уже известной команды «пусть«, например, пусть “x ответ

Вот примеры процедуры с использованием команд ввода и вывода:

это знакомство
спроси [Привет! Как тебя зовут?]
пусть “имя ответ
сообщи (пред [Приятно познакомиться,] :имя)
конец

это уравнение
пиши [Решение уравнения вида ax+b=0]
спроси [Чему равен коэффициент a?]
пусть “a ответ
спроси [Чему равен коэффициент b?]
пусть “b ответ
пусть “x 0 — :b / :a
сообщи пред [Корень уравнения x=] 😡
конец

Рассмотрим еще один пример. Пусть случайным образом заданы два числа. Вывести наибольшее из этих чисел.

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

если_иначе :а > :В [сообщи (пред [наибольшее а=] :а)] [сообщи (пред [наибольшее в=] :в)]

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

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

Любое трехзначное число можно записать следующим образом:

Тогда чтобы найти первую цифру А, надо взять целое от деления числа N на 100, для нахождения второй цифры В числа N, надо взять целое от деления числа на десять, а затем от полученного результата взять остаток от деления на 10, последнюю цифру числа можно получить, взяв остаток от деления на 10 числа N. На языке ЛОГО это будет выглядеть следующим образом:

Составим программу решения задачи.

ПИШИ ПРЕД [ СУММА ЦИФР = ] :СУММА

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

Теперь дадим определения некоторых натуральных чисел.

Палиндром – натуральное число, которое одинаково читается слева направо и справа налево, например, 5, 11, 121, 1221, 36763 и т. д.

Простое – натуральное число, которое делится только на само себя и на единицу, например, 7, 13, 31, 113 и т. д.

Счастливое – натуральное число, у которого сумма правой половины цифр равна сумме левой, например 341260 (3+4+1 = 2+6+0).

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

Контрольные вопросы

1. Что такое переменная? Чем она характеризуется?

2. Для чего служит операция присваивания? Как записывается в Лого команда присваивания?

3. Как записываются в Лого арифметические выражения?

4. Как будет выглядеть выражениев компьютерной записи?

5. Какому математическому выражению соответствует запись: (5 + :x) / 3 / (:y — 1)?

6. По каким командам осуществляется обмен сообщениями между компьютером и пользователем?

Домашние задания для самостоятельного решения.

1. Дано натуральное четырехзначное число n. Получить все цифры числа n и частные от деления числа n на каждую из своих цифр

2. Мой богатый дядюшка подарил мне 1$ в мой первый день рождения. В каждый следующий день рождения он удваивал свой подарок и прибавлял к нему столько долларов, сколько лет мне исполнилось. Подсчитать общую сумму денег, подаренных к 20-ому дню рождения.

3. В натуральном трехзначном числе a зачеркнули вторую цифру, полученное число вычли из числа a, результат умножили на 2, получилось число b. Задать число b и определить числа a.

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

Источник