c) ПО ЛВ 90 ВП 60 ПР 90 ВП 60
3. Составить алгоритмы, следуя которым черепашка правильно нарисует каждую цифру почтового индекса.
4. Напишите команды, в результате выполнения которых в текстовом окне и в командном центре будет напечатано значение площади прямоугольника со сторонами 13 и 123.
Циклические АЛГОРИТМЫ
Вспомним алгоритм рисования квадрата.
ПО
ВП 60 ПР 90
ВП 60 ПР 90
ВП 60 ПР 90
ВП 60 ПР 90
В этом алгоритме команды ВП 60 ПР 90 повторяются 4 раза.
Во всех языках программирования существует способ сокращенной записи повторяющихся действий – циклический алгоритм. В языке ЛОГО для записи циклического алгоритма используется команда
ПОВТОРИ N [ список команд ], где N – целое число, обозначающее количество повторений.
Тогда алгоритм рисования квадрата можно записать так
ПО ПОВТОРИ 4 [ ВП 60 ПР 90 ]
Как нарисовать в ЛОГО правильный многоугольник?
Правильным многоугольником называется многоугольник, у которого все стороны и углы равны.
Рассмотрим, например, правильный треугольник:
|
|
На рисунке один из внутренних углов правильного треугольника обозначен цифрой 1. Цифрой 2 на рисунке обозначен один из внешних углов. Для любого правильного многоугольника сумма его внешних углов равна 360 градусов и внешние углы равны между собой.
Для треугольника внешний угол равен:
360 : 3 = 120 градусов.
Для многоугольника формула вычисления внешнего угла следующая:
360 : N, где N – количество вершин.
Чтобы черепашке нарисовать правильный треугольник, в каждой вершине ей надо повернуться на угол, равный внешнему углу треугольника. Повернем сначала черепашку на сторону основания, потом нарисуем правильный треугольник, поворачивая налево:
ПО ПР 90
ПОВТОРИ 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" будут считаться одним и тем же словом, а "рожица" и "Рожица" -- разными). Обычно стараются пользоваться значащими (осмысленными) именами.
Напишем, например,
это квадрат
по
ПОВТОРИ 4 [ ВП 60 ПР 90 ]
пп
конец
Теперь черепашка знает еще одну команду. Стоит нам набрать в поле команд слово "квадрат" ("это" набирать не надо!) - и черепашка нарисует квадратик со стороной 60 шагов. А можно ли использовать нашу новую команду в программах? Конечно, можно. Например:
это четыре_квадрата
ПОВТОРИ 4 [квадрат лв 90 ]
конец
(Какой рисунок получится в результате?)
Как видите, здесь алгоритм построения всего рисунка состоит из нескольких частей (в данном случае они одинаковые, но это совсем не обязательно), каждая из которых выполняется в соответствии с другим, заранее известным, алгоритмом. Такой алгоритм, выполняющий некоторую относительно законченную часть основной задачи, называют вспомогательным алгоритмом, а соответствующую "вспомогательную программу" -- процедурой (или подпрограммой). На самом деле, никаких принципиальных отличий между головной программой и вспомогательными процедурами нет. Поэтому во многих языках программирования головная программа оформляется так же или почти так же, как процедура. Когда используют процедуры? Во-первых, если один и тот же алгоритм используется несколько раз по ходу решения задачи. Это вполне очевидно: зачем десять раз писать одно и то же.
Контрольные вопросы
1. Как оформляется процедура на ЛОГО? Как исполнить ее?
2. Каким может быть имя процедуры?
3. Что изменится, если во вспомогательном алгоритме "квадрат" вместо команды "направо" поставить "налево"?
4. Когда используются вспомогательные алгоритмы?
Домашние задания для самостоятельного решения.
1. Составить цепочку программ Ель – Аллея – Лес.
2. Составить программы рисования фигур из задания 1 со страницы 6 с использованием процедуры квадрат.
3. Напишите процедуру рисования дуги. Используя ее напишите процедуру рисования лепестка, а затем программу рисования разных цветков.
4. 

Выделите в каждой из изображенных фигур повторяющийся элемент. Напишите процедуры для их построения.
Геометрические задачи в Лого
процедуры с параметрами
Предположим, перед нами стоит задача составить программу, которая бы рисовала на листе ЛОГО следующий рисунок:
![]() |
четыре вложенных друг в друга квадрата. Сторона самого большого квадрата - 80 шагов, следующего – 60 шагов, следующего - 40 шагов и самого маленького – 20 шагов.
Давайте сделаем процедуру, которая будет рисовать квадрат, но вместо конкретного количества шагов, определяющего размер квадрата, поставим переменную, значение которой можно изменять. Имя переменной дадим размер.
Наша процедура будет выглядеть следующим образом:
Это квадрат :размер
повтори 4[ вп :размер пр 90]
конец
Обратите внимание, перед именем переменной каждый раз ставится двоеточие, а перед двоеточием пробел. Пробел между двоеточием и переменной не допускается.
Эта запись означает, что значение переменной для команды вп, будет браться из переменной размер, которая стоит в заголовке процедуры. Такие переменные в процедурах называют параметрами. Значения параметров внутри процедуры не меняется.
При составлении программы нам нужно будет четыре раза выполнить процедуру, каждый раз указывая новое значение параметра размер и осуществлять переход от одного квадрата к другому.
Наша программа будет выглядеть следующим образом:
по
квадрат 40
пп нд 20 лв 90 вп 20 пр 90 по
квадрат 80
пп нд 20 лв 90 вп 20 пр 90 по
квадрат 120
пп нд 20 лв 90 вп 20 пр 90 по
квадрат 160
Первый раз мы вызываем процедуру и присваиваем параметру размер значение 40. Теперь процедура будет выполнять свои действия, считая, что размер равен 40.
Второй раз мы вызываем процедуру и присваиваем параметру размер значение 80. Теперь процедура будет выполнять свои действия, считая, что размер равен 80.
Третий раз мы из программы вызываем процедуру и присваиваем параметру размер значение 120. Теперь процедура будет выполнять свои действия, считая, что размер равен 120 черепашьих шагов.
Последний, четвертый раз мы вызываем процедуру и присваиваем параметру размер значение 160. Теперь процедура будет выполнять свои действия, считая, что размер равен 160.
Можно сделать программу более короткой, если переход от одного квадрата к другому оформить тоже в виде процедуры:
Это переход
пп нд 20 лв 90 вп 20 пр 90 по
конец
Тогда наша программа станет такой:
по
квадрат 40
переход
квадрат 80
переход
квадрат 120
переход
квадрат 160
Немного усложним задачу. Пусть теперь нам нужно нарисовать следующую фигуру:
![]() |
Этот рисунок будем делать с процедурой. Вы наверно уже поняли, что процедура должна рисовать один прямоугольник. Но в прямоугольнике необходимо задавать количество шагов ширины и количество шагов высоты. Тогда давайте сделаем процедуру с двумя параметрами. Один параметр - ширина, другой - высота.
Наша процедура будет выглядеть следующим образом:
Это прямоугольник :высота :ширина
повтори 2 [вп :высота пр 90 вп :ширина пр 90]
конец
Если в процедуре несколько параметров, они перечисляются через пробел в заголовке процедуры. Остальные правила остаются в силе: перед параметром обязательно ставится двоеточие, а перед двоеточием - пробел. Пробелы между двоеточием и параметром не допускаются.
Теперь составим программу:
по
прямоугольник 40 80
пп нд 20 лв 90 вп 20 пр 90 по
прямоугольник
пп нд 20 лв 90 вп 20 пр 90 по
прямоугольник
Когда в программе мы вызываем процедуру, то сначала указываем значение параметра ширина, потом значение параметра высота, точно так, как они стоят в заголовке процедуры.
Теперь, если переход от одного прямоугольника к другому мы “убираем” в отдельную процедуру, наша программа будет выглядеть так:
по
прямоугольник 40 80
переход
прямоугольник
переход
прямоугольник
На листе программ будет две процедуры. Первая - прямоугольник, вторая - переход.
Это переход
пп нд 20 лв 90 вп 20 пр 90 по
конец
Бывает, что в задаче необходимо ввести не один, два параметра, а больше. Они вводятся точно по тем же правилам, что и два параметра.
Структура и правила использования
процедур
Теперь подведем некоторые итоги по правилам использования и структуре процедур.
Процедура начинается с заголовка. Заголовок процедуры имеет следующий формат:
ЭТО имя процедуры список параметров
Имя процедуры - это любой набор букв и цифр. Имя процедуры должно отличаться от имен всех примитивов языка Лого и имен других процедур и переменных и не содержать пробела.
Список параметров содержит имена параметров, которые используются в процедуре и значения которых надо задать при обращении к процедуре. Имена параметров придумывает автор процедуры. Они могут содержать любые буквы и цифры.
Перед каждым параметром ставится двоеточие. Список параметров в процедурах может и отсутствовать (в процедурах без параметра).
Заголовок процедуры пишется на отдельной строке. В конце заголовка обязательно нажать клавишу <Enter>.
Процедура заканчивается словом конец.
Порядок, в котором процедуры располагаются на листе программ, совершенно несущественен.
Обращаются к процедурам (инициируют их выполнение) из программы, назвав имя процедуры и перечислив значения всех параметров в том порядке, в котором они стоят в заголовке процедуры. Значения параметров отделяются друг от друга и от названия процедуры пробелом.
Одна процедура вызывает другую процедуру
Рассмотрим один из часто используемых способов при работе с процедурами, когда одна процедура вызывает другую.
Перед нами задача: нарисовать вот такие пересеченные квадраты:
![]() |
Если внимательно вглядеться в рисунок, то можно увидеть, что его можно разделить на четыре одинаковых части - сегменты. В каждом сегменте пять разного размера квадратов.
Квадраты одного сегмента удобно нарисовать в процедуре с одним параметром размер, в котором можно задать длину стороны квадрата в черепашьих шагах.
Это квадратсегмент :размер
повтори 4[вп :размер пр 90]
конец
Поскольку во всех четырех сегментах нарисовано одно и то же, можно написать процедуру, которая “размножает” содержимое одного сегмента на все другие, при переходе от одного сегмента к другому можно делать поворот направо нп 90 градусов:
Это квадрат :размер
повтори 4[квадратсегмент :размер пр 90]
конец
Заметьте, что и в той, и в другой процедуре, есть один и тот же параметр размер. При этом, процедура квадрат использует процедуру квадратсегмент.
Теперь создадим третью процедуру, которая будет использовать процедуру квадрат и задавать все необходимые значения параметра размер для нашего рисунка:
Это фигура
по
квадрат 20
квадрат 40
квадрат 60
квадрат 80
квадрат 100
конец
Нам остается один раз вызвать из поля команд процедуру фигура, и на листе черепашка нарисует нужную нам композицию.
Выполните эту программу на компьютере.
Домашние задания для самостоятельного решения.
1. Составьте программу с процедурами, которая рисует вот такую пирамиду из правильных треугольников:
![]() |
Треугольники, из которых состоит пирамида, все равные и правильные со стороной 80 шагов.
Обязательно нужно составить процедуру, которая рисует один треугольник и использовать ее в своей программе.
2.
![]() |
Составьте программу с процедурами, которая рисует следующую фигуру: В ней вы можете видеть 6 одинаковых правильных треугольников. Один такой правильный треугольник обязательно должен рисоваться в процедуре. Длина стороны правильного треугольника пусть будет 60 шагов.
3.
Используя процедуру с параметром, нарисуйте на листе Лого вот такую симпатичную рожицу:
4.
Используя процедуру с двумя параметрами, сделайте программу, которая рисует следующий узор, соблюдая масштаб рисунка:
5.
Сделайте программу, которая нарисует паутинку, состоящую из шести сегментов, каждый из которых - из шести правильных, но разных по величине треугольников.

6. Нарисуйте на листе Лого три вложенные пятиконечные звезды. Обязательно используйте процедуру с параметром, в которой будет рисоваться одна звезда.
Задания с элементами головоломок
1. Из клетчатой бумаги вырежьте такие два квадрата, как указано на рисунке: один квадрат со стороной 8 клеточек, другой – со стороной 4 клеточки.
![]() |
Большой квадрат разрежьте сначала пополам, а затем каждую половинку разрежьте на два треугольника. Из полученных четырех прямоугольных треугольников и малого квадрата сложите один большой квадрат. Полученную фигуру с «прорисовкой» всех ее частей нарисуйте в Лого, используя процедуру без параметра. В этой процедуре должен рисоваться один прямоугольный треугольник. Программу постарайтесь сделать наиболее рациональным способом.
2. Разбейте правильный шестиугольник на 12 равных четырехугольников. (Четырехугольники не обязательно должны получиться правильными).

ПРОЦЕДУРЫ С ВЫЧИСЛЯЕМЫМИ ПАРАМЕТРАМИ
Фактические параметры в процедурах – числа, а с числами можно выполнять арифметические действия: сложение, вычитание, умножение деление.
Нарисуем башню из разных по величине квадратов. Программа для нее будет выглядеть так:
ЭТО БАШНЯ :СТОРОНА
КВАДРАТ :СТОРОНА
ВП :СТОРОНА
КВАДРАТ :СТОРОНА / 2
ВП :СТОРОНА / 2
КВАДРАТ :СТОРОНА / 4
КОНЕЦ
В программе БАШНЯ используется процедура с параметром для рисования квадрата со страницы 11. Обратите внимание, что знаки арифметических действий с двух сторон должны быть выделены пробелами.
Команды для построения правильных многоугольников следующие:
Правильный треугольник
ПОВТОРИ 3 [ ВП 50 ПР 120 ]
Правильный шестиугольник
ПОВТОРИ 6 [ ВП 30 ПР 60 ]
Поскольку эти команды отличаются количеством повторений, углом поворота и стороной можно написать процедуру построения правильного многоугольника:
ЭТО МНОГОУГОЛЬНИК :N :A
ПОВТОРИ :N [ ВП :А ПР 360 / :N ]
КОНЕЦ
Испытайте процедуру при разных значениях параметров.
РЕКУРСИВНЫЕ ПРОЦЕДУРЫ.
УСЛОВНЫЕ КОНСТРУКЦИИ
Рекурсия – это такая организация алгоритма, при которой программа вызывает саму себя.
Чтобы нарисовать круг надо выполнить следующие команды:
ПОВТОРИ 360 [ ВП 1 ПР 1 ]
А вот как будет выглядеть рекурсивная процедура рисования круга:
ЭТО КРУГ
ВП 1 ПР 1
КРУГ
КОНЕЦ
Черепашка будет бесконечно двигаться по кругу, поэтому для аварийной остановки программы надо нажать клавиши Ctrl + Break.
В рекурсивных процедурах можно использовать параметры. Для того, чтобы нарисовать квадраты изображенные на картинке, можно воспользоваться следующей рекурсивной процедурой:
ЭТО КВАДРАТЫ :СТОРОНА
ПОВТОРИ 4 [ВП :СТОРОНА ПР 90]
ЖДИ 1
КВАДРАТЫ :СТОРОНА + 3
КОНЕЦ
Команда ЖДИ замедляет выполнение программы. Параметр 1 определяет время задержки. Эта программа тоже будет выполняться бесконечно, поэтому необходимо также как и в предыдущем примере прервать ее выполнение.
Однако, рекурсию можно закончить и нормальным образом с помощью условной конструкции.
Условную конструкцию на языке ЛОГО можно записать следующим образом:
ЕСЛИ условие [ действие ]
Это неполная форма записи условной команды в языке ЛОГО, которая выполняется следующим образом: если ”условие” выполняется, то происходит “действие”, иначе ничего не происходит.
Например: ЕСЛИ :СТОРОНА > 100 [ СТОП ]
Добавим эту команду в процедуру КВАДРАТЫ.
ЭТО КВАДРАТЫ :СТОРОНА
ПОВТОРИ 4 [ВП :СТОРОНА ПР 90]
ЕСЛИ :СТОРОНА > 100 [ СТОП ]
ЖДИ 1
КВАДРАТЫ :СТОРОНА + 3
КОНЕЦ
Теперь квадраты будут рисоваться до тех пор пока параметр СТОРОНА будет меньше 100, как только он станет больше 100 произойдет остановка программы.
Существует полная форм условной команды:
ЕСЛИ_ИНАЧЕ условие [ действия1 ] [ действия2 ]
Которая выполняется следующим образом: если ”условие” выполняется, то происходит “действия1”, иначе происходит “действия2”.
Например:
ЕСЛИ_ИНАЧЕ :СТОРОНА > 100 [СТОП] [:СТОРОНА 0 ]
Условие - это некоторое выражение, о котором можно сказать, что оно истинно или ложно. При его записи можно использовать знаки сравнения (<, >, =), а также логические операции: и, или, не.
В краткой условной команде действия выполняются только в том случае, когда условие истинно. В полной - когда условие истинно, выполняется первый список действий, а когда ложно - второй. Затем начинает выполняться команда, следующая за условной.
Условные команды, как и циклы, могут быть вложенными. Это полезно, например, если нужно выбрать один вариант действий не из двух, а из трех, четырех или более.
Домашние задания для самостоятельного решения.
1. Составьте рекурсивную процедуру с параметрами, рисующую на экране спирали с различными углами поворота (например: 90, 60, 45, 30 градусов или 93, 120, 135, 144, 145, 160, 170 градусов). Спираль – это геометрическая фигура, у которой каждая последующая сторона немного больше предыдущей.
2. Измените процедуру предыдущей задачи, увеличивая не сторону, а угол поворота. Посмотрите, что при этом получится.
3. Составьте рекурсивную процедуру, рисующую на экране дерево, у которого каждая следующая ветвь меньше предыдущей в два раза.
4. Составьте программу, описывающую действия путника при выборе пути в русской сказке: «Направо пойдешь – коня потеряешь, налево пойдешь – смертью умрешь, прямо пойдешь – друга найдешь»
ВЫЧИСЛИТЕЛЬНЫЕ ЗАДАЧИ.
ПЕРЕМЕННАЯ В АЛГОРИТМЕ
Черепашка умеет не только рисовать но и решать различные математические задачи. Например, решить уравнение a*x + b = 0. Для решения этой задачи надо выполнить следующий алгоритм:
1. задать значения a и b
2. посчитать x = 0 – b / a
3. получить значение x.
В этой задаче a, b, x переменные. Что же это такое?
Переменная – объект в программе, имеющий имя и изменяемое значение. Для каждой переменной выделено определенное место в памяти компьютера.
В программах на языке ЛОГО для создания переменной применяется следующая команда:
пусть “переменная выражение
Например, пусть “а :с + 23
Обратите внимание! Перед именем переменной в команде "пусть" стоят кавычки (без пробела). Так в ЛОГО показывается, что мы имеем здесь дело с местом памяти, где хранится значение переменной, а не само значение. Чтобы получить значение переменной необходимо поставить в выражении перед именем переменной двоеточие.
При исполнении команды присваивания происходит следующее. Сначала вычисляется значение выражения в правой части (при тех значениях, которые имели переменные непосредственно перед этой командой). Затем результат помещается в заданную переменную. При этом ее старое значение теряется. В качестве примера рассмотрим очень часто встречающуюся команду:
пусть “х :х + 1
Предположим, переменная "х" имела значение 5. Что произойдет? Сперва вычисляется значение выражения: :х + 1 = 5 + 1 = 6. Затем полученный результат помещается в переменную "х". Таким образом, как мы видим, при выполнении такой команды значение переменной увеличивается на единицу.
В выражениях можно использовать числа, переменные, арифметические знаки (+, -, *, /), а также некоторые функции, например, квадратный корень (обозначается - кк). Для указания нужного порядка действий применяют круглые скобки. В Лого все знаки действий отделяются с обеих сторон пробелами. Например, для вычислений по формуле
нужно написать
пусть “z (:x + 3) / (2 * :y)
А как сделать, чтобы человек смог увидеть результат вычислений? Для этого служат команды вывода. В ЛОГО их несколько, мы будем использовать две.
пиши список вывода
При выполнении этой команды сообщения выводятся в текстовое окно - область на рабочем листе, предварительно определяемую с помощью инструмента
. Все сообщения остаются в этом окне, пока не будет дана команда "сотри_текст" (ст).
В случае использования другой команды:
сообщи список вывода
появляется сигнальное окно с текстом и кнопкой "OK". По щелчку на этой кнопке окно исчезает, и только после этого продолжается исполнение программы.
В качестве списка вывода можно использовать:
· выражение;
· текст, заключенный в квадратные скобки;
· одно слово с кавычками перед ним (без пробела);
· любую комбинацию из этих элементов, образованную с помощью функции "предложение":
предложение список1 список2
пред список1 список2
При составлении программы может потребоваться, чтобы компьютер спрашивал какие-либо исходные данные у пользователя. Для этого используют команды ввода. В ЛОГО есть команда "спроси":
спроси список
Выполняя такую команду, компьютер показывает окно диалога с текстом вопроса (<список> - он формируется так же, как список вывода), рамкой для ввода ответа и кнопками "OK" и "Отменить". Человек должен набрать ответ, а затем щелкнуть на кнопке "OK". Теперь можно этот ответ как-то использовать. Чаще всего его помещают в переменную с помощью уже известной команды "пусть", например, пусть “x ответ
Вот примеры процедуры с использованием команд ввода и вывода:
это знакомство
спроси [Привет! Как тебя зовут?]
пусть “имя ответ
сообщи (пред [Приятно познакомиться,] :имя)
конец
это уравнение
пиши [Решение уравнения вида ax+b=0]
спроси [Чему равен коэффициент a?]
пусть “a ответ
спроси [Чему равен коэффициент b?]
пусть “b ответ
пусть “x 0 - :b / :a
сообщи пред [Корень уравнения x=] :x
конец
Рассмотрим еще один пример. Пусть случайным образом заданы два числа. Вывести наибольшее из этих чисел.
В программе будем использовать функцию получения случайного числа СЛ и условную команду.
это наибольшее_число
пусть "а сл 20
пусть "в сл 20
если_иначе :а > :В [сообщи (пред [наибольшее а=] :а)] [сообщи (пред [наибольшее в=] :в)]
конец
Таким образом, вместо ввода значений в программе можно использовать функцию получения случайного числа для задания исходных данных.
При изучении программирования рассматривают ряд задач на обработку натуральных чисел. Например, дано трехзначное число, найти сумму цифр этого числа.
Любое трехзначное число можно записать следующим образом:
N = A*100 + B*10 + C, где А, В, С – цифры числа.
Тогда чтобы найти первую цифру А, надо взять целое от деления числа N на 100, для нахождения второй цифры В числа N, надо взять целое от деления числа на десять, а затем от полученного результата взять остаток от деления на 10, последнюю цифру числа можно получить, взяв остаток от деления на 10 числа N. На языке ЛОГО это будет выглядеть следующим образом:
Для цифры А - ЦЕЛОЕ ( : N / 100 );
Для цифры В - ОСТАТОК ( ЦЕЛОЕ ( : N /;
Для цифры С - ОСТАТОК : N 10
Составим программу решения задачи.
ЭТО СУММА_ЦИФР
ПУСТЬ "N 100 + СЛ 899
ПИШИ ПРЕД [ ТРЕХЭНАЧНОЕ ЧИСЛО ] :N
ПУСТЬ "А ЦЕЛОЕ ( : N / 100 )
ПУСТЬ "В ОСТАТОК ЦЕЛОЕ ( : N /
ПУСТЬ "С ОСТАТОК : N 10
ПУСТЬ "СУММА :А + :В + :С
ПИШИ ПРЕД [ СУММА ЦИФР = ] :СУММА
КОНЕЦ
Обратите внимание на задание трехзначного числа. Функция СЛ 899 выберет любое число от 0 до 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 шагов (для рисования квадрата использовать процедуру с параметром).
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |










