Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №13/2008


Спецвыпуски

Программирование на Лого: задачник + решебник

Содержание

Введение
Задачи для начинающих

Блок № 1

Задача 1-1. “Цветочек вырос”

Задача 1-2. “Катись, катись, колобок”

Задача 1-3. “Самолет исчезает в облаках”

Блок № 2

Задача 2-1. “Времена года”

Задача 2-2. “Паук на паутине”

Задача 2-3. “Джип увяз в грязи”

Блок № 3

Задача 3-1. “Загадочный замок”

Задача 3-2. “Черепашка обходит свои владения”

Задача 3-3. “Светофор”

Черепашка рисует

Задача 1. “Ковш”

Задача 2. “Забор”

Задача 3. “Цифра восемь”

Задача 4. “Крест”

Задача 5. “Шестеренка”

Задача 6. “Сложная фигура”

Задача 7. “Пушинка”

Задача 8. “Снежинка”

Задача 9. “Венок”

Задача 10. “Треугольник”

Задача 11. “Бантик”

Задача 12. “Ромбик”

Задача 13. “Шестиугольник из треугольников”

Задача 14. “Катушка”

Задача 15. “Треугольник из трех треугольников”

Задача 16. “Забор из досок”

Координатная сетка

Задача 1. “Оси координат”

Задача 2. “Координатная сетка”

Задача 3. “Рисуем жирафа по координатам”

Задача 4. “Рисуем гусеницу по координатам”

Задача 5. “Рисуем зайца по координатам”

Задача 6. “Рисуем Петрушку по координатам”

Задача 7. “Рисуем белку по координатам”

Задача 8. “Рисуем бабочку по координатам”

Задача 9. “Рисуем Буратино по координатам”

Задача 10. “Рисуем собаку по координатам”

Графика и переменные

Задача 1. “Черепашка рисует квадраты”

Задача 2. “Черепашка рисует равносторонние многоугольники”

Задача 3. “Рекурсивная спираль”

Математические задачи с переменными

Блок № 1

Задача 1-1. “Расчет суммы двух чисел”

Задача 1-2. “Расчет квадрата числа 8”

Задача 1-3. “Расчет периметра квадрата”

Задача 1-4. “Делим яблоки”

Задача 1-5. “Считаем квадрат любого числа”

Блок № 2

Задача 2-1. “Диаграмма роста”

Задача 2-2. “Расчет среднего роста”

Задача 2-3. “Суммарный возраст членов семьи”

Задача 2-4. “Расчет скорости автомобиля”

Блок № 3

Задача 3-1. “Расчет длины отрезка”

Задача 3-2. “Расчет периметра прямоугольника”

Задача 3-3. “Расчет стороны прямоугольника по периметру и другой стороне”

Задача 3-4. “Сравнение длины и ширины прямоугольника”

Блок № 4

Задача 4-1. “Расчет 1/3 отрезка”

Задача 4-2. “Расчет 1/3 от 6”

Задача 4-3. “Продолжительность жизни белки и зайца”

Задача 4-4. “Высота Останкинской башни и Московского университета”

Блок № 5

Задача 5-1. “Рисуем угол 60 градусов”

Задача 5-2. “Рисуем угол и его биссектрису”

Задача 5-3. “Рисуем любой угол”

Задача 5-4. “Рисуем биссектрису любого угла”

Блок № 6

Задача 6-1. “Считаем сумму чисел”

Задача 6-2. “Считаем произведение чисел”

Задача 6-3. “Сколько будет 5*6 (диалог)?”

Задача 6-4. “Сколько будет 5*6 (текстовое окно)?”

Задача 6-5. “Тест по таблице умножения”

Дополнительные задачи на тему “Переменные”

Задача 1. “Нахождение наибольшего общего делителя”

Задача 2. “Расчет весового коэффициента”

Задача 3. “Расчет стоимости молока”

Задача 4. “Расчет времени бега”

Задача 5. “Расчет заработной платы”

Задача 6. “Круговая диаграмма “суша–океаны”

Задача 7. “Круговая диаграмма “площади океанов”

Задача 8. “Столбчатая диаграмма “длины рек Амур, Волга, Урал, Дон, Нева”

Задача 9. “Столбчатая диаграмма “площади озер”

Задача 10. “Расчет количества минут в месяце”

Задача 11. “Перевод фунтов в граммы”

Логические операции. Логические датчики И, ИЛИ, НЕ

Блок № 1

Задача 1-1. “Логическая операция НЕ”

Задача 1-2. “Логическая операция И”

Задача 1-3. “Логическая операция ИЛИ”

Задача 1-4. “Логические операции И, ИЛИ”

Блок № 2

Задача 2-1. “Логическая схема И-ИЛИ”

Задача 2-2. “Логическая схема ИЛИ-И”

Задача 2-3. “Логическая схема И-ИЛИ-ИЛИ”

Задача 2-4. “Логическая схема НЕ (И-ИЛИ)”

Разветвляющийся алгоритм

Блок № 1

Задача 1-1. “Анализ чисел на четность”

Задача 1-2. “Анализ чисел на делимость на 3”

Задача 1-3. “Анализ дроби на правильность”

Задача 1-4. “Анализ величины угла”

Блок № 2

Задача 2-1. “Тест на знание курсов черепашки”

Задача 2-2. “Рыбка в море”

Задача 2-3. “Рыбки в озере (анализ цвета поля)”

Задача 2-4. “Лев в клетке”

Блок № 3

Задача 3-1. “Поход в кино”’

Задача 3-2. “Призывники”

Задача 3-3. “Двузначное число”

Задача 3-4. “Поиск максимального из трех чисел”

Блок № 4

Задача 4-1. “Загадка с вариантами ответов”

Задача 4-2. “Мальвина идет в кино”

Задача 4-3. «”Да” и “нет” не говорить…»

Задача 4-4. “Анализ количества букв в текстовых окнах”

Блок № 5

Задача 5-1. “Управляем движением черепашки с клавиатуры”

Задача 5-2. “Управляем движением черепашки в диалоге”

Задача 5-3. “Столкновение черепашек”

Задача 5-4. “Гром гремит”

Дополнительные задачи (мини-проекты) на разветвляющийся алгоритм

Задача 1. “Движение корабля по течению и против”

Задача 2. “Расселяем животных”

Задача 3. “Рассчитываем налоги”

Многократное выполнение набора команд

Задача 1. “Поезд едет”

Задача 2. “Танцующие черепашки”

Задача 3. “Рисуем болото”

Задача 4. “Матрешки”

Задача 5. “Рекламные огни”

Задача 6. “Падающие буквы”

Задача 7. “Цифры”

Задача 8. “Рождение черепашек”

Задача 9. “Четные числа”

Циклические алгоритмы

Блок № 1

Задача 1-1. “Поросенок вырос”

Задача 1-2. “Собака в лужу попала”

Задача 1-3. “Котенок делает зарядку”

Задача 1-4. “Управляем движением черепашки с пульта”

Блок № 2

Задача 2-1. “Проверка на делимость на 5”

Задача 2-2. “Проверка на делимость на 3”

Задача 2-3. “Проверка на делимость на 2, 3, 5, 7”

Задача 2-4. “Код буквы”

Программирование игр

Игра № 1. “Лабиринт”

Игра № 2. “Мишень”

Игра № 3. “Минное поле”

Игра № 4. “Прицел”

Игра № 5. “Игровой автомат”

Игра № 6. “Бросаем кости”

Игра № 7. “Кто надует больший шар”

Игра № 8. “Тарабарская грамота”

Игра № 9. “Спортлото 5 из 35”

Игра № 10. “Отгадай число”

Игра № 11. “Найди мину”

Игра № 12. “Магнит”

Программирование текстовых окон

Блок № 1

Задача 1-1. “Мигающие окна”

Задача 1-2. “Новые текстовые окна”

Задача 1-3. “Копирование содержимого текстовых окон”

Задача 1-4. “Управление черепашкой из текстового окна”

Блок № 2

Задача 2-1. “Изменение шрифта, размера, цвета текста”

Задача 2-2. “Установка параметров текстового окна”

Задача 2-3. “Изменение размера текстового окна”

Задача 2-4. “Летающие слова”

Блок № 3

Задача 3-1. “Меняем размер нечетных букв в слове”

Задача 3-2. “Меняем цвет каждой третьей буквы в тексте”

Задача 3-3. “Гадаем по книге”

Задача 3-4. “Слова-перевертыши”

Блок № 4

Задача 4-1. “Новая кнопка”

Задача 4-2. “Поиск и замена слов в тексте”

Задача 4-3. “Подсчет гласных букв в тексте”

Задача 4-4. “Пирамида из слов”

Дополнительные задачи по теме “Программирование текстовых окон”

Задача 1. “Копируем строки текста”

Задача 2. “Узнаем коды букв русского алфавита”

Задача 3. “Случайный набор букв с изменяющимся размером”

Задача 4. “Ищем букву в тексте и меняем ее цвет и размер”

Задача 5. “Считаем количество букв в тексте”

Задача 6. “Случайно выбранные строки”

Задача 7. “Считаем количество строк в тексте”

Задача 8. “Приветствие”

Задача 9. “Палиндромы”

Задача 10. “Логогрифы”

Задача 11. “Акростих”

Задача 12. “Кругозвучия”

Программирование списков

Блок № 1

Задача 1-1. “Добавляем в список новый элемент”

Задача 1-2. “Считаем количество элементов в списке”

Задача 1-3. “Расчет суммы элементов списка”

Задача 1-4. “Циклы и списки”

Блок № 2

Задача 2-1. “Буриме”

Задача 2-2. “Ломаная линия”

Задача 2-3. “Среднее арифметическое элементов списка”

Задача 2-4. “Тест по русскому языку”

Блок № 3

Задача 3-1. “Гласные и согласные буквы русского алфавита”

Задача 3-2. “Рекламный текст”

Задача 3-3. “Расчет суммы квадратов элементов списка”

Задача 3-4. “Подсчет количества четных чисел в списке”

Блок № 4

Задача 4-1. “Перевод восьмеричных чисел в двоичные”

Задача 4-2. “Перевод двоичных чисел в десятичные”

Задача 4-3. “Перевод восьмеричных чисел в десятичные”

Дополнительные задачи по теме “Программирование списков”

Задача 1. “Рисуем ломаную линию по списку координат”

Задача 2. “Считаем и перемещаем элементы списка”

Задача 3. “Треугольник”

Задача 4. “Ищем максимальный элемент списка”

Задача 5. “Считаем сумму и разность сумм элементов двух списков”

Задача 6. “Объединяем два списка”

Задача 7. “Косим траву”

Задача 8. “Косим новую траву”

Задача 9. “Ищем ближайший цветок (поиск минимального элемента списка)”

Задача 10. “Облетаем все цветы (поиск минимального элемента списка)”

Задача 11. “Строим мальчиков по росту (сортировка элементов списка)”

Задача 12. “Поиск счастливых билетов”

Введение

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

Мы выделяем 5 этапов в изучении Лого.

1-й этап (3–4-е классы) — программирование объектов инструментальной среды Лого (текстовое окно, кнопка, бегунок, черепашка). На этом этапе команды, как правило, записываются в диалоговых окнах объектов, иногда на листе процедур (но пока еще только линейные алгоритмы). Во время прохождения этапа ведется работа над одним сквозным проектом, который начинается с простого рисунка, затем постепенно обогащается и усложняется. Результатом этого этапа может быть рекламный ролик или живая книга.

2-й этап (5-й класс) — программирование графики, т.е. рисование всевозможных геометрических фигур. Здесь вводятся новые типы алгоритмов — циклический и разветвляющийся. Графика хороша тем, что циклы и ветвления хорошо представлены на рисунке — например, забор, состоящий из дощечек. Здесь вводится понятие процедуры и процедуры с параметрами, так как детям непременно хочется создавать универсальные программы, а не переписывать много раз одно и то же с небольшими изменениями.

3-й этап (5-й класс) — математические расчеты. Прохождение этого этапа начинается с создания игры, где сначала идет повторение предыдущего материала, а потом начинают возникать ситуации, когда детям хочется, чтобы их игра задавала количество попыток и вела счет очкам. По ходу работы над проектом идет очень подробное объяснение, как это сделать, оказывается помощь практически каждому ученику, но в результате они понимают, что им жизненно необходимо это знать и уметь. Затем дается большое количество разных задач — расчет модуля числа, различные “прибавлялки”, “умножалки”, кассовые аппараты, калькулятор, игра “Кто надует больший шар”. Заканчивается все это большой совместной работой с математиками — построение столбчатых и круговых диаграмм. На этом этапе важно координировать свою работу с математиками, можно проводить интегрированные уроки. В задачах активно используются математические понятия — процент, дроби, смежные углы и т.д.

4-й этап (6-й класс) — работа со словами и списками. На этом этапе до минимума сводится коллективное обсуждение метода решения задач, создания блок-схемы. Идет более подробное изучение алгоритмов на более абстрактных задачах. Ориентация — на полную самостоятельность решения задач. На этом этапе можно координировать свою работу с преподавателями русского языка. Мы проводили интегрированные уроки (ученики готовили разные тесты на уроках информатики, затем на уроке русского языка проверяли знания друг друга).

5-й этап (6-й класс) — создание собственного компьютерного проекта. Он может быть и не очень сложным с точки зрения программирования, но, несомненно, должен быть завершен, иметь товарный вид. Цель этого курса — научить организовывать работу над большим компьютерным проектом (подготовка технического задания, распределение работы на этапы, распределение времени, самостоятельное освоение нового материала по информатике и в предметной области, взаимодействие с заказчиком, организация коллективной работы, доведение работы до конца, презентация проекта). Очень хотелось бы, чтобы этот этап не завершался — дети должны создавать проекты, которые будут востребованны на других предметах, и тогда они имели бы возможность сопровождать свои программные продукты, совершенствовать их и гордиться ими.

Этот задачник предназначен для использования на 2–4-м этапах. Задачник имеет электронную поддержку, которую можно получить на сайте “Информатики” в разделе “Download”.

Задачи для начинающих

Блок № 1

Задача 1-1. “Цветочек вырос”

Маленький цветочек (черепашка ч1) начинает расти и становится большим.

Указания. Используйте команду Лого нрз число — новый размер черепашки.

Решение

это росток
ч1, нф "цветок
нрз 20 жди 2
нрз 40 жди 2
нрз 60 жди 2
нрз 80 жди 2
нрз 100
конец

Задача 1-2. “Катись, катись, колобок”

Колобок катится, переворачиваясь, по дорожке из точки А в точку В.

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

Решение

это катись_катись
колобок, нм [-277 -76] нк 90
повтори 7 [
вп 20 нф "кол1
вп 20 жди 2 нф "кол2
вп 20 жди 2 нф "кол3
вп 20 жди 2 нф "кол4
жди 2
]
конец

Задача 1-3. “Самолет исчезает в облаках”

Самолет летит по листу слева направо и исчезает в облаках, затем снова появляется в небе.

Указания. Нарисуйте облако синего цвета в центре листа проекта. Запрограммируйте белый цвет так, чтобы при попадании на него самолет исчезал (используйте команду сч), а на синем цвете опять появлялся (используйте команду пч).

Решение

это полет
сам, нк 90 всегда [вп 20 жди 1]
конец

Блок № 2

Задача 2-1. “Времена года”

Продемонстрируйте смену времен года на одном дереве.

Указания. Предварительно в редакторе форм скопируйте форму лиственного дерева. Сделайте 3 копии. Одну — c желтыми листьями, вторую — заснеженную, третью — с голыми ветками.

Решение

это времена_года
дерево,
повтори 4 [
нф "лето жди 5
нф "осень жди 5
нф "зима жди 5
нф "весна жди 5
]
конец

Задача 2-2. “Паук на паутине”

Паучок (с именем Чук) перемещается из точки А в точку В, оставляя за собой след — тонкую черную паутину (линию).

Указания. Используйте команду Лого по — сокращение от Перо Опусти. Паук1, паук2 — название форм черепашки.

Решение

это паутина
Чук, пп нм [260 180] нк 180 по
повтори 7 [
вп 20 нф "паук1
жди 2 вп 20
нф "паук2 жди 2
] пп
конец

Задача 2-3. “Джип увяз в грязи”

Джип перемещается по листу слева направо и исчезает в грязи (луже черного цвета).

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

Решение

это поехали
авто, нф "джип нк 90
всегда [вп 10 жди 1]
конец

Блок № 3

Задача 3-1. “Загадочный замок”

В темноте стоит замок с темными окнами, затем открываются ворота, в окнах появляется свет, ворота закрываются.

Указания. Предварительно подготовьте в редакторе форм различные формы замка. Одну — с закрытыми воротами и темными окнами, вторую — с открытыми воротами и темными окнами, третью — с открытыми воротами и светлыми окнами, четвертую — с закрытыми воротами и светлыми окнами.

Решение

это вечер_в_замке
повтори 4 [
нф "замок1 жди 5
нф "замок2 жди 5
нф "замок3 жди 5
нф "замок4 жди 10
]
конец

Задача 3-2. “Черепашка обходит свои владения”

Черепаха обходит свои плантации, оставляя след.

Указания. Используйте команды: вп Х (вперед), нк Х (новый курс), по (перо опусти), пп (перо подними).

Решение

это обход
черепаха, нм [-65 -125]
по нк 0 вп 100
нк 90 вп 100
нк 180 вп 100
нк 270 вп 100 пп
конец

Задача 3-3. “Светофор”

Управляйте движением автомобиля с помощью светофора.

Указания. Нарисуйте светофор. Запрограммируйте красный цвет на нажатие мышки — останов. Зеленый цвет на нажатие мышки — всегда [вп 10]. Желтый цвет — системный звук Clarinet (просто впишите это слово в поле инструкция).

Черепашка рисует

Задача 1. “Ковш”

Нарисовать ломаную линию в форме ковша. Длина фрагмента — 30 пикселей.

Указания. Перо — это имя черепашки.

Решение

это ковш
перо, по пр 90 вп 30 лв 90 вп 30
пр 90 вп 30 пр 90 вп 30
конец

Задача 2. “Забор”

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

Решение

это ряд
по повтори 3 [ковш по налево 90 ]
конец

Задача 3. “Цифра восемь”

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

Решение

это восемь
повтори 2 [ковш]
конец

Задача 4. “Крест”

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

Решение

это крест

повтори 4 [ковш вп 30 лв 90]

конец

Задача 5. “Шестеренка”

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

Решение

это шестерня
повтори 10 [ковш лв 180 пр 360 / 10]
конец

Задача 6. “Сложная фигура”

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

Решение

это фигура1
повтори 10 [восемь нд 30 пр 360 / 10]
конец

Задача 7. “Пушинка”

Написать процедуру, которая рисует пушинку.

Решение

это пушинка
перо, повтори 10
[вп 30 нд 30 пр 360 / 10]
конец

Задача 8. “Снежинка”

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

Решение

это снежинка
по сч
повтори 9
[вп 30 пушинка нд 30 пр 360 / 9]
конец

Задача 9. “Венок”

Нарисовать венок, используя процедуру, которая рисует пушинку.

Решение

это венок
повтори 20 [вп 30 пушинка пр 360 / 20]
конец

Задача 10. “Треугольник”

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

Решение

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

Задача 11. “Бантик”

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

Решение

это бантик
треугольник пр 180 треугольник
конец

Задача 12. “Ромбик”

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

Решение

это ромб
треугольник пр 60
треугольник лв 60
конец

Задача 13. “Шестиугольник из треугольников”

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

Решение

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

Задача 14. “Катушка”

Нарисовать катушку, используя процедуру, которая рисует бантик.

Решение

это катушка
лв 30 бантик
пр 120 вп 20 лв 120 бантик
конец

Задача 15. “Треугольник из трех треугольников”

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

Решение

это треугольник3
лв 90
повтори 3[треугольник пр 60 вп 20 пр 60]
конец

Задача 16. “Забор из досок”

Написать процедуру, которая рисует одну доску забора.

Затем написать процедуру, которая рисует забор, используя процедуру, которая рисует доску.

Решение

это доска
перо, нк 0 по вп 100 пр 45 вп 10 пр 90
вп 10 пр 45 вп 100 пп нк 90 вп 10
конец
это забор 
повтори 10 [доска]
конец

Координатная сетка

Задача 1. “Оси координат”

Нарисовать на листе проекта две оси — Х и Y.

Решение

это оси
перо, сг нрп 2 нц 9


пп нм [-200 0] по нк 90 вп 400 ;ось Х
нк 300 вп 15 нд 15 ;стрелки на оси Х нк 240 вп 15 нд 15
пп нм [0 -200] по
нк 0 вп 400 ;ось У
нк 210 вп 15 нд 15 ;стрелки на оси У
нк 150 вп 15 нд 15
пп конец

Задача 2. “Координатная сетка”

Нарисовать на листе проекта координатную сетку с шагом 10.

Решение

это сетка
перо, сч
нрп 1 нц 3
нм [-200 200]
повтори 40 [
по нк 180 вп 400 нк 0 вп 400 нк 90 вп 10
]
нм [-200 200]
повтори 40[
по нк 90 вп 400 нк 270 вп 400
нк 180 вп 10
]
нц 15
конец

Задача 3. “Рисуем жирафа по координатам”

Нарисовать жирафа по координатам.

Указания. Перо — это имя черепашки.

Решение 1

это жираф


перо, пп нрп 3 нц 15 нм[100 0] по нм[60 -35] нм[70 -25] нм[89 -105]
нм[45 -175] нм[35 -175] нм[60 -110] нм[37 -100] нм[25 -85]
нм[10 -110] нм[25 -125]
нм[-20 -170] нм[-30 -170] нм[-5 -120] нм[-10 -100] нм[-10 -75] нм[-40 -60]
нм[-80 -170]
нм[-95 -180] нм[-60 -65] нм[-70 -60] нм[-115 -165] нм[-130 -170] нм[-85 -40] нм[-90 -15]
нм[-78 15] нм[-75 100] нм[-10 170] нм[-30 170] нм[-50 180] нм[-15 185] нм[0 175]
нм[0 190 5 180] нм[15 180] нм[15 190] нм[20 180] нм[30 170]
нм[40 150] нм[40 135]
нм[30 130] нм[15 135] нм[10 150] нм[0 160] нм[-35 85]
нм[-30 30] нм[45 -25] нм[100 0]
пп нм[10 165] по вп 2 конец

Решение 2 (после знакомства с темой “Программирование спиcков”)

это жираф2

пусть "коорд [

[100 0] [60 -35] [70 -25] [89 -105]
[45 -175] [35 -175]
[60 -110] [37 -100] [25 -85] [10 -110]
[25 -125] [-20 -170]
[-30 -170] [-5 -120] [-10 -100]
[-10 -75]
[-40 -60] [-80 -170] [-95 -180]
[-60 -65] [-70 -60] [-115 -165]
[-130 -170] [-85 -40] [-90 -15]
[-78 15] [-75 100] [-10?170]
[-30 170] [-50 180] [-15 185] [0 175]
[0 190] [5 180] [15 180] [15 190]
[20 180] [30 170] [40 150]
[40 135 ] [30 130] [15 135] [10 150]
[0 160] [-35 85] [-30 30]
[45 -25] [100 0] [10 165]

]

перо, пп нм элемент 1 :коорд по
пусть "х 2
повтори (сколько :коорд) - 2 [

нм элемент :х :коорд
пусть "х :х + 1

]

пп нм элемент (сколько :коорд) :коорд
по вп 2
пп нрп 3 нц 15

конец

Задача 4. “Рисуем гусеницу по координатам”

Нарисовать гусеницу по координатам

Решение

это гусеница

перо, пп нм [90 5]
по нм [75 30] нм [60 30] нм [45 20] нм [40 20]
нм [25 35] нм [15 35] нм [0 20] нм [-15 20] нм [-25 25]
нм [-40 30] нм [-20 30] нм [-10 40] нм [-20 45] нм [-30 45]
нм [-40 40 ] нм [-40 30] нм [-45 40] нм [-55 45] нм [-65 45]
нм [-74 40] нм [-65 30] нм [-55 30] нм [-40 30] нм [-50 25]
нм [-55 10] нм [-50 10] нм [-40 15] нм [-35 15] нм [-20 5]
нм [0 5] нм [15 20] нм [25 20] нм [35 10] нм [45 10]
нм [60 20] нм [70 20] нм [90 5] пп

конец

Задача 5. “Рисуем зайца по координатам”

Нарисовать зайца по координатам

Решение

это зайчик

пп
нм [50 10] по нм [60 30] нм [50 60] нм [40 70] нм [50 80]
нм [60 80] нм [80 90] нм [90 90] нм [70 80] нм [90 80]
нм [60 70] нм [70 60] нм [90 60] нм [110 50] нм [120 30]
нм [120 20] нм [130 30] нм [120 10] нм [70 10] нм [80 20]
нм [90 20] нм [80 30] нм [60 10] нм [50 10] пп нм [50 70]
по вп 2 пп

конец

Задача 6. “Рисуем Петрушку по координатам”

Нарисовать Петрушку по координатам

Решение

это петрушка

пп
нм [35 20] по нм [15 25] нм [5 25] нм [-15 20] нм [-20 10]
нм [-40 10] нм [-20 0] нм [-20 -10] нм [0 -10] нм [-20 -20]
нм [-10 -30] нм [10 -30] нм [10 -40] нм [30 -40] нм [30 -20]
нм [40 -10] нм [40 10] нм [35 20] нм [35 40] нм [20 60]
нм [05 70] нм [-15 70] нм [-30 60] нм [-40 35] нм [-45 35]
нм [-45 30] нм [-40 30] нм [-40 35] нм [-30 45] нм [-20 50]
нм [-10 45] нм [-15 20] пп нм [-05 10]
по вп 2 пп

конец

Задача 7. “Рисуем белку по координатам”

Нарисовать белку по координатам

Решение

это белка

пп
нм [40 -20] по нм [50 -10] нм [55 0] нм [60 15] нм [55 25]
нм [40 50] нм [30 55] нм [25 65] нм [40 70] нм [50 70]
нм [75 60] нм [85 40] нм [85 25] нм [70 0] нм [60 -10]
нм [40 -20] нм [35 -25] нм [-10 -25] нм [-5 -20] нм [10 -15]
нм [10 0] нм [20 20] нм [10 25] нм [5 20] нм [-10 20]
нм [-10 25] нм [5 25] нм [5 30] нм [10 40] нм [10 45]
нм [5 55] нм [-5 55] нм [-10 60] нм [-10 65] нм [0 70]
нм [0 75] нм [-5 80] нм [0 80] нм [0 75] нм [5 70]
нм [10 75] нм [-5 80] нм [0 80] нм [0 75] нм [5 70]
нм [10 75] нм [5 80] нм [10 80] нм [10 70] нм [20 65]
нм [25 60] нм [35 45] нм [55 25] нм [55 0] пп нм [0 65]
по вп 2 пп

конец

Задача 8. “Рисуем бабочку по координатам”

Нарисовать бабочку по координатам

Решение

это бабочка

пп
нм [5 -20] по нм [40 -50] нм [65 -40] нм [75 -10] нм [75 30]
нм [65 60] нм [45 70] нм [30 70] нм [5 25] нм [5 50]
нм [0 55] нм [10 70] нм [5 70] нм [5 75] нм [10 75]
нм [10 70] нм [0 55] нм [-10 70] нм [-5 70] нм [-5 75]
нм [-10 75] нм [-10 70] нм [0 50] нм [-5 50] нм [-5 25]
нм [-30 70] нм [-45 70] нм [-65 60] нм [-75 30] нм [-75 10]
нм [-65 -40] нм [-40 -50] нм [-5 -20] нм [-5 55] нм [0 -60]
нм [5 55] нм [5 -20]
пп

конец

Задача 9. “Рисуем Буратино по координатам”

Нарисовать Буратино по координатам

Решение

это буратино

пп нм [15 30] по нм [50 10] нм [45 -25] нм [60 -30] нм [30 -30]
нм [40 -25] нм [40 0] нм [20 -10] нм [15 -5] нм [20 10]
нм [10 0] нм [10 10] нм [-30 10] нм [10 20] нм [15 30]
нм [50 70] нм [50 75] нм [55 75] нм [55 70] нм [50 70]
нм [55 35] нм [50 10]
пп нм [20 20] по вп 2

конец

Задача 10. “Рисуем собаку по координатам”

Нарисовать собаку по координатам

Решение

это собака

пп нм [-10 30] по нм [10 10] нм [10 -20] нм [15 -20] нм [20 -15]
нм [25 10] нм [40 10] нм [60 0] нм [60 -20] нм [65 -20]
нм [70 -15] нм [75 05] нм [70 20] нм [85 30] нм [85 45]
нм [70 55] нм [60 55] нм [50 50] нм [60 45] нм [70 45]
нм [75 35] нм [70 30] нм [20 40] нм [0 60] нм [0 50]
нм [-10 60] нм [-10 50] нм [-20 40] нм [-30 40]
нм [-30 35]
нм [-20 30] нм [-10 30]
пп нм [-10 40] по вп 2 пп

конец

Графика и переменные

Задача 1. “Черепашка рисует квадраты”

Задание Решение Образец

1. Нарисовать квадрат со стороной 20

это квадрат

вп 20 пр 90 вп 20 пр 90
вп 20 пр 90 вп 20

конец

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

это квадрат2

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

конец

3. Написать процедуру, которая рисует квадрат с любой длиной стороны (используйте переменную)

то квадрат3 :а

повтори [вп :а пр 90]

конец

4. С помощью написанной выше процедуры из одной точки нарисовать квадраты со сторонами 40, 55, 70, 85

это 4квадрата

Квадрат3 40
Квадрат3 55
Квадрат3 70
Квадрат3 85

конец

5. Написать процедуру, которая рисует орнамент из квадратов

это орнамент

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

конец

6. Напиcать процедуру, которая рисует картинку

это веер

повтори 4 [квадрат2 пр 45]

конец

Задача 2. “Черепашка рисует равносторонние многоугольники”

Задание Решение Образец
1. Написать процедуру, которая рисует равносторонний треугольник
со стороной 50

это треугольник

перо, по
повтори 3 [
вп 50 пр 120
]
пп

конец

2. Написать процедуру, которая рисует равносторонний шестиугольник со стороной 50

это шестиугольник

перо, по
повтори 6 [
вп 50 пр 60
]
пп

конец

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

Нарисовать с помощью этой процедуры данный образец

это многоугольник :к

перо, по
повтори :к [
пр 360 / :к
вп 50
]

конец

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

Нарисовать с помощью этой процедуры данный образец

это Nугольник :к :а

перо, по повтори :к
[вп :а пр 360 / :к ]

конец

это кристалл

Nугольник 3 20
Nугольник 4 30
Nугольник 5 40
Nугольник 8 50

конец

5. С помощью написанных процедур нарисовать данные образцы

это многоугольники :к

повтори 24 [
перо, по
Nугольник :к 30 пр 15
]

Конец

В поле команд

многоугольники 3
многоугольники 6

Задача 3. “Рекурсивная спираль”

Нарисовать с помощью черепашки треугольную спираль.

Решение

это спираль "х; х – длина первого звена спирали

перо, по
если :х > 200 [автостоп]
вп :х пр 120
спираль :х + 3

конец

Математические задачи с переменными

Блок № 1

Задача 1-1. “Расчет суммы двух чисел”

Определить переменную Х, равную 10. Определить переменную Y, равную 15. В переменной С получить сумму переменных Х и Y. Результат вывести в текстовое окно Сумма_чисел.

Решение

это сложение

пусть "Х 10
пусть "Y 15
пусть "C :Х + :У
Сумма_чисел, ст вставь :С

конец

Задача 1-2. “Расчет квадрата числа 8”

Определить переменную Х, равную 8. Вывести ее значение в текстовое окно Само_число. В переменной Y получить произведение числа Х на число Х (квадрат числа). Результат вывести в текстовое окно Квадрат_числа.

Решение

это расчет_квадрата_числа

пусть "Х 8
пусть "Y :Х * :Х
Само_число, ст вставь :Х
Квадрат_числа, ст вставь :Y

конец

Задача 1-3. “Расчет периметра квадрата”

Сторона квадрата равна 50. Рассчитать значение периметра квадрата, вывести значение длины стороны и значение периметра в текстовые окна длина_стороны и периметр. Нарисовать квадрат.

Решение

это расчет__периметра_квадрата

пусть "сторона 50
пусть "перим :сторона * 4
длина_стороны, ст вставь :сторона
периметр, ст вставь :перим

конец

Задача 1-4. “Делим яблоки”

В корзине 15 яблок. Надо разделить эти яблоки между 5 детьми. Результат вывести в текстовое окно яблоки.

Решение

это яблоки

пусть "яб 15
пусть "дети 5
пусть "яб_на_1 :яб / :дети
яблоки, ст вставь :яб_на_1

конец

Задача 1-5. “Считаем квадрат любого числа”

Написать процедуру, которая рассчитывает квадрат любого числа.

Указание. Процедура должна быть с параметром. Покажем, например, процедуру, которая умножает любое число на 3.

это умнож "х

само_число, ст вставь :х
пусть "у :х * 3
число*3, ст вставь :у

конец

Запускать эту процедуру можно из поля команд. Например:

квадр_числа 8

В текстовое окно само_число будет выведено число 8, в текстовое окно квадрат_числа — число 24.

Решение

это квадр_числа "х

само_число, ст вставь :х
пусть "у :х * :х
квадрат_числа, ст вставь :у

конец

Блок № 2

Задача 2-1. “Диаграмма роста”

Написать процедуру, которая рисует столбчатую диаграмму.

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

это столбик "х

перо, нк 0 по
повтори 2 [

вп :х пр 90
вп 15 пр 90

]
пр 45 пп вп 5 нц сл 140 крась
нд 5 пр 45 вп 40

конец

Решение (примерное)

это одноклассники

перо, нм [-250 -100]
столбик 136
столбик 142
столбик 154

конец

Задача 2-2. “Расчет среднего роста”

Написать процедуру, которая считает средний рост трех учеников. Посчитанное число вывести в текстовое окно ср_рост.

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

Решение (примерное)

это рост

пусть "р1 136
пусть "р2 142
пусть "р3 154
пусть "ср (:р1 + :р2 + :р3) / 3
ср_рост, ст вставь :ср

конец

Задача 2-3. “Суммарный возраст членов семьи”

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

Указание. Возраст_всех — имя текстового окна, перо — имя черепашки.

Решение

это семья

пусть "папа 42
пусть "мама 38
пусть "сын 12
пусть "дочь 8
пусть "сум_возр :папа + :мама + :сын + :дочь
возраст_всех, ст вставь :сум_возр
перо, перо, нм [-250 -100]
столбик 42
столбик 38
столбик 12
столбик 8

конец

Задача 2-4. “Расчет скорости автомобиля”

Автомобиль проехал 210 километров за 3 часа. Рассчитать скорость автомобиля, результат вывести в текстовое окно скорость.

Решение

это расчет_скорости

пусть "расстояние 210
пусть "время 3
пусть "скор :расстояние / :время
скорость, ст вставь :скор

конец

Блок № 3

Задача 3-1. “Расчет длины отрезка”

Дан отрезок AD длиной 140. На нем отмечены две точки: B и С. Известно, что длина AB равна 20, длина CD равна 80. Рассчитать длину отрезка BC. Результат вывести в текстовое окно длинаBC.

Указание. Воспользуйся готовой процедурой, которая рисует отрезок.

это отрезок

перо, пп нм [-300 -40] по нк 0 вп 5
нд 10 вп 5
нк 90 вп 40 нк 0 вп 5 нд 10 вп 5
нк 90 вп 80 нк 0 вп 5 нд 10 вп 5
нк 90 вп 160 нк 0 вп 5 нд 10 вп 5

конец

Решение

это задача1

пусть "AD 140
пусть "AB 20
пусть "CD 80
пусть "BC :AD - :AB - :CD
длинаBC, ст вставь :BC

конец

Задача 3-2. “Расчет периметра прямоугольника”

Нарисовать прямоугольник со сторонами 40 и 150.

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

Решение

это задача2

пусть "дл 150
пусть "шир 40 перо, пп нм [-250 -100]
по повтори 2 [вп :дл пр 90 вп :шир пр 90]
пусть "пер (:дл + :шир) * 2
периметр, ст вставь :пер

конец

Задача 3-3. “Расчет стороны прямоугольника по периметру и другой стороне”

Периметр прямоугольника равен 200. Длина одной стороны 40. Рассчитать длину второй стороны, вывести значение длины в текстовое окно длина_стороны и нарисовать прямоугольник.

Решение

это задача3

пусть "дл1 40
пусть "пер 200
пусть "дл2 (:пер / 2) - :дл1
перо, по повтори 2 [вп :дл1 пр 90 вп :дл2 пр 90]
длина_стороны, ст вставь :дл2

конец

Задача 3-4. “Сравнение длины и ширины прямоугольника”

Периметр прямоугольника равен 400. Длина одной стороны 50. Рассчитать длину второй стороны (вывести в текстовое окно дл_стороны). Определить, во сколько раз длина стороны больше его ширины (вывести в текстовое окно в_раз), и нарисовать прямоугольник.

Решение

это задача4

пусть "дл1 50
пусть "пер 400
пусть "дл2 (:пер / 2) - :дл1
перо, пп нм [-250 -100]
по повтори 2 [вп :дл1 пр 90 вп :дл2 пр 90]
дл_стороны, ст вставь :дл2
пусть "р :дл2 / :дл1
в_раз, ст вставь :р

конец

Блок № 4

Задача 4-1. “Расчет 1/3 отрезка”

Дан отрезок AB длиной 300. Нарисовать отрезок CD, составляющий 1/3 отрезка AB. Значение длины второго отрезка вывести в текстовое окно.

Решение

это задача1

пусть "АБ 300
пусть "СД :АБ * 1 / 3
пп нм [-300 -50] по нк 0 вп 5 нд 10
вп 5 нк 90
по вп :СД нк 0 вп 5 нд 10 вп 5 пп
длинаСД, ст вставь :СД

конец

Задача 4-2. “Расчет 1/3 от 6”

Напиcать процедуру, которая закрашивает красным цветом 1/3 от общего количества кубиков (всего 6 кубиков). Расстояние между кубиками: 30.

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

это кубики

перо, нц 9 сг сч пп нм[-200 -100]
повтори 6 [по повтори 4 [ вп 25 пр 90] пр 15 пп вп 5 нц 9 крась нд 5 лв 15 вп 30]
пр 90 вп 10 пр 90 пч
нц 15 вп 10

конец

Решение

это задача2

пусть "к 1 / 3 * 6
перо, пп повтори :к [ крась вп 30 ]

конец

Задача 4-3. “Продолжительность жизни белки и зайца”

Продолжительность жизни белки 6 лет, что составляет 3/5 продолжительности жизни зайца. Результат расчетов вывеcти в текстовые окна (заяц, белка). Пусть заяц и белка пробегут вперед расстояние, равное количеству лет, умноженному на 10.

Указание: ззз, ббб — имена черепашек.

Решение

это задача3

пусть "жб 6
белка, ст вставь :жб
пусть "жз :жб / 3 * 5
заяц, ст вставь :жз
ззз, пп нм [-70 0] жди 5 нк 90 по вп :жз * 10
ббб, пп нм [-70 -70] жди 5 нк 90 по вп :жб * 10

конец

Задача 4-4. “Высота Останкинской башни и Московского университета”

Здание Московского университета имеет высоту 240 м, и она составляет 4/9 высоты Останкинской башни. Чему равна высота башни? Продемонстрировать разницу высот столбчатой диаграммой.

Решение

это задача4

пусть "ун 240
Университет, ст вставь :ун
пусть "баш :ун / 4 * 9
Башня, ст вставь :баш
перо, пп нм [-150 -200] по нк 0
повтори 2 [вп :ун / 3 пр 90 вп 20 пр 90]
перо, пп нм [150 -200] по нк 0
повтори 2 [вп :баш / 3 пр 90 вп 20
пр 90]

конец

Блок № 5

Задача 5-1. “Рисуем угол 60 градусов”

Определить переменную и присвоить ей значение 60. Вывести значение переменной в текстовое окно угол. Нарисовать угол величиной градусов.

Решение

это задача1

пусть "у 60
перо, пп нм [-100 -100] по
вп 100 пр (180 - :у) вп 100
угол, ст вставь 60

конец

Задача 5-2. “Рисуем угол и его биссектрису”

Нарисовать угол величиной 120 градусов (черным цветом № 9). Дорисовать к этому углу биссектрису красным цветом (№ 15). В текстовое окно Угол вывести значение угла.

Решение

это задача2

пусть "уг 120
перо, сг пп нм [-100 -100]
нц 9 по вп 100 пр (180 - :уг) вп 100
нд 100
пр (:уг / 2) нц 15 вп 100 пп
Угол, ст вставь :уг

конец

Задача 5-3. “Рисуем любой угол”

Написать процедуру, которая запрашивает значение угла у пользователя и рисует этот угол. Значение угла вывести в текстовое окно Угол.

Решение

это задача3

спроси [введи значение угла]
пусть "у ответ
перо, сг пп нм [-100 -100]
по вп 100 пр (180 - :у) вп 100
Угол, ст вставь :у

конец

Задача 5-4. “Рисуем биссектрису любого угла”

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

Решение

это задача4

спроси [введи значение угла]
пусть "у ответ
перо, сг пп нм [-100 -100]
нц 9 по вп 100 пр (180 - :у) вп 100
нд 100
пр :у / 2 нц 15 вп 100 пп
Угол, ст вставь :у

конец

Блок № 6

Задача 6-1. “Считаем сумму чисел”

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

Решение

это сум

пример, ст
спроси [введите первое слагаемое- ]
пусть "сл1 ответ
спроси [введите второе слагаемое- ]
пусть "сл2 ответ
пусть "с :сл1 + :сл2
вставь :сл1 вставь "+ вставь
:сл2 вставь "= вставь :с

конец

Задача 6-2. “Считаем произведение чисел”

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

Решение

это произв

пример, ст
спроси [введите первый сомножитель- ]
пусть "сл1 ответ
спроси [введите второй сомножитель- ]
пусть "сл2 ответ
вставь :сл1 вставь "* вставь
:сл2 вставь "= вставь :сл1 * :сл2

конец

Задача 6-3. “Сколько будет 5*6 (диалог)?”

Написать процедуру, которая спрашивает “Сколько будет 5*6?”, анализирует введенное значение и сообщает “молодец”, если ответ верный, и “хмм…”, если ответ ошибочный.

Решение

это таблица1

спроси [5 * 6=?]
если_иначе ответ = 30
[сообщи [молодец] ] [сообщи[хмм…]]

конец

Задача 6-4. “Сколько будет 5*6 (текстовое окно)?”

Написать процедуру, которая спрашивает “Сколько будет 7*8?”, выводит в текстовое окно сам пример и решение, анализирует введенное значение и выводит "YES, если ответ верный, и "NO, если ответ ошибочный.

Решение

это проверка

спроси [Сколько будет 7*8]
пример, ст вставь [7 * 8 = ]
вставь ответ
если_иначе ответ = 56 [вставь "YES ]
[вставь "NO]

конец

Задача 6-5. “Тест по таблице умножения”

Написать процедуру, которая десять раз случайным образом определяет два сомножителя, выводит в текстовое окно сам пример, запрашивает ответ, выводит ответ в текстовое окно, анализирует введенное значение и выводит "YES, если ответ верный, и "NO, если ответ ошибочный. При правильном ответе прибавляет 1 к очкам и выводит очки в текстовое окно "очки.

Решение

это тест_по_таблице

пусть "оч 0
пример, ст
повтори 10 [
пусть "с1 сл 10
пусть "с2 сл 10
пример, вставь :с1 вставь "* вставь :с2 вставь "=
спроси [чему равно?]
вставь ответ
если_иначе ответ = :с2 * :с1

[пиши "YES пусть "оч :оч + 1 очки,
ст вставь :оч]
[пиши "NO]

]
если :оч = 10 [сообщи [ты - отличник]]
если :оч < 5 [сообщи [ты - двоечник]]
если и :оч > 4 :оч < 7
[сообщи [ты - троечник]]
если и :оч > 6 :оч < 10
[сообщи [ты справился на 4]]

конец

Дополнительные задачи на тему “Переменные”

Задача 1. “Нахождение наибольшего общего делителя”

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

Решение

это НОД

спроси [Введите первое число -]
пусть "а ответ
спроси [Введите второе число -]
пусть "б ответ
всегда [

если_иначе :а > :б
[пусть "а :а - :б]
[пусть "б :б - :а]
если :а = :б [автостоп]

]
пример, ст вставь [Наибольший общий делитель для чисел -] вставь :а

конец

Задача 2. “Расчет весового коэффициента”

Для того чтобы узнать, нормальный у вас вес или нет, нужно рассчитать весовой коэффициент. Он рассчитывается следующим образом: вес (кг) делится на квадрат роста (м). Если коэффициент меньше 20, человек считается худым. Если коэффициент больше 25, человек считается излишне полным. Если коэффициент от 20 до 25, вес человека считается нормальным.

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

Решение

это расчет_коэффициента

спроси [Какой у тебя вес в кг?]
пусть "вес ответ
спроси [А рост в см?]
пусть "рост ответ / 100
пусть "коэф :вес / (:рост * :рост)
если :коэф < 20

[сообщи [Кто это там за леской
спрятался? ] сообщи :коэф останов]

если :коэф > 25 [сообщи

[надо ХУДЕТЬ!!!!!! ] сообщи :коэф останов]
сообщи :коэф сообщи
[У тебя нормальный вес]

конец

Задача 3. “Расчет стоимости молока”

В течение месяца продавец доставляет на дом 4 литра молока в день. В марте молоко стоило 12 рублей за литр. В апреле молоко подорожало на 3 рубля за литр. Сколько надо заплатить за доставленное молоко продавцу в конце апреля? Количество покупаемого молока осталось прежним.

Решение

это Молоко

пусть "Х 12 ;руб. - стоило молоко в марте
пусть "А 3 ;руб. - молоко стало дороже на эту сумму в апреле
пусть "км 4 ;литр - количество молока, доставляемого в день
пусть "д :км * 30 * (:Х + :А)деньги, ст вставь :д вставь "рублей

конец

Задача 4. “Расчет времени бега”

Мальчик может бегать в три раза быстрее, чем ходить. Скорость ходьбы равна 4 км/час. Он принял участие в марафонском беге (42 км), но сошел с дистанции, пробежав только Х км (запрашивать в диалоге). Сколько времени он затратил на преодоление этого расстояния?

Решение

это марафон

пусть "сх 4 ;км/ч - скорость ходьбы мальчика
пусть "сб 4 * 3 ;км/ч - скорость бега мальчика
спроси [Сколько километров пробежал мальчик?]
пусть "Х ответ
пусть "время :Х / :сб
время_бега, ст вставь :время вставь "часов

конец

Задача 5. “Расчет заработной платы”

Работник зарабатывает 50 руб. за каждый из 38 часов своей работы. Ему платят в 1,5 раза больше за каждый час сверх 38 часов. Какую сумму он получит, если проработает А часов? (А должно быть заведомо больше 38.)

Решение

это Зарплата

спроси [Сколько часов проработали?]
пусть "ч ответ
пусть "х 50 ; руб.- оплата
часов, проработанных по норме
пусть "н 38 ; ч.- норма
часов работы в неделю
пусть "сн 50 * 1.5 ;оплата часов, проработанных сверх нормы
пусть "зп :н * :х + (:ч - :н) * :сн получите, ст вставь :зп вставь "рублей

конец

Задача 6. “Круговая диаграмма “суша–океаны”

Поверхность земной суши составляет 149 млн. кв. км. Поверхность воды на земном шаре — 361 млн. кв. км. На круговой диаграмме изобразить соотношение земли и воды на земном шаре.

Решение

это сектор "а ;Рисует сектор размером а градусов.

перо, по
вп 58 пр 90
повтори :а [вп 1 пр 1]
пр 90 вп 58 пр 180

конец

это океан-суша

пусть "зсуша 149
пусть "пвода 361
перо, сг пп нм [-180 -120]
пусть "к 360 / (:зсуша + :пвода)
сектор :к * :пвода
сектор :к * :зсуша

конец

Задача 7. “Круговая диаграмма “площади океанов”

Площадь Тихого океана — 178 684 тыс. кв. км.

Площадь Атлантического океана — 91 655 тыс. кв. км.

Площадь Индийского океана — 76 174 тыс. кв. км.

Площадь Северного Ледовитого океана — 14?699 тыс. кв. км.

На круговой диаграмме изобразить соотношение площадей этих океанов.

Решение

это сектор1 "а ;Рисует сектор размером а градусов.

перо, по
вп 58 пр 90
повтори :а [вп 1 пр 1]
пр 90 вп 58 пр 180

конец

это океаны

пусть "плТих 178684
пусть "плАтл 91655
пусть "плИнд 76174
пусть "плСЛ 14756
пусть "плок :плТих + :плАтл + :плИнд + :плСЛ
перо, сг пп нм [-180 -120]
пусть "к 360 / :плок ;361269 - площадь всех океанов
сектор1 :к * :плТих ;Тихий океан
сектор1 :к * :плАтл ;Атлантический океан
сектор1 :к * :плИнд ;Индийский океан
сектор1 :к * :плСЛ ;Северный Ледовитый океан

конец

Задача 8. “Столбчатая диаграмма “длины рек Амур, Волга, Урал, Дон, Нева”

Длина реки Амур — 4444 км.
Длина реки Волга — 3531 км.
Длина реки Урал — 2428 км.
Длина реки Дон — 1870 км.
Длина реки Нева — 74 км.

На столбчатой диаграмме изобразить соотношение длин этих рек.

Решение

это столб "х ;процедура рисует столбики высотой х.

по нк 0 вп :х
нк 90 вп 20
нк 180 вп :х
нк 270 вп 20 пп
нд 40

конец

это РекиРоссии

пусть "Амур 4444
пусть "Волга 3531
пусть "Урал 2428
пусть "Дон 1870
пусть "Нева 74
пусть "к 120 / :Амур
;расчет коэффициента масштабирования,
;120 - максимальная высота столба.
перо, сг пп нм [-244 -160]
столб :Амур * :к ;Амур
столб :Волга * :к ;Волга
столб :Урал * :к ;Урал
столб :Дон * :к ;Дон
столб :Нева * :к ;Нева

конец

Задача 9. “Столбчатая диаграмма “площади озер”

Площадь озера “Каспийское море” — 371?000 кв. км.
Площадь Ладожского озера — 17?700 кв. км.
Площадь озера Байкал — 31?500 кв. км.
Площадь озера Иссык-куль — 6280 кв. км.

На столбчатой диаграмме изобразить соотношение площадей этих озер.

Решение

это столб1 "х

;процедура рисует столбики высотой х.
перо, по нк 0 вп :х
нк 90 вп 20
нк 180 вп :х
нк 270 вп 20 пп
нд 40

конец

это ОзераРоссии

пусть "Касп 3710
пусть "Ладож 177
пусть "Байкал 315
пусть "Иссык-куль 63
пусть "к 120 / :Касп
; расчет коэффициента масштабирования,
;120 - максимальная высота столба.
перо, сг пп нм [-244 -160]
столб :Касп * :к ;Каспийское море
столб :Ладож * :к ;Ладожское
столб :Байкал * :к ;Байкал
столб :Иссык-куль * :к ;Иссык-куль

конец

Задача 10. “Расчет количества минут в месяце”

Рассчитать количество минут в текущем месяце. Результат вывести в новое текстовое окно. Затем текстовое окно удалить.

Решение

это расчет_минут_в_месяц

спроси [сколько дней в месяце?]
пусть "а ответ
если не число? Ответ [сообщи
[ответ должен быть числом]останов]
если :а > 31 [сообщи [число должно быть меньше] останов]
если :а < 28 [сообщи [число должно быть больше]останов]
пусть "в :а * 24 * 60
нт "кот [-100 100] [100 180]
вставь [в этом месяце ] вставь символ 32
вставь :в вставь символ 32
вставь "минут жди 20
удали "кот

конец

Задача 11. “Перевод фунтов в граммы”

Вывести в текстовое окно таблицу перевода фунтов в граммы (1 фунт = 400 грамм).

Решение

это перевод_в_граммы

фунты-граммы, ст пиши [таблица
соответствия весов в фунтах и граммах]
пусть "а 0 ;а - переменная фунты
всегда [

пусть "а :а + 1 ;рассчитывает фунты
фунты-граммы, вставь :а вставь "ф=;вставляет фунты
пусть "в :а * 400 ;рассчитывает граммы
вставь :в пиши "гр ;пишет граммы
если :а = 10 [автостоп]
;если к_во фунтов > 10 - выход из цикла

]

конец

Логические операции.
Логические датчики И, ИЛИ, НЕ

Примеры

Команды Лого, которые позволяют анализировать различные условия, выглядят так:

если условие [список инструкций]

если_иначе условие [список инструкций1] [список инструкций2]

Условие — логическое выражение, которое может принимать значения ДА (истина, true, 1) и НЕТ (ложь, false, 0).

Логические выражения могут содержать логические операции И, ИЛИ, НЕ.

Пример 1. Проанализировать, является ли введенное пользователем сообщение числом. Если нет, то сообщить “Вводите только числа”.

если не число? ответ [сообщи [Вводите только числа]]

Пример 2. Проанализировать, находится ли введенное пользователем число в диапазоне от 7 до 17. Если ДА, то сообщить “Вы школьник”

если и ответ >= 7 ответ <= 17 [сообщи [Вы школьник]]

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

если или ответ > 7 ответ < 17 [сообщи [Вы не школьник]]

Пример 4. Схематическое изображение логических операций

Блок № 1

Задача 1-1. “Логическая операция НЕ”

Продемонстрировать работу логической операции НЕ.

Процедура должна считывать значение операнда из текстового окна 1-операнд и выводит результат в текстовое окно результат.

Решение

это Задача1

пусть "Х 1-операнд
пусть "рез не :Х результат,
ст вставь :рез

конец

Задача 1-2. “Логическая операция И”

Продемонстрировать работу логической операции И.

Процедура должна считывать значение первого операнда из текстового окна 1-операнд, второго операнда из текстового окна 2-операнд и выводить результат в текстовое окно результат.

Решение

это Задача2

пусть "Х 1-операнд
пусть "Y 2-операнд
пусть "рез и :Х :Y результат,
ст вставь :рез

конец

Задача 1-3. “Логическая операция ИЛИ”

Продемонстрировать работу логической операции ИЛИ.

Процедура должна считывать значение первого операнда из текстового окна 1-операнд, второго операнда из текстового окна 2-операнд и выводить результат в текстовое окно результат.

Решение

это Задача3

пусть "Х 1-операнд
пусть "Y 2-операнд
пусть "рез или :Х :Y результат,
ст вставь :рез

конец

Задача 1-4. “Логические операции И, ИЛИ”

Продемонстрировать работу логических операций И и ИЛИ.

Процедура должна считывать значение первого операнда из текстового окна 1-операнд, второго операнда из текстового окна 2-операнд, название операции из текстового окна операция и выводить результат в текстовое окно результат.

Решение

это Задача4

если операция = "И [Задача2]
если операция = "Или [Задача3]

конец

Блок № 2

Задача 2-1. “Логическая схема И-ИЛИ”

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

Решение

это Задача1

пусть "оп1 1-оп
пусть "оп2 2-оп
пусть "оп3 3-оп
пусть "рез или (и :оп1 :оп1)
:оп3 результат, ст вставь :рез

конец

Задача 2-2. “Логическая схема ИЛИ-И”

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

Решение

это Задача2

пусть "оп1 1-оп
пусть "оп2 2-оп
пусть "оп3 3-оп
пусть "рез и (или :оп1 :оп2)
:оп3 результат, ст вставь :рез

конец

Задача 2-3. “Логическая схема И-ИЛИ-ИЛИ”

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

Решение

это Задача3

пусть "оп1 1-оп
пусть "оп2 2-оп
пусть "оп3 3-оп
пусть "оп4 4-оп
пусть "рез или (и :оп1 :оп2)
(или :оп3 :оп4)
результат, ст вставь :рез

конец

Задача 2-4. “Логическая схема НЕ (И-ИЛИ)”

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

Решение

это Задача4

пусть "оп1 1-оп
пусть "оп2 2-оп
пусть "оп3 3-оп
пусть "рез не (или (и :оп1 :оп2) :оп3)
результат, ст вставь :рез

конец

Разветвляющийся алгоритм

Блок № 1

Задача 1-1. “Анализ чисел на четность”

Программа должна запрашивать у пользователя число. Если пользователь вводит не число, программа сообщает “Вводите только числа” и завершает свою работу.

Если было введено число, программа проверяет его на честность и сообщает “Вы ввели четное число” или “Вы ввели нечетное число”.

Указание. Используйте команды не, число?, остаток.

Решение

это Задача1

спроси [введите число -] пусть "ч ответ
если не число? :ч [сообщи [вводите только числа] автостоп]
если_иначе (остаток :ч 2) = 0 [сообщи [число четное]] [сообщи [число нечетное]]

конец

Задача 1-2. “Анализ чисел на делимость на 3”

Программа должна запрашивать у пользователя число. Если пользователь вводит не число, программа сообщает “Вводите только числа” и завершает свою работу.

Если было введено число, программа проверяет, делится ли оно на 3, и сообщает: “Число делится на 3” или “Число не делится на 3”.

Решение

это Задача2

спроси [введите число -]пусть "ч ответ
если не число? :ч [сообщи [вводите только числа] автостоп]
если_иначе (остаток :ч 3) = 0 [сообщи [число делится на 3]]
[сообщи [число не делится на 3]]

конец

Задача 1-3. “Анализ дроби на правильность”

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

Затем надо проанализировать введенную дробь и вывести в текстовое окно дробь слово "правильная или "неправильная.

Решение

это Задача3

спроси [введите числитель -]
пусть "ч ответ числитель, ст вставь :ч
спроси [введите знаменатель -]
пусть "з ответ
знаменатель, ст вставь :з
если_иначе :з > :ч [дробь, ст вставь "правильная]
[дробь, ст вставь "неправильная]

конец

Задача 1-4. “Анализ величины угла”

Программа должна запрашивать у пользователя значение угла (от 0 до 180) и сообщать:

“Угол острый”, если введенное число < 90;
“Угол прямой”, если введенное число = 90;
“Угол тупой”, если введенное число < 180 и > 90;
“Угол развернутый”, если введенное число = 180.

Черепашка должна нарисовать угол.

Решение

это Задача4

спроси [Введите значение угла от 0 до 180]
пусть "у ответ
перо, нм [162 -127] по вп 100 пр 180 - :у вп 100 пп
если :у < 90 [сообщи [угол острый] автостоп]
если :у = 90 [сообщи [угол прямой] автостоп]
если :у < 180 [сообщи [угол тупой] автостоп]
если :у = 180 [сообщи [угол развернутый]автостоп]
сообщи [вы не выполнили условие задачи]

конец

Блок № 2

Задача 2-1. “Тест на знание курсов черепашки”

Написать процедуру, которая проверяет знание курсов черепашки.

В диалоговое окно выдается задание “Измените курс так, чтобы черепашка смотрела на дом”. Затем черепашка меняет курс на значение, введенное пользователем. Программа анализирует курс черепашки. Если он верен (от 75 до 105), то выдается сообщение "Правильно, в противном случае выдается сообщение "Ошибка!.

Решение

это Задача1

спроси [Поверните черепашку к домику. Введи курс]
Чер1, нк ответ
Чер1, пусть "к курс
если_иначе и :к > 74 :к < 106
[сообщи "Верно] [сообщи "Ошибка!]

конец

Задача 2-2. “Рыбка в море”

Проверить местоположение рыбки. Если она больше –200 и меньше –100, вывести сообщение “Рыбка в море”, в противном случае — “Рыбку поймали”.

Указание. Используйте команду Лого у_коор.

Решение

это Задача2

рыбка, пусть "у у_коор
если_иначе и :у > -200 :у < -100
[сообщи [Рыбка в море]]
[сообщи [Рыбку поймали]]

конец

Задача 2-3. “Рыбки в озере (анализ цвета поля)”

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

Указание. Используйте команды Лого

цп (цвет поля), перебор [к[ч1 ч2 ч3]] [для :к]

Решение

это Задача3

всегда [
перебор [к [рыбка1 рыбка2 рыбка3]]
[для :к нк сл 360 вп 5
если цп = 55 [нд 5] жди 1 ]
]

конец

Задача 2-4. “Лев в клетке”

Проверить местоположение льва. Если координата Х больше 0 и меньше 100, а Y больше –150 и меньше –50, вывести сообщение “Лев в клетке”, в противном случае — “Лев сбежал”.

Решение

это Задача4

Лев, пусть "х х_коор
пусть "у у_коор
если_иначе (и :х > 0 :х < 100 :у > -150 :у < -50)
[сообщи [Лев в клетке]]
[сообщи [Лев сбежал]]

конец

Блок № 3

Задача 3-1. “Поход в кино”

Процедура должна запрашивать у пользователя сумму денег, которую он имеет при себе, и наличие свободного времени в ближайшие 3 часа. Если есть свободное время и сумма денег составляет больше 100 рублей, процедура выдает сообщение “Пойдем в кино”. В противном случае выдается сообщение “УВЫ!”.

Решение

это Задача1

спроси [Введите сумму денег]
пусть "д ответ
спроси [вы свободны в ближайшие 3 часа (1 - да, 0 – нет)]
пусть "с ответ
если_иначе и :д > 100 :с = 1
[сообщи [Пойдем в кино]]
[сообщи [УВЫ!]]

конец

Задача 3-2. “Призывники”

Написать процедуру, которая анализирует пригодность человека к службе в армии. Процедура запрашивает возраст и пол человека. Если пол мужской, а возраст от 18 до 27 лет, процедура выдает сообщение “Вы — призывник”.
В противном случае — “Вы не годитесь для армии”.

Решение

это Задача2

спроси [Введите свой возраст]
пусть "в ответ
спроси [введите свой пол (М или Ж)]
пусть "п ответ
если_иначе (и :в > 17 :в < 27 :п = "М)
[сообщи [Вы - призывник]]
[сообщи [Вы не годитесь для армии]]

конец

Задача 3-3. “Двузначное число”

Процедура должна запрашивать у пользователя число. Если пользователь ошибся (введенное число не является двузначным), то необходимо выдать сообщение “Вводите только двузначные числа”.

Решение

это Задача3

спроси [Введите двузначное число]
пусть "х ответ
если или :х > 99 :х < 10 [сообщи [вводите двузначные числа]]

конец

Задача 3-4. “Поиск максимального из трех чисел”

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

Решение

это Задача4

спроси [Введите 1-е число]
пусть "ч1 ответ
Все_числа, ст пиши :ч1
спроси [Введите 2-е число]
пусть "ч2 ответ
Все_числа, пиши :ч2
спроси [Введите 3-е число]
пусть "ч3 ответ
Все_числа, пиши :ч3
пусть "макс :ч1
если (и :ч2 > :ч1 :ч2 > :ч3) [пусть "макс :ч2]
если (и :ч3 > :ч2 :ч3 > :ч1) [пусть "макс :ч3]
Самое_большое, ст вставь :макс

конец

Блок № 4

Задача 4-1. “Загадка с вариантами ответов”

Написать процедуру, которая загадывает пользователю загадку. Например: “Зимой и летом одним цветом”. У загадки должно быть несколько верных ответов — ель, елка, ёлка, сосна. Во всех этих случаях выдается сообщение “Отгадал!”. В противном случае — сообщение “Подумай еще”.

Решение

это загадка

спроси [Зимой и летом одним цветом]
пусть "от ответ
если_иначе (или :от = "ель :от = "елка :от = "ёлка :от = "сосна)
[сообщи [Отгадал!]]
[сообщи [Подумай еще!]]

конец

Задача 4-2. “Мальвина идет в кино”

Мальвина собралась пойти в кино с Буратино и Пьеро. Но она готова пойти и с одним кавалером. Написать процедуру, в которой Мальвина спрашивает у Буратино и Пьеро, готовы ли они пойти с ней в кино. В случае, если хотя бы один из них готов, Мальвина сообщает: “Ура! Идем!”. В противном случае она говорит: “Очень жаль!”

Решение

это Задача2

спроси [Буратино! Ты пойдешь со мной
в кино (да, нет)]
пусть "от1 ответ
спроси [Пьеро! Ты пойдешь со мной в кино (да, нет)]
пусть "от2 ответ
если_иначе или :от1 = "да :от2 = "да [сообщи [Ура! Идем!]]
[сообщи [Очень жаль!]]

конец

Задача 4-3. «”Да” и “нет” не говорить…»

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

Решение

это Задача3

сообщи [Вводи ответы в именительном падеже, в единственном числе.]
спроси [Вы поедете на бал?]
пусть "от ответ
если (или :от = "да :от = "нет ) [сообщи [вы проиграли] автостоп]
спроси [Какое платье вы наденете?]
пусть "от ответ
если_иначе (или :от = "черное :от = "белое)
[сообщи [вы проиграли] автостоп]
[сообщи [Вы действительно попадете на бал!]]

конец

Задача 4-4. “Анализ количества букв в текстовых окнах”

Написать две процедуры.

Первая процедура Задание выдает задание “Введите двух-, трех- и четырехбуквенные слова в соответствующие текстовые окна”.

Вторая процедура Проверка анализирует количество букв в каждом текстовом окне. Если пользователь ввел правильные слова, то выдается сообщение “Верно!”, в противном случае выдается сообщение “Ошибка!”.

Решение

это Задание

скажи [Две_буквы Три_буквы Четыре_буквы]
[ст]
сообщи [Введите двух-, трех- и четырех-буквенные
слова в соответствующие текстовые окна]

конец

это Проверка1

Две_буквы, внт выделяй вкт копируй
пусть "б2 сколько буфер
Три_буквы, внт выделяй вкт копируй
пусть "б3 сколько буфер
Четыре_буквы, внт выделяй вкт копируй
пусть "б4 сколько буфер
если_иначе (и :б2 = 2 :б3 = 3 :б4 = 4)[сообщи [Верно!]]
[сообщи [Ошибка!]]

конец

это Проверка2 ; 2-й способ решения.

пусть "б2 сколько Две_буквы
пусть "б3 сколько Три_буквы
пусть "б4 сколько Четыре_буквы
если_иначе (и :б2 = 2 :б3 = 3 :б4 = 4) [сообщи [Верно!]]
[сообщи [Ошибка!]]

конец

Блок № 5

Задача 5-1. “Управляем движением черепашки с клавиатуры”

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

Указание. Используйте команду жди_символ.

Решение

это стрелки

ч1,
всегда [

пусть "х жди_символ
если :х = 4 [нк 270]
если :х = 8 [нк 0]
если :х = 6 [нк 90]
если :х = 2 [нк 180]
если :х = 5 [отмени [вп 5 жди 1]]
если :х = 0 [всегда [вп 5 жди 1]]

]

конец

Задача 5-2. “Управляем движением черепашки в диалоге”

Написать процедуру, в которой черепашка в форме бегуна бежит по листу проекта слева направо. При попадании на красный цвет появляется вопрос “Бежать дальше?”. Если пользователь напишет "да, бегун отвечает “Хорошо!” и продолжает бег, в противном случае бегун останавливается. На листочке нарисуйте блок-схему.

Решение

это крас ; имя процедуры пишется в диалоговом окне красного цвета

спроси [Бежать дальше?]
если_иначе ответ = "да [сообщи "Хорошо! ] [ останов]

конец

это бег

бегун, нк 90
всегда [нф 42 вп 3 жди 1 нф 43 вп 3 жди 1 нф 44 вп 3 жди 1]

конец

Задача 5-3. “Столкновение черепашек”

Две черепашки бесцельно перемещаются по листу проекта (либо в определенной части листа проекта). При столкновении появляется сообщение “ОЙ” и черепашки перестают перемещаться.

Указаниe. Используйте команды

коснулись? "ч1 "ч2, нов_х, нов_у, сл Х.

Решение

это общение

всегда [ он, нов_х -150 + сл 300
нов_у -200 + сл 200 жди 2
она, нов_х -150 + сл 300
нов_у -200 + сл 200 жди 2
если (коснулись? "он "она ) = "да [ сообщи "ой! автостоп]
]

конец

Задача 5-4. “Гром гремит”

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

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

Решение

это гром

молния, пп сч
всегда [ облако1, нов_курс сл 360
вп сл 10 жди 1
облако2, нов_курс сл 360 вп сл 10
жди 1
если (коснулись? "облако1 "облако2)= "да
[пусть "ммм место молния, нм :ммм пч жди 9 сч сообщи "бах! автостоп]
]

конец

Дополнительные задачи (мини-проекты) на разветвляющийся алгоритм

Задача 1. “Движение корабля по течению и против”

Создать проект “Движение корабля”. Корабль перемещается на расстояние и в направлении, которые зависят от условия задачи (cкорость корабля, скорость реки, направление движения и время задаются бегунками).

Для этого:

1. На листе проекта нарисуйте реку, стрелкой укажите направление течения реки.

2. Создайте 4 бегунка:

Бегунок с именем Ск_кораб, с диапазоном от 0 до 40;

Бегунок с именем Ск_реки, с диапазоном от 0 до 10;

Бегунок с именем Время, с диапазоном от 0 до 100;

Бегунок с именем Течение, с диапазоном от 0 до 1 (0 — корабль идет против течения, 1 — корабль идет по течению).

3. Создайте текстовое окно Расстояние (для вывода результата расчета).

4. На листе процедур напишите процедуру Решение, в которой выполняется следующее:

Корабль помещается к месту старта (любое место на ваше усмотрение).

Анализируется значение бегунка Течение. Если оно равно 1, то относительная скорость (переменная Ск_отн) рассчитывается как сумма скорости корабля и скорости реки. Если оно равно 0, то относительная скорость рассчитывается как разность скорости корабля и скорости реки.

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

В текстовое окно Расстояние выводится полученное значение.

Корабль плавно перемещается в нужном направлении на рассчитанное расстояние с относительной скоростью.

Решение

это расчет

если_иначе течение = 1
[пусть "Ск_отн Ск_корабля + Ск_реки кораблик, нк 90]
[пусть "Ск_отн Ск_корабля - Ск_реки кораблик, нк 270 ]
пусть "Расст :Ск_отн * время
Расстояние, ст вставь :Расст
кораблик, нм [-23 55] плавно
:Расст :Ск_отн

конец

Задача 2. “Расселяем животных”

Реализовать игру. На листе находятся черепашки в форме различных животных (домашних и диких). Задача игрока — разместить отдельно диких и домашних животных (поместить их на разные цветовые пятна). Затем нажать на кнопку “Готово”, чтобы проверить правильность выполнения задания. Для этого необходимо:

1. На листе проекта нарисовать два овала разного цвета и подписать их “дикие”, “домашние”.

2. Создать не менее 6 черепашек в форме различных животных и назвать дик1, дик2, ..., дом1, дом2, ...

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

4. Написать процедуру готово, которая анализирует правильность выполнения задания пользователем. Неправильно размещенные животные выталкиваются из цветных овалов. Количество ошибок подсчитывается, и в зависимости от результата выдаются сообщения “Молодец!” или “Потрудись_еще!”.

Решение

это начнем

дом1, нм [0 -50]
дом2, нм [0 40]
дом3, нм [0 -100]
дик1, нм [1 100]
дик2, нм [0 0]
дик3, нм [0 -200]

конец

это готово

пусть "ош 0
перебор [к [дом1 дом2 дом3]]
[для :к если цп = 113
[нов_х сл 20 нов_у сл 200 пусть "ош :ош + 1 ] ]
перебор [к [дик1 дик2 дик3 ]]
[для :к если цп = 63
[нов_х сл 20 нов_у сл 200 пусть "ош :ош + 1]]
если_иначе :ош = 0 [Сообщи "Молодец!][Сообщи "Потрудись_еще!]

конец

Задача 3. “Рассчитываем налоги”

Рассчитайте сумму налогов на доходы. Налоги рассчитываются по следующей схеме: если доход меньше 5000 руб., то налог составляет 12%, если доход больше 5000 руб., то налог составляет 30%. Для этого:

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

2. Напишите процедуру, которая выполняет следующие действия:

2.1. Спрашивает сумму доходов за год в рублях;

2.2. Выполняет контроль на число;

2.3. Сохраняет введенное значение в переменной доход;

2.4. Вычисляет налог;

2.5. Выводит результат в текстовое окно.

Решение

это налоги

спроси [Введите сумму вашего дохода в рублях]
пусть "доход ответ
если не число? Ответ
[сообщи[Сумма вашего годового дохода вводится числом] останов]
если :доход < 5000 [ пусть "н :доход * 12 / 100 ]
если :доход > 5000 [ пусть "н :доход * 30 / 100 ]
ттт, ст вставь [ваш доход за год составил -]
вставь символ 32 вставь :доход
вставь символ 32 пиши [руб.]
вставь [вы должны заплатить налог в размере -]
вставь символ 32 вставь :н вставь
символ 32 пиши [руб.]

конец

Примечание. Символ 32 — это пробел.

Многократное выполнение набора команд

Задача 1. “Поезд едет”

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

Указание. Используйте команду Лого перебор.

Решение

это поезд

всегда [
перебор [м [паровоз вагон1 вагон2 вагон3]]
[для :м нк 270 вп 5]
]

конец

Задача 2. “Танцующие черепашки”

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

Указание. Используйте команды скажи, нц сл 9999.

Решение

это танец

скажи [ч1 ч2 ч3] [ нк 0]
повтори 100 [скажи [ч1 ч2 ч3] [нц 1 + сл 9999 пр 10 жди 1]]

конец

Задача 3. “Рисуем болото”

Зарисовать весь лист проекта камышами (форма черепашки “озеро”).

Указание. Используйте команду штамп.

Решение

это болото

перо, нф "озеро нц 92 крась
нм [-330 180]
повтори 10 [
повтори 6 [штамп нк 180 вп 70]
нов_у 180 нк 90 вп 70
]

конец

Задача 4. “Матрешки”

Показать содержимое матрешки (из одной матрешки появляется пять поменьше). Использовать только одну черепашку.

Указание. Используйте команды штамп, нрз Х.

Решение

это матрешки

пусть "М 80
перо, нф 61 нм [-260 -70]
повтори 6 [
нрз :М штамп нк 99 вп 70 жди 2
пусть "М :М - 10
]
нд 70

конец

Задача 5. “Рекламные огни”

Нарисовать рекламный щит с трехбуквенным словом. Для этого создайте три текстовых окна с именами текст1, текст2, текст3. В каждом окне напишите по большой букве. Текстовые окна должны по очереди то появляться, то исчезать.

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

Решение

это огни

повтори 10 [
перебор [Т [текст1 текст3 текст2]]
[для :Т спрячь_текст
жди 5 покажи_текст жди 2]
]

конец

Задача 6. “Падающие буквы”

Реализовать анимацию: сверху вниз по листу проекта перемещаются буквы.

Указание. Используйте команды установи "текст "место [], список :Х :Y

Решение

это буквопад

пусть "Y 180
пусть "Х 200
повтори 9 [
перебор [Т [текст1 текст3 текст2]]
[установи :Т "место (список :Х :Y)
пусть "Y :Y - 15 жди 5]
]

конец

Задача 7. “Цифры”

Написать процедуру, которая выводит в текстовое окно цифры от 0 до 9.

Указание. Код пробела — 32, команда вставь символ 32 выводит пробел в текстовое окно.

Решение

это цифры

все_цифры, ст
много_раз [м 10] [ все_цифры, вставь :м вставь символ 32]

конец

Задача 8. “Рождение черепашек”

Реализовать следующий сценарий: на листе проекта появляется 15 черепашек с именами дом0, дом2, ..., дом15. Черепашки принимают форму дома и выстраиваются в линеечку. Затем все черепашки удаляются.

Указание. Используйте команду

слово "часть1 "часть2.

Решение

это город

много_раз [м 15]
[нч слово "дом :м пч нк 90
вп 60 * :м нф 26] жди 15
много_раз [м 15] [ удали слово "дом :м]

конец

Задача 9. “Четные числа”

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

Решение

это четные

спроси [Введи максимальное число - ]
пусть "мч ответ
четные_числа, ст
много_раз [ч ( 1 + :мч / 2) ]
[вставь :ч * 2 вставь символ 32 ]

конец

Циклические алгоритмы

Блок № 1

Задача 1-1. “Поросенок вырос”

Поросенок ест и растет до тех пор, пока размер его формы не изменится с 10 до 40.

Указание. Используйте команду нрз Х.

Решение

это поросенок

пусть "к 10
манька, нрз :к нм [-30 -80]
всегда [
пусть "к :к + 5
нрз :к нф "свин2 жди 3 нф "свин1 жди 3
нк 0 вп 7
если :к > 40 [автостоп]
]

конец

Задача 1-2. “Собака в лужу попала”

Собака бежит, пока не попадет в лужу.

Указание. Используйте команду цп (цвет поля).

Решение 1

это собака

всегда [
пес, нк 270 нф 17 вп 5 жди 2 нф 18
вп 5 жди 2
если цп = 105 [автостоп]
]

конец

Решение 2 (с использованием двух параллельных процессов)

это собака2

всегда [ пес, нк 270 нф 17 вп 5 жди 2
нф 18 вп 5 жди 2]
пес, когда [цп = 105] [останов]

конец

Задача 1-3. “Котенок делает зарядку”

Котенок делает зарядку, пока не пройдет 100 единиц времени.

Указание. Используйте команды нов_счет, счетчик.

Решение

это зарядка

нов_счет
всегда [
котик, нф 61 жди 5 нф 62 жди 5
если счетчик > 100 [автостоп]
]

конец

Задача 1-4. “Управляем движением черепашки с пульта”

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

Решение

это газ

авто, всегда [ вп скорость жди 2]

конец

это тормоз
останов

конец

Блок № 2

Задача 2-1. “Проверка на делимость на 5”

Проанализировать все числа от 1 до 50 на делимость на 5. В текстовые окна вывести числа, которые делятся на 5 без остатка.

Решение

это задача1

пусть "х 1
на_5, ст
всегда [
если (остаток :х 5) = 0 [на_5, пиши :х]
пусть "х :х + 1
если :х = 51 [автостоп]
]

конец

Задача 2-2. “Проверка на делимость на 3”

В текстовые окна вывести числа от 1 до 25. Числа кратные 3 должны быть красного цвета, остальные — синего.

Решение

это задача2

пусть "х 1
ттт, ст
всегда [
если_иначе (остаток :х 3) = 0 [нцт 15] [ нцт 105]
вставь :х вставь символ 32
если :х > 25 [автостоп]
пусть "х :х + 1
]

конец

Задача 2-3. “Проверка на делимость на 2, 3, 5, 7”

Проанализировать все числа от 1 до 25 на делимость на 2, 3, 5, 7. В текстовые окна вывести соответствующие числа.

Решение

это задача3

пусть "х 1
скажи [на_2 на_3 на_5 на_7] [ст]
всегда [
если (остаток :х 2) = 0 [на_2, пиши :х]
если (остаток :х 3) = 0 [на_3, пиши :х]
если (остаток :х 5) = 0 [на_5, пиши :х]
если (остаток :х 7) = 0 [на_7, пиши :х]
пусть "х :х + 1
если :х > 25 [автостоп]
]

конец

Задача 2-4. “Код буквы”

Написать процедуру, которая в текстовом окне буква пишет букву и выводит код этой буквы. Буквы вводятся с клавиатуры. Количество букв 10.

Указание. Используйте команды жди_символ, код.

Решение

это задача4

пусть "х 0
коды_букв, ст
всегда [
пусть "с жди_символ
коды_букв, пиши
(предложение :с "- код :с)
пусть "х :х + 1
если :х > 10 [автостоп]
]

конец

Программирование игр

Игра № 1. “Лабиринт”

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

Для этого:

1. На листе проекта:

1.1. Нарисуйте лабиринт;

1.2. Создайте черепашку;

1.3. Cоздайте бегунок, который будет определять скорость перемещения черепашки;

1.4. Создайте кнопку, которая будет запускать игру.

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

3. Напишите процедуру, которая анализирует цвет поля под черепашкой. Если черепашка вышла за границы лабиринта, она возвращается на начало лабиринта и начинает свое путешествие сначала.

4. Напишите инструкцию к игре.

Можно сделать игру более сложной:

— сделать несколько уровней;

— подсчитывать количество очков или количество жизней;

— сделать тест. При попадании на какой-нибудь цвет задавать вопросы, анализировать ответ. В зависимости от правильности ответа пропускать черепашку дальше либо возвращать назад.

Решение

это начнем!

стрелки
скажи [крас син фео жел кор зел] [сч]
отключи "игрок игрок, когда[цп = 42 ]
[жел, пч повтори 3 [нф 57 жди 3 нф 58
жди 3] сч игрок,
нм [-330 -140] останов]
игрок, когда[цп = 113]
[фео, пч повтори 3 [нф 6 жди 3 нф 5 жди 3]
сч игрок, нм [-330 -140] останов]
игрок, когда[цп = 15]
[крас, пч повтори 3 [нф 53 жди 3 нф 54 жди 3]
сч игрок, нм [-330 -140] останов]
игрок, когда[цп = 34]
[кор, пч повтори 3 [нф 17 жди 3 нф 18 жди 3]
сч игрок, нм [-330 -140] останов]
игрок, когда[цп = 104] [син, пч
повтори 3 [нф 24 жди 3 нф 25 жди 3]
сч игрок, нм [-330 -140] останов]
игрок, когда[цп = 64]
[зел, пч повтори 3 [нрз 20 жди 3 нрз 30 жди 3]
сч сообщи [Молодец!] останов]

конец

это стрелки

игрок, нм [-330 -140]
всегда [
пусть "х жди_символ
если :х = 4 [нк 270]
если :х = 8 [нк 0]
если :х = 6 [нк 90]
если :х = 2 [нк 180]
если :х = 5 [отмени
[вп скорость жди 3]]
если :х = 0 [всегда
[вп скорость жди 3]]
]

конец

Игра № 2. “Мишень”

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

Для реализации этой игры сделайте следующее.

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

2. Создайте:

2.1. Бегунок угол с диапазоном от 0 до 90.

2.2. Бегунок дистанция с диапазоном от 0 до 800.

2.3. Две кнопки Старт и Огонь.

2.4. Два текстовых окна с именами ваши_очки и
№попытки.

2.5. Черепашку с именем пуля.

3. В поле форм нарисуйте новую форму для пули.

4. На листе процедур напишите процедуру старт, которая будет:

4.1. Очищать текстовое окно.

4.2. Определять две переменные: попытки и очки (начальное значение 0).

4.3. Ставить на место черепашку пуля и задавать ей форму пули. Место выбирается случайным образом. Надо только исключить попадание пули на поле мишени.

5. На листе процедур напишите процедуру огонь, которая будет:

5.1. К переменной попытки прибавлять 1.

5.2. Анализировать значение переменной попытки и в случае, если значение переменной больше 5, сообщать “Вы исчерпали все попытки!”. Если попытки исчерпаны, анализируется количество заработанных очков, и, в зависимости от результата, выдаются разные сообщения (на ваше усмотрение). Затем останавливается выполнение процедуры огонь.

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

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

5.5. В текстовое окно ваши_очки выводить значение переменной очки, в текстовое окно №попытки выводить значение переменной попытки.

5.6. Менять форму черепашки пуля на флаг. После небольшой задержки возвращать ее на начальное место и придавать форму пули.

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

Решение

; процедура делает начальные установки

это старт

очки, ст №попытки, ст
пусть "хп сл 750
пусть "уп -150 + сл 300
пуля, нф 0 нрз 25 нм список :хп :уп
если (или цп = 65 цп = 45 цп = 15
цп = 35) [старт]
пусть "попытки 0
пусть "оч 0

конец

; процедура - пуля вылетает по курсу

"угол на расстояние "дистанция

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

это огонь

пуля, нф 23 нм список :хп :уп
нк угол
плавно дистанция 2 жди 5
пусть "попытки :попытки + 1
если :попытки > 5 [сообщи [ты исчерпал свои попытки !]
если :оч > 200 [сообщи [Ты - снайпер!]]
если :оч < 60 [сообщи [Ты - Мазила! Тренируйся!]]
если и :оч < 201 :оч > 150 [сообщи [Очень неплохой результат!]]
если и :оч < 151 :оч > 59 [сообщи
[У вас хорошие перспективы, но нужно много работать!!]] стоп]
№попытки, ст вставь :попытки
если цп = 65 [пусть "оч :оч + 30 ]
если цп = 45 [пусть "оч :оч + 50 ]
если цп = 15 [пусть "оч :оч + 10 ]
если цп = 35 [пусть "оч :оч + 20 ]
очки, ст вставь :оч
пуля, нф "флаг жди 10 нм список :хп
:уп нф "пулька

конец

Игра № 3. “Минное поле”

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

Для реализации этой игры сделайте следующее:

1. На листе проекта создайте черепашку с именем cапер в форме человечка и десять черепашек (мина1, … мина10) в форме мины.

2. Создайте кнопку Пошли, которая будет запускать игру.

3. Нарисуйте левую и правую границы минного поля (минное поле и поля за границей поля должны быть разных цветов).

4. На листе процедур напишите процедуру Пошли, в которой выполняется следующее:

4.1. Мины прячутся и размещаются случайным образом на листе проекта.

4.2. Черепашка сапер перемещается вслед за указателем мышки.

4.3. Анализируются условия окончания игры:

— анализируется цвет поля под черепашкой сапер; в случае, если он равен номеру цвета правой границы минного поля, то выдается сообщение: “Молодец. Ты победил!” — и останавливается выполнение процедуры;

— анализируется расстояние от черепашки сапер до черепашек, изображающих мины. Если расстояние меньше 20 единиц, то мины взрываются (показываются черепашки), выдается сообщение “УВЫ! Ты проиграл!” и выполнение процедуры прекращается.

Решение

это пошли

мины
движение

конец

это мины

скажи [мина1 мина2 мина3 мина4
мина5 мина6 мина7 мина8 мина9 мина10]
[сч нф "взрыв нов_х -150 + сл 300
нов_у -165 + сл 330]

конец

это движение

сапер, нф "сап2 нм [-200 0] жди 10
сапер, пп всегда [нф 13 жди 1 нф 14
жди 1 нм мм проверка ]

конец

это проверка

перебор [к [мина1 мина2 мина3 мина4
мина5 мина6 мина7 мина8 мина9 мина10] ]
[сапер, если (путь :к) < 20 [для :к
пч жди 5 установи "сообщи "место
[-100 -20] сообщи [УВЫ! Конец игры!] останов]]
сапер, если цвет_поля = 65 [сообщи [МОЛОДЕЦ! Ты победил!!!] останов]

конец

Игра № 4. “Прицел”

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

Для реализации этой игры сделайте следующее.

1. На листе проекта создайте:

1.1. Черепашку прицел в форме прицела орудия.

1.2. Текстовое окно для вывода заданий (назовите его как хотите).

1.3. Кнопку Задание1 (затем Задание2, Задание3, ...).

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

3. На листе процедур напишите процедуру задание1, в которой выполняется следующее:

3.1. Черепашка прицел становится подальше от объектов на экране.

3.2. Определяется переменная цо со значением 0 (цвет поля под черепашкой).

3.3. В текстовое окно выводится задание (например, “наведи прицел на “ROOF”).

Запускается выполнение процедуры стрелки.

3.4. В цикле анализируется значение переменной цо. Если значение переменной больше 0, то опять анализируется значение переменной цо. Если оно равно номеру цвета поля правильно выбранного объекта, то сообщается “YES”, в противном случае сообщается “NO”.

Оформление звуковыми и видеоэффектами, подсчет очков, выставление отметки — по желанию разработчика.

Решение

это задание1

прицел, нм [-200 100]
пусть "цо 0
задание, ст пиши [Наведи прицел на "ROOF"]
стрелки
всегда [
если :цо > 0
[если_иначе :цо = 14 [сообщи [YES]
останов] [сообщи [NO] останов] ]
]

конец

это задание2

прицел, нм [-200 100]
пусть "цо 0
задание, ст пиши [Наведи прицел на "window"]
стрелки
всегда [
если :цо > 0 [ если_иначе или :цо = 56 :цо = 58
[сообщи [YES] останов] [сообщи [NO] останов]]
]

конец

это стрелки

всегда [
пусть "х жди_символ
если :х = 6 [прицел, нк 90 вп 10]
если :х = 4 [прицел, нк 270 вп 10]
если :х = 8 [прицел, нк 0 вп 10]
если :х = 2 [прицел, нк 180 вп 10]
если :х = 5 [пусть "цо цп]
]

конец

Игра № 5. “Игровой автомат”

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

Для реализации этой игры сделайте следующее.

1. На листе проекта:

1.1. Нарисуйте игровой автомат с тремя окошками.

1.2. Создайте трех черепашек с именами ф1, ф2, ф3 и разместите их в окошках автомата.

1.3. Создайте черепашку в форме ручки автомата.

2. Напишите процедуру начнем, в которой запрашивается сумма денег, имеющаяся в наличии у игрока.

3. Напишите процедуру включение_автомата (вызывается при нажатии на ручку автомата), в которой выполняется следующее:

3.1. Все три черепашки меняют форму от 1-го до 10-го номера случайным образом.

3.2. Из суммы денег игрока вычитается 10 рублей (стоимость одного запуска автомата).

3.3. Запускается процедура проверка.

4. Напишите процедуру проверка, в которой выполняется следующее:

4.1. Определяются три переменные — н1, н2, н3, которым присваиваются номера форм черепашек ф1, ф2, ф3.

4.2. Сравниваются друг с другом переменные н1, н2, н3. В случае, если они равны друг другу, выдается сообщение: “Вы выиграли 1000 рублей”. Если совпадают две переменные из трех — выдается сообщение: “Вы выиграли 20 рублей”. В противном случае выдается сообщение: “Вы проиграли”.

4.3. К сумме денег игрока прибавляется выигранная сумма.

Решение

это начнем!

Окно_автомата, ст
установи "спроси "место [-50 -80]
спроси [Какую сумму денег вы планируете
потратить в казино (стоимость 1-й игры - 10 руб.)]
пусть "деньги ответ кошелек,
ст вставь :деньги

конец

это включение_автомата

если :деньги < 10 [сообщи
[У вас нет средств для игры. Прощайте!] останов]
пусть "деньги :деньги - 10 кошелек,
ст вставь :деньги
скажи [ф1 ф2 ф3] [ нф 1 + сл 10]
проверка

конец

это проверка

ф1, пусть "н1 форма
ф2, пусть "н2 форма
ф3, пусть "н3 форма
если и :н1 = :н2 :н2 = :н3
[Окно_автомата, ст вставь [Вы выиграли 1000 рублей.]
пусть "деньги :деньги + 1000 кошелек, ст вставь :деньги стоп]
если (или :н1 = :н2 :н2 = :н3 :н1 = :н3)
[Окно_автомата, ст вставь [Вы выиграли 20 рублей.]
пусть "деньги :деньги + 20 кошелек, ст вставь :деньги стоп]
Окно_автомата, ст вставь [Вы проиграли]

конец

Игра № 6. “Бросаем кости”

Суть игры: два игрока по очереди бросают кости. Выигрывает тот, кто раньше наберет 50 очков (но не более). Тот игрок, у которого оказывается более 50 очков, проигрывает.

Для реализации этой игры сделайте следующее.

1. На листе проекта создайте:

1.1. Текстовые окна бр1, бр2 — в них будет выводиться сумма очков, набранная за один бросок; сумма1, сумма2 — будут выводиться общие суммы очков.

1.2. Четыре кнопки: новая_игра, финиш, бросок1, бросок2.

2. Создайте две черепашки с именами куб1, куб2. Для этих черепашек создайте шесть новых форм с точками (как на игральных кубиках). Номера форм — от 40 до 45 (можно любые другие, главное, чтобы они шли по порядку).

3. На листе процедур напишите процедуру новая_игра, в которой:

3.1. Определяются переменные сум1, сум2 со значением 0.

3.2. Чистятся все текстовые окна.

3.3. Запускается процесс анализа значений переменных сум1, сум2.

3.4. Если значение переменной сум1 или сум2 становится больше 50, то игрок 1 или 2 (соответственно) проигрывает.

4. На листе процедур напишите процедуру бросок1, в которой определяется переменная с со значением 0.
В эту переменную будет помещаться сумма очков, которые будут выпадать на двух кубиках.

Для каждого кубика будет выполняться следующее:

4.1. Определяться переменная ч со случайным значением от 1 до 6.

4.2. Кубик меняет форму на номер 39 плюс значение переменной ч.

4.3. К переменной с прибавляется значение переменной ч.

4.4. К переменной сум1 прибавляется значение переменной с.

4.5. Значение переменной сум1 выводится в текстовое окно бр1.

4.6. В текстовое окно сумма1 выводится значение переменной сум1.

5. На листе процедур напишите процедуру бросок2, в которой выполняется то же, что в процедуре бросок1, но только для других переменных (вместо с — сс, вместо сум1 — сум2) и для других текстовых окон (вместо бр1 — бр2, вместо сумма1 — сумма2).

6. На листе процедур напишите процедуру финиш, в которой будут сравниваться переменные сум1 и сум2 и выдаваться сообщение о победителе.

Решение

это новая_игра

пусть "сум1 0
пусть "сум2 0
скажи [бр1 бр2 сумма1 сумма2] [ ст]
запусти [
всегда [если :сум1 > 50
[сообщи [Увы! Перебор! Выиграл второй игрок] автостоп]
если :сум2 > 50 [сообщи [Увы! Перебор!
Выиграл первый игрок] автостоп]
]
]

конец

это финиш

если :сум1 > 50 [сообщи [Увы! Перебор!
Выиграл второй игрок] стоп]
если :сум2 > 50 [сообщи [Увы! Перебор!
Выиграл первый игрок] стоп]
если_иначе :сум1 > :сум2 [сообщи
[Выиграл первый игрок] ]
[если_иначе :сум1 = :сум2 [сообщи [У вас ничья!!]]
[сообщи [Выиграл второй игрок]]
]

конец

это бросок1

пусть "с 0
куб1, пусть "ч 1 + сл 5 нф 39 + :ч пусть "с :с + :ч
куб2, пусть "ч 1 + сл 5 нф 39 + :ч
пусть "с :с + :ч
бр1, ст вставь :с
пусть "сум1 :сум1 + :с сумма1,
ст вставь :сум1

конец

это бросок2

пусть "сс 0
куб1, пусть "ч 1 + сл 5 нф 39 + :ч
пусть "сс :сс + :ч
куб2, пусть "ч 1 + сл 5 нф 39 + :ч
пусть "сс :сс + :ч
бр2, ст вставь :сс
пусть "сум2 :сум2 + :сс сумма2, ст вставь :сум2

конец

Игра № 7. “Кто надует больший шар”

Суть игры: два игрока по очереди дуют каждый в свой шар. Выигрывает тот, кто надует больший шар. Тот игрок, у которого шар лопается (размер оказывается более 100), проигрывает.

Для реализации этой игры сделайте следующее.

1. На листе проекта создайте:

1.1. Две черепашки красный и синий в форме воздушных шаров разного цвета.

1.2. Два текстовых окна с именами красный_шар и синий_шар.

1.3. Три кнопки начало, пуф_красный, пуф_синий.

2. На листе процедур напишите процедуру Начало, в которой выполняется следующее:

2.1. Чистятся текстовые окна.

2.2. Определяются переменные р_с_ш и р_к_ш с начальным значением 60 (начальный размер шаров).

2.3. Черепашки-шары получают начальные формы и размеры.

3. На листе процедур напишите процедуру пуф_синий, в которой выполняется следующее:

3.1. Определяется переменная х со случайным значением от 3 до 11.

3.2. К значению переменной р_с_ш прибавляется значение переменной х.

3.3. В текстовое окно синий_шар выводится значение переменной р_с_ш.

3.4. Анализируется значение переменной р_с_ш. Если оно больше 100, то синий шар лопается (меняют форму).

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

Решение

это новая_игра

красный_шар, ст
синий_шар, ст
пусть "р_с_ш 60
пусть "р_к_ш 60
синий, нф "сиси нрз :р_с_ш
красный, нф "кракра нрз :р_к_ш

конец

это пуф_синий

пусть "х 3 + сл 8
пусть "р_с_ш :р_с_ш + :х
синий_шар, ст вставь :р_с_ш
если_иначе :р_с_ш > 100 [синий, нф "синий_л]
[синий, нрз :р_с_ш]

конец

это пуф_красный

пусть "х 3 + сл 8
пусть "р_к_ш :р_к_ш + :х
красный_шар, ст вставь :р_к_ш
если_иначе :р_к_ш > 100 [красный, нф "красный_л]
[красный, нрз :р_к_ш]

конец

Игра № 8. “Тарабарская грамота”

В XV–XVI веке на Руси для составления секретных бумаг в переписке царского двора с русскими послами использовалась шифровка, называемая “тарабарской грамотой.”

Способ такой: гласные буквы и буквы й, ъ, ь писались без изменений. А согласные заменялись согласно следующей схеме:

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

Решение

это шифровка

пусть "глас [а е ё и о у ы э ю я й ъ ь]
пусть "согл1 [б в г д ж з к л м н]
пусть "согл2 [щ ш ч ц х ф т с р п ]
шифр, ст
пусть "всл исходный_текст
пусть "х 1
всегда [
пусть "с элемент :х :всл
если входит? :с :глас [шифр, вставь :с]
если входит? :с :согл1 [шифр, поиск1
вставь элемент :у :согл2]
если входит? :с :согл2 [шифр, поиск2
вставь элемент :у :согл1]
если (и не входит? :с :глас не входит?
:с :согл1 не входит? :с :согл2)
[вставь :с]
пусть "х :х + 1
если :х > сколько :всл [автостоп]
]

конец

это поиск1 ;поиск номера буквы

(из исходного текста) в списке согласных букв согл1
пусть "у 1
повтори сколько :согл1 [если :с = элемент :у :согл1 [стоп]
пусть "у :у + 1
]

конец

это поиск2 ;поиск номера буквы

(из исходного текста) в списке согласных букв согл2
пусть "у 1
повтори сколько :согл2 [ если :с = элемент :у :согл2 [стоп]
пусть "у :у + 1
]

конец

Игра № 9. “Спортлото 5 из 35”

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

Для реализации этой игры сделайте следующее.

1. На листе проекта создайте:

1.1. Пять текстовых окон с именами т1, т2, т3, т4, т5.

1.2. Одно текстовое окно с именем выпавшие_номера.

1.3. Кнопку крути_барабан.

2. На листе процедур напишите процедуру крути_барабан, в которой выполняется следующее:

2.1. Чистится текстовое окно выпавшие_номера.

2.2. Определяется пустой список сп [ ]. Этот список будет заполняться числами от 1 до 35.

2.3. В цикле повторяется следующее:

2.3.1. Определяется переменная п, ей присваивается случайным образом значение от 1 до 35.

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

2.3.3. Цикл прекращается, когда в списке становится 5 элементов.

2.4. В текстовое окно выпавшие_номера выводятся элементы списка сп. (Внимание! Команда всегда запускает параллельный процесс. Убедитесь, что список сформирован полностью посредством команды жди_пока.)

2.5. Определяется переменная оч со значением 0.
В случае совпадения выигравшего номера с числом на лотерейном билете к переменной оч прибавляется 1.

3. Для всех текстовых окон (т1, т2, т3, т4, т5) выполнить следующее:

3.1. Определяется переменная ччч, в которую помещается содержимое текстового окна.

3.2. Анализируется значение переменной ччч. Если оно входит в список сп, то к переменной оч прибавляется 1.

4. Анализируется значение переменной оч.

Если оно равно 0, программа сообщает “Увы!”.

Если оно равно 1, программа сообщает “Вы выиграли 3 рубля!”.

Если оно равно 2, программа сообщает “Вы выиграли 100 рублей!”.

Если оно равно 3, программа сообщает “Вы выиграли 100?000 рублей!”.

Если оно равно 4, программа сообщает “Вы выиграли полмиллиона!”.

Если оно равно 5, программа сообщает “Вы выиграли миллион рублей!”.

Решение

это Крути_барабан

барабан, повтори 3 [нф 31 жди 1 нф 32
жди 1 нф 47 жди 1 нф 48 жди 1]
выпавшие_номера, ст
пусть "сп []
всегда [
пусть "п (1 + сл 10 )
если не входит? :п :сп [пусть "сп вксп :п :сп ]
если (сколько :сп) = 5 [автостоп]
]
жди_пока [5 = сколько :сп ]
выпавшие_номера, ст вставь :сп
сообщение, ст вставь [Совпавшие номера - ]
пусть "оч 0
перебор [к [т1 т2 т3 т4 т5]]
[ для :к внт выделяй вкт копируй пусть "ччч буфер
если входит? :ччч :сп
[сообщение, вставь :ччч вставь символ 32 пусть "оч :оч + 1 ]
]
если :оч = 5 [сообщение, вставь [. Вы выиграли миллион!]]
если :оч = 4 [сообщение, вставь [. Вы выиграли полмиллиона!]]
если :оч = 3 [сообщение, вставь [. Вы выиграли сто тысяч!]]
если :оч = 2 [сообщение, вставь [. Вы выиграли сто рублей!]]
если :оч = 1 [сообщение, вставь [. Вы выиграли три рубля!]]
если :оч = 0 [сообщение, вставь [- нет. Увы!]]

конец

Игра № 10. “Отгадай число”

Суть игры: компьютер загадывает число и просит пользователя отгадать его за три попытки. В зависимости от ответа пользователя выдает сообщения: “Задуманное число больше”, “Задуманное число меньше”, “Вы угадали”, “Вы исчерпали свои попытки”.

Решение

это отгадайка!

пусть "е 1 + сл 10
сообщи [Задумано число от 0 до 10. У тебя три попытки]
повтори 3 [
спроси [Какое?]
пусть "ф ответ
если :ф < :е [сообщение, ст вставь [Задуманное число больше.]]
если :ф = :е [сообщение, ст вставь [Вы угадали!] стоп]
если :ф > :е [сообщение, ст вставь [Задуманное число меньше.]]
]
сообщение, ст вставь [Вы исчерпали свои попытки]

конец

Игра № 11. “Найди мину”

Суть игры: игрок должен обезвредить мину, спрятанную в реке (отгадать Х-координату мины). Программа задумывает число от –200 до 200. Запрашивает у пользователя координату мины. Перемещает ракету на координату, введенную пользователем, и сообщает: “Мина ближе”, “Мина дальше”, “Вы попали” — в зависимости от ситуации. В случае попадания мина взрывается.

Решение

это начало

установи "спроси "место [-185 -25]
сообщение, ст
ракета, нф "ракет нм [-300 0]
мина, сч нф "мин нов_у 0
пусть "х -200 + сл 400
мина, нов_х :х
всегда [
спроси [Введите Х-координату мины:]
пусть "м ответ
ракета, бди [нов_х :м] [сообщение, ст вставь
[вводи числа] автостоп]
если (путь "мина) < 25 [сообщение, ст вставь [Вы попали!]
мина, пч жди 5 нф "взр_мин автостоп ]
если :м < :х [сообщение, ст вставь [Мина дальше!]]
если :м > :х [сообщение, ст вставь [Мина ближе!]]
]
жди 10
ракета, нм [-300 0] мина, сч нф "мин

конец

Игра № 12. “Магнит”

Cуть игры: игрок должен собрать магнитом все предметы, сделанные из железа.

Для реализации этой игры сделайте следующее.

1. На листе проекта создайте:

1.1. Шесть черепашек ч1, … ч6, для некоторых из них выберите формы предметов, сделанных их железа, в диалоговых окнах этих черепашек, в поле инструкция напишите железо.

1.2. Кнопку действие_магнита.

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

2.1. Черепашки случайным образом распределяются на листе проекта.

2.2. Для магнита пишутся команды, которые будут всегда перемещать его за курсором мыши.

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

2.4. Напишите процедуру магнит, в которой будет выдаваться сообщение “Железо притягивается магнитом”.

Решение

это железо

сообщи [Железо притягивается магнитом]

конец

это действие_магнита

скажи [ч1 ч2 ч3 ч4 ч5 ч6 ] [нк сл 360 вп сл 500]
всегда [магнит, нм место_мышки вп 1 ]
всегда [
перебор [к [ч1 ч2 ч3 ч4 ч5 ч6 ]]
[
если и (коснулись? :к "магнит)
(узнай :к "правило) = [запусти [железо]]
[для :к курс_на "магнит вп путь "магнит ]
]
]

конец

Программирование текстовых окон

Блок № 1

Задача 1-1. “Мигающие окна”

Текстовые окна т1, т2, т3 по очереди то появляются, то исчезают на листе проекта.

Указание. Используйте команды спрячь_текст, покажи_текст.

Решение

это задача1

повтори 10 [
скажи [т1 т2 т3] [спрячь_текст
жди 2 покажи_текст]
]

конец

Задача 1-2. “Новые текстовые окна”

Написать процедуру, которая создает два новых текстовых окна. Одно с именем инфо, размер 120 на 40, координаты левого верхнего угла [–120; 0]. Другое с именем ттт, размер 60 на 60, координаты левого верхнего угла [–120; –80]. Затем, после небольшой паузы, оба окна удаляются.

Решение

это задача2

нт "инфо [-120 0] [120 40]
нт "ттт [-120 -80] [60 60]
жди 10 удали "инфо удали "ттт

конец

Задача 1-3. “Копирование содержимого текстовых окон”

Написать процедуру, которая складывает два числа. Числа берутся из текстовых окон 1число, 2число. Результат вычислений выводится в текстовое окно результат.

Указание. Команда пусть "х имя_окна помещает в переменную х содержимое текстового окна.

Решение

это задача3

пусть "х 1число
пусть "у 2число
пусть "сум :х + :у
результат, ст вставь :сум

конец

Задача 1-4. “Управление черепашкой из текстового окна”

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

Указание. Используйте команду делай [ ].

Решение

это задача4

делай команды

конец

Блок № 2

Задача 2-1. “Изменение шрифта, размера, цвета текста”

Написать процедуру, которая выводит в текстовое окно фразу “С добрым утром!”. Каждое слово печатается своим цветом и кеглем.

Указание. Чтобы слова разделялись пробелами, используйте команду вставь символ 32.

Решение

это задача1

приветствие, ст нов_шрифт "Arial
нрш 12 нцт 55 вставь [С]
вставь символ 32 нрш 16 нцт 105
вставь [добрым ]
вставь символ 32 нрш 20 нцт 15
вставь [утром!]

конец

Задача 2-2. “Установка параметров текстового окна”

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

Указания. Используйте команду установи "имяТО "место [Х У].

Решение 1

это задача2_1

установи "кенг "место [-220 -20] жди 2
установи "кенг "место [-180 -20] жди 2
установи "кенг "место [-140 -20] жди 2
установи "кенг "место [-100 -20] жди 2
установи "кенг "место [-80 -20] жди 2
установи "кенг "место [-60 -20] жди 2
установи "кенг "место [-40 -20] жди 2
установи "кенг "место [0 -20] жди 2
установи "кенг "место [20 -20] жди 2
установи "кенг "место [40 -20] жди 2
установи "кенг "место [60 -20] жди 2

конец

Решение 2 (с использованием списков)

это задача2_2

пусть "ХКокна -300
пусть "УКокна -50
повтори 30 [
установи "кенг "место список :ХКокна
:УКокна
пусть "ХКокна :ХКокна + 17 жди 2
]

конец

Задача 2-3. “Изменение размера текстового окна”

Написать процедуру, которая меняет размер текстового окна от [30 30] до [100 100]. Окно сохраняет квадратную форму.

Указание. Используйте команду Лого установи "имяТО "размер [Х У].

Решение 1

это задача3_1

установи "кенг "размер [30 30] жди 2
установи "кенг "размер [40 40] жди 2
установи "кенг "размер [60 60] жди 2
установи "кенг "размер [80 80] жди 2
установи "кенг "размер [100 100] жди 2

конец

Решение 2 (с использованием списков)

это задача3_2

пусть "шир_окна 30
пусть "выс_окна 30
повтори 8 [
установи "кенг "размер список
:шир_окна :выс_окна жди 2
пусть "выс_окна :выс_окна + 10
пусть "шир_окна :шир_окна + 10
]

конец

Задача 2-4. “Летающие слова”

Реализовать следующий сценарий: по листу проекта перемещается слово “внимание”, размер шрифта увеличивается с каждым шагом (от 8 до 24), также меняется интенсивность окраски слова (от розового до темно-красного).

Решение

это задача4

пусть "шир_окна 80
;ширина текстового окна
пусть "выс_окна 24
;высота текстового окна
пусть "Х_окна -280
;Х-координата текстового окна
пусть "У_окна 0
;У-координата текстового окна
пусть "цвБ 10
;цвет символа (меняется от 10 до 19)
пусть "разБ 8
;размер шрифта (меняется от 8 до 26)
кенг, ст нрш :разБ нцт :цвБ вставь "Внимание!
повтори 9 [
установи "кенг "размер список :шир_окна :выс_окна
установи "кенг "место список :Х_окна :У_окна
пусть "шир_окна :шир_окна + 20
пусть "выс_окна :выс_окна + 4
пусть "Х_окна :Х_окна + 50
пусть "цвБ :цвБ + 1
пусть "разБ :разБ + 2
кенг, внт выделяй вкт нрш :разБ нцт :цвБ не_выделяй жди 1
]

конец

Блок № 3

Задача 3-1. “Меняем размер нечетных букв в слове”

Написать процедуру, которая меняет размер каждой нечетной буквы в слове “молоко” на 20.

Решение

это задача1

т1, внт
выделяй квп нрш 24
не_выделяй квп
выделяй квп нрш 24
не_выделяй квп
выделяй квп нрш 24
не_выделяй квп

конец

Задача 3-2. “Меняем цвет каждой третьей буквы в тексте”

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

Решение

это задача2

текст1, внт
всегда [
выделяй квп нцт 15
не_выделяй квп квп
если кт? = "да [автостоп]
]

конец

Задача 3-3. “Гадаем по книге”

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

Решение

это задача3

выбор, ст вставь сл_строка "текст1

конец

Задача 3-4. “Слова-перевертыши”

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

Решение

это задача4

текст, внт
текст, ст
всегда [
текст, выделяй квп копируй
тскет, вставь буфер кнд
текст, если кт? = "да [автостоп]
]

конец

Блок № 4

Задача 4-1. “Новая кнопка”

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

Процедура Всё_прочитал удаляет текстовое окно и удаляет кнопку кн.

Решение

это Информация

нт "ттт [-240 -20] [150 80]
вставь [это более подробная информация о ...]
нов_кнопка "кн1 [-150 -100]
[Всё_прочитал]

конец

это Всё_прочитал

удали "ттт
удали "кн1

конец

Задача 4-2. “Поиск и замена слов в тексте”

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

Решение

это Замена_слов

пусть "сл1 "Вася
пусть "сл2 "Рома
письмо, внт
всегда [
ищи :сл1
если не нашла? [ автостоп]
вставь :сл2
]

Конец

это Вернуть

пусть "сл1 "Вася
пусть "сл2 "Рома
письмо, внт
всегда [
ищи :сл2
если не нашла? [ автостоп]
вставь :сл1
]

Конец

Задача 4-3. “Подсчет гласных букв в тексте”

Подсчитать количество гласных букв (а, е, ё, и, о, у, э, ю, я), встречающихся в фрагменте русского текста. Результат оформить в виде столбчатой диаграммы.

Решение 1

это статистика

пусть "кол_А 0
пусть "кол_Е 0
пусть "кол_Ё 0
пусть "кол_И 0
пусть "кол_О 0
пусть "кол_У 0
пусть "кол_Ы 0
пусть "кол_Э 0
пусть "кол_Ю 0
пусть "кол_Я 0
перо, сг
стих, внт
всегда [
ищи "а если_иначе нашла?
[пусть "кол_А :кол_А + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, ст вставь "А- вставь :кол_А вставь
символ 32
перо, сг пп нм [0 -70] столбик :кол_А
стих, внт
всегда [
ищи "е если_иначе нашла?
[пусть "кол_Е :кол_Е + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "Е- вставь :кол_Е
вставь символ 32
перо, пп столбик :кол_Е
стих, внт
всегда [
ищи "ё если_иначе нашла?
[пусть "кол_Ё :кол_Ё + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "Ё- вставь :кол_Ё
вставь символ 32
перо, пп столбик :кол_Ё
стих, внт
всегда [
ищи "и если_иначе нашла?
[пусть "кол_И :кол_И + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "И- вставь :кол_И
вставь символ 32
перо, пп столбик :кол_И
стих, внт
всегда [
ищи "о если_иначе нашла?
[пусть "кол_О :кол_О + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "О- вставь :кол_О
вставь символ 32
перо, пп столбик :кол_О
стих, внт
всегда [
ищи "у если_иначе нашла?
[пусть "кол_У :кол_У + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "У- вставь :кол_У
вставь символ 32
перо, пп столбик :кол_У
стих, внт
всегда [
ищи "ы если_иначе нашла?
[пусть "кол_Ы :кол_Ы + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "Ы- вставь :кол_Ы
вставь символ 32
перо, пп столбик :кол_Ы
стих, внт
всегда [
ищи "э если_иначе нашла?
[пусть "кол_Э :кол_Э + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "Э- вставь :кол_Э
вставь символ 32
перо, пп столбик :кол_Э
стих, внт
всегда [
ищи "ю если_иначе нашла?
[пусть "кол_Ю :кол_Ю + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "Ю- вставь :кол_Ю
вставь символ 32
перо, пп столбик :кол_Ю
стих, внт
всегда [
ищи "я если_иначе нашла?
[пусть "кол_Я :кол_Я + 1 ] [автостоп]
]
жди_пока [не нашла?]
рез, вставь "Я- вставь :кол_Я
вставь символ 32
перо, пп столбик :кол_Я

конец

это столбик "х

перо,
нк 0 повтори 2 [по вп :х пр 90 вп 10
пр 90 ]
нк 90 пп вп 25

конец

Решение 2 (после знакомства с программированием списков)

это статистика2

рез, ст
перо, сг пп нм [0 -80]
пусть "бук [А Е Ё И О У Ы Э Ю Я]
;список гласных букв
пусть "кол_бук [кол_А кол_Е кол_Ё
кол_И кол_О кол_У кол_Ы кол_Э
кол_Ю кол_Я] ; список имен переменных
пусть "к 1
повтори сколько :кол_бук [
назови 0 (элемент :к :кол_бук)
пусть "к :к + 1
] ;переменным из списка :кол_бук присваивается значение 0
пусть "и 1
повтори сколько :бук [
стих, внт
всегда [
ищи элемент :и :бук если_иначе нашла?
[назови (значение (элемент :и
:кол_бук)) + 1 ( элемент :и :кол_бук) ]
[автостоп]
]
жди_пока [не нашла?]
рез, вставь (элемент :и :бук)
вставь "- вставь значение элемент
:и :кол_бук вставь символ 32
перо, столбик значение (элемент :и :кол_бук)
пусть "и :и + 1
]

конец

Задача 4-4. “Пирамида из слов”

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

Решение

это пирамида

т1, ст
спроси [Введи любое слово]
т1, вставь ответ
всегда [
т1, внст
выделяй вкст копируй пиши []
верни кнд сотри_букву
если (сколько буфер) = 1 [автостоп]
]

конец

Дополнительные задачи по теме “Программирование текстовых окон”

Задача 1. “Копируем строки текста”

Скопировать одну строчку текста из текстового окна ТТТ1 и 5 раз вывести ее в текстовое окно ТТТ2.

Решение

это копи

ТТТ1, внст выделяй вкст копируй
ТТТ2, повтори 5 [пиши буфер]

конец

Задача 2. “Узнаем коды букв русского алфавита”

Вывести в текстовое окно коды всех букв русского алфавита в следующем виде:

а — 224
б — 225
в — 226
г — 227

Буквы вводятся с клавиатуры.

Решение

это коды_букв

всегда [
пусть "х жди_символ
пусть "у код :х
текст,
вставь :х вставь "- пиши :у
если :х = 0 [автостоп]
]

конец

Задача 3. “Случайный набор букв с изменяющимся размером”

Вывести в текстовое окно 10 букв русского алфавита, выбранных случайным образом. Размер шрифта увеличивается с 10 до 30. Цвет букв меняется случайным образом.

Решение

это рост_букв

пусть "х 10
текст, ст
всегда [
нрш :х
нцт 1 + сл 200
вставь символ (223 + сл 31)
пусть "х :х + 2
если :х > 30 [автостоп]
]

конец

Задача 4. “Ищем букву в тексте и меняем ее цвет и размер”

Написать процедуру, которая находит в тексте любую букву (введенную пользователем), меняет цвет буквы на красный, а размер шрифта на 20.

Решение

это поиск_букв

спроси [Какую букву найти?]
пусть "бук ответ
т1, внт
всегда [
ищи :бук
нцт 15
нрш 20
если не нашла? [автостоп]
]

конец

Задача 5. “Считаем количество букв в тексте”

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

Решение

это подсчет_букв

спроси [Какую букву найти?]
пусть "бук ответ
стих, внт
пусть "кб 0
всегда [
ищи :бук
если нашла? [пусть "кб :кб + 1]
если не нашла? [автостоп]
]
рез, ст вставь [Кол-во букв-] вставь
:бук вставь "- вставь :кб

конец

Задача 6. “Случайно выбранные строки”

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

Решение

это случай

стих2, ст
повтори 4 [
стих2, пиши сл_строка "стих1
]

конец

Задача 7. “Считаем количество строк в тексте”

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

Указание. Используйте команду число_строк.

Решение

это Сколько_строк

ттт2, ст пиши число_строк "ттт1

конец

Задача 8. “Приветствие”

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

Решение

это чистка

скажи [ттт1 ттт2] [ ст нцт 1 + сл 200 пиши "привет]

конец

Задача 9. “Палиндромы”

Палиндром — это слово или предложение, которое одинаково читается в обе стороны. Например: Лапоть топал. Мыло голым! Я ем змея. Я не стар, брат Сеня! О, Нина и пианино. Продемонстрируйте это.

Решение 1

это наоборот

спроси [введите фразу]
фраза, ст вставь ответ внт
пусть "кол_сим сколько фраза
палиндром, ст
повтори :кол_сим [
фраза, выделяй квп копируй
палиндром, верни кнд
]
;палиндром, внт повтори :сл1 [квп]
вставь символ 32

конец

Решение 2 (после знакомства с программированием списков)

это наоборот2

пусть "позиция_знака [ ] ;
номер позиции небуквенного символа в тексте
пусть "код_знака [ ]
;код небуквенного символа в тексте
спроси [введите фразу]
фраза, ст вставь ответ внт
пусть "кол_сим сколько фраза
палиндром, ст
пусть "текущ_позиция 1
повтори :кол_сим [
фраза, выделяй квп копируй
если_иначе или (код буфер) < 192
(код буфер) > 255
[пусть "позиция_знака вксп
:текущ_позиция :позиция_знака
пусть "код_знака вксп (код буфер)
:код_знака
]
[палиндром, верни кнд]
пусть "текущ_позиция :текущ_позиция + 1
]
; расстановка небуквенных символов
пусть "к 1
повтори (сколько :позиция_знака) [
палиндром, внт повтори ((элемент :к
:позиция_знака )- 1) [квп]
вставь символ (элемент :к :код_знака)
пусть "к :к + 1
]

конец

Задача 10. “Логогрифы”

Логогрифы — слова или предложения, в которых удаление одной буквы меняет смысл (но текст остается осмысленным). Например: Всюду хРамы, У царя нет сЫна. Продемонстрируйте это.

Решение

Это логогриф1

письмо, ст вставь [Всюду храмы]
жди 5
внт
ищи "р вырежи

конец

это логогриф2

письмо, ст вставь [У царя нет сына]
жди 5
внт
ищи "ы вырежи

конец

Задача 11. “Акростих”

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

Родясь от пламени, на небо возвышаюсь,

Оттуда на землю водою возвращаюсь!

С земли меня влечет планет всех князь к звездам,

А без меня тоска смертельная цветам.

Решение

это акростих

акро, ст стих, ст
пиши [Родясь от пламени, на небо возвышаюсь,]
пиши [Оттуда на землю водою возвращаюсь!]
пиши [С земли меня влечет планет всех князь к звездам,]
пиши [А без меня тоска смертельная цветам.]
стих, внт
пусть "кс число_строк "стих
повтори :кс [
стих, выделяй квп нов_стиль "жирный
копируй нов_стиль "жирный кнд кнз
акро, верни
]

конец

Задача 12. “Кругозвучия”

Кругозвучия — это такие слова, которые при многократном повторении начинают звучать как другие слова. Например:

Мышка

Мышкамышкамышкамышкамышкамышкамышка

Крыса

Крысакрысакрысакрысакрысакрысакрысакрысакрысакрысакрыса

Продемонстрируйте это.

Решение

это кругозвучие

круг, ст нцт 9 повтори 10 [вставь "крыса]
внт
всегда [
ищи "рысак нцт 1 + (сл 200)
если не нашла? [автостоп]
]

конец

Программирование списков

Блок № 1

Задача 1-1. “Добавляем в список новый элемент”

Определить список нескольких членов вашей семьи (не всех). Добавить в конец списка нового члена семьи. Результат вывести в текстовое окно.

Решение

это вся_семья

пусть "семья [мама папа сын]
результат, ст пиши :семья
пусть "семья вксп "дочь :семья
результат, вставь :семья

конец

Задача 1-2. “Считаем количество элементов в списке”

Определить список, содержащий имена одноклассников, присутствующих на уроке. Сравнить количество элементов в этом списке с числом 16. Если количество окажется меньше 16, выдать сообщение “кто-то болеет”. Если количество окажется равно 16, выдать сообщение “все на уроке”.

Решение

это класс

пусть "присутствующие [Коля Оля Маша Тоня Ваня]
пусть "ск сколько :присутствующие
если_иначе :ск < 16 [сообщи [Кто-то болеет]]
[сообщи [все на уроке]]

конец

Задача 1-3. “Расчет суммы элементов списка”

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

Решение

это расчет_суммы

пусть "сп [ 1 4 6 3 7 3]
;определяется список из шести чисел
пусть "сум 0 ;определяется переменная
"сум - туда будет помещаться сумма
пусть "х 1 ;определяется переменная
"х - счетчик элементов списка
повтори (сколько :сп) [
пусть "сум :сум + элемент :х :сп
пусть "х :х + 1
]
результат, ст вставь [Элементы списка -]
пиши :сп
вставь [Cумма элементов списка -]
пиши :сум ; сам список и сумма его элементов выводится в текстовое окно

конец

Задача 1-4. “Циклы и списки”

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

Решение

это расчет_суммы2

пусть "сп [ 1 4 6 3 7 3]
пусть "сум 0
пусть "х 1
всегда[
пусть "сум :сум + элемент :х :сп
пусть "х :х + 1
если :х > сколько :сп [автостоп]
]
результат, ст пиши :сп пиши :сум

конец

Блок № 2

Задача 2-1. “Буриме”

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

Решение

это Буриме

пусть "сп_вопросов [
[Что вы делаете завтра?]
[Почему пропустили урок?]
[Почему опоздали?]
[О чем вы думаете?]
[Как вам пришла такая мысль?]
[Какие у вас проблемы?]
]
пусть "сп_ответов [
[Иду в кино с классом]
[Мама проспала]
[Машина у папы сломалась]
[О еде]
[Ударился головой о стену]
[Кушать хочется]
]
вопрос, ст пиши сл_элемент :сп_вопросов
ответ!, ст пиши сл_элемент :сп_ответов

конец

это Подсказка1

покажи [Используй команду сл_элемент
:сп (выдает случайным образом
выбранный элемент из списка)]

конец

Задача 2-2. “Ломаная линия”

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

Решение

это Ломаная

пусть "дл [15 30 50 25 40]
пусть "уг [120 90 28 70 130]
пусть "и 1
перо, по
всегда [
вп элемент :и :дл
пр элемент :и :уг
если (последний :дл) = (элемент :и
:дл) [автостоп]
пусть "и :и + 1
]

конец

Задача 2-3. “Среднее арифметическое элементов списка”

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

Решение 1

это среднее_арифметическое

пусть "сп [ 1 4 6 3 7 3]
пусть "сум 0
пусть "х 1
повтори сколько :сп
[пусть "сум :сум + элемент :х :сп пусть "х :х + 1]
пусть "ср :сум / сколько :сп
результат, ст пиши :сп пиши :ср

конец

Задача 2-4. “Тест по русскому языку”

Написать две процедуры. В процедуре задача№4 определить два списка: один [молоко корова собака], другой — [м_л_ко к_р_ва с_бака]. Первый список вывести в текстовое окно результат.

В процедуре задача№4_проверка скопировать содержимое текстового окна (внт выделяй вкт копируй) и сравнить содержимое второго списка со скопированной информацией. В случае, если значение списков совпадет, сообщить “Все правильно”. В противном случае — “Вы ошиблись”.

Решение

это получи_задание

пусть "сп1 [молоко корова собака]
пусть "сп2 [м_л_ко к_р_ва с_бака]
результат, ст вставь :сп2

конец

это проверка

результат, внт выделяй вкт копируй
пусть "сс разбери буфер
если_иначе равны? :сп1 :сс
[сообщи [все правильно] ]
[сообщи [вы ошиблись]]

конец

Блок № 3

Задача 3-1. “Гласные и согласные буквы русского алфавита”

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

Решение

это гласные-согласные

пусть "гласные [ а е ё и о у ы э ю я]
пусть "алф [а б в г д е ё ж з и к л м н
о п р с т у ф х ц ч ш щ ь ы ъ э ю я]
пусть "а 1
алфавит, ст
всегда [
пусть "Б элемент :а :алф
если_иначе входит? :Б :гласные
[нцт 15] [нцт 105]
алфавит, вставь :Б
пусть "а :а + 1
если :а > сколько :алф [автостоп]
]

конец

Задача 3-2. “Рекламный текст”

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

Решение

это рекламный_текст

спроси [введите рекламный текст]
пусть "рекл разбери ответ
пусть "и 1
пусть "рш 12
реклама, ст
всегда [ нцт 1 + сл 200 нрш :рш
реклама, вставь элемент :и
:рекл вставь символ 32
если (последний :рекл) = (элемент :и :рекл) [автостоп]
пусть "и :и + 1
пусть "рш :рш + 2
]

конец

Задача 3-3. “Расчет суммы квадратов элементов списка”

Написать процедуру для подсчета суммы квадратов элементов списка сп. Содержимое списка и значение суммы квадратов вывести в текстовое окно результат.

Решение

это сумма_квадратов

пусть "сп [ 1 8 1 12 1 5]
пусть "сумкв 0
пусть "х 1
повтори сколько :сп [
пусть "сумкв :сумкв + (элемент :х :сп) * (элемент :х :сп)
пусть "х :х + 1
]
результат, ст вставь [Элементы списка]
пиши :сп
вставь [Сумма квадратов элементов
списка -] пиши :сумкв

конец

Задача 3-4. “Подсчет количества четных чисел в списке”

Дан следующий список: [24 25 34 33 45 67 78 87 65]. Подсчитать количество четных элементов данного списка (используйте команду остаток). Сам список и полученное число вывести в текстовое окно.

Решение

это четные_числа

пусть "сп [24 25 34 33 45 67 78 87 65]
пусть "и 1
пусть "к_чет 0
повтори сколько :сп [
если (остаток (элемент :и :сп) 2) = 0
[пусть "к_чет :к_чет + 1]
пусть "и :и + 1
]
результат, ст вставь [Элементы списка -]
пиши :сп
вставь [Четных элементов в списке -]
пиши :к_чет

конец

Блок № 4

Задача 4-1. “Перевод восьмеричных чисел в двоичные”

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

Решение

это десять-два

десятичное, внт выделяй вкт копируй
пусть "ч буфер
двоичное, ст
всегда [
пусть "о остаток :ч 2
пусть "ч целое :ч / 2
двоичное, вставь :о кнд
если :ч = 0 [автостоп]
]

конец

Задача 4-2. “Перевод двоичных чисел в десятичные”

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

Решение

это два-десять

двоичное, внт выделяй вкт копируй
пусть "чдв буфер
десятичное, ст
пусть "х 0 ;счетчик шагов в цикл
пусть "чисдес 0 ;десятичное число
пусть "с сколько :чдв ;кол-во знаков
в двоичном числе
всегда [
пусть "эл элемент (:с - :х) :чдв
;берем по очереди цифры; из "чдв с конца
если :эл > 1 [сообщи [число не двоичное] останов]
пусть "чисдес :чисдес + (степень 2 :х) * :Эл
пусть "х :х + 1
если :х = :с [десятичное, пиши : чисдес автостоп]
]

конец

Задача 4-3. “Перевод восьмеричных чисел в десятичные”

Написать процедуру для перевода числа из восьмеричной системы счисления в десятичную.

Решение

это восемь-десять

восьмеричное, внт выделяй вкт копируй
пусть "ч буфер
десятичное, ст
пусть "х 0
пусть "чис 0
пусть "с сколько :ч
всегда [
пусть "эл элемент (:с - :х) :ч
если :эл > 7 [сообщи [число не восьмеричное] останов]
пусть "чис :чис + (степень 8 :х) * :Эл
пусть "х :х + 1
если :х = :с [автостоп]
]
десятичное, пиши :чис

конец

Дополнительные задачи по теме “Программирование списков”

Задача 1. “Рисуем ломаную линию по списку координат”

Определяется список, состоящий из списков координат черепашки. Затем черепашка перемещается по экрану, используя элементы из списка. Черепашка оставляет след и получается рисунок.

Решение

это ломаная

перо, по
нрп 1 нц 4
пусть "сп_к [[150 50] [267 10] [37 42] [34 78]]
пусть "х 1
всегда [
нм элемент :х :сп_к
пусть "х :х + 1
если :х > сколько :сп_к [автостоп]
]

конец

Задача 2. “Считаем и перемещаем элементы списка”

Для списка целых положительных чисел [5 45 78 10 90 34 11 89 55 2 77 44 38 49 99 22] определить, сколько элементов списка больше 50 и сколько элеменов списка меньше 50. Все числа, которые больше 50, поместить в конец нового списка, а те, которые меньше 50, — в начало нового списка. Результат вывести в текстовые окна.

Решение

это граница

пусть "х 0
пусть "б [5 45 78 10 90 34 11 89 55 2 77 44 38 49 99 22]
пусть "к [ ]
пусть "Г 50
пусть "кэ сколько :б
всегда [
пусть "х :х + 1
если_иначе (элемент :х :б) > :Г
[пусть "к вксп (элемент :х :б) :к]
[пусть "к внсп (элемент :х :б) :к]
если :х = :кэ [автостоп]
]
больше, сг вставь :б
меньше, сг вставь :к

конец

Задача 3. “Треугольник”

Написать процедуру, которая первую букву в слове “треугольник” помещает в конец слова, затем удаляет эту букву. И так до тех пор, пока снова не образуется слово “треугольник”.

Решение

это треугольник

пусть "сп [т р е у г о л ь н и к]
пиши :сп
повтори сколько :сп [
пусть "сп вксп (элемент 1 :сп) :сп
пусть "сп кпрв :сп
]
дано!, вставь :сп

конец

Задача 4. “Ищем максимальный элемент списка”

Дан список чисел. Найти максимальный элемент.

Решение

это максимум

пусть "сп [1 2 3 4 5 6 7 8 90 16 10 11 12 13 14 15]
пусть "мах элемент 1 :сп
пусть "№мах 0
пусть "х 1
всегда [
если :мах < элемент :х :сп
[пусть "мах элемент :х :сп пусть "№мах :х ]
пусть "х :х + 1
если :х > сколько :сп [поиск, ст вставь
[Максимальный элемент равен -]
пиши :мах
поиск, вставь [Номер максимального элемента -]
вставь :№мах
автостоп ]
]

конец

Задача 5. “Считаем сумму и разность сумм элементов двух списков”

Определить два списка (элементы списка вводятся в диалоговом режиме). Посчитать суммы элементов каждого списка. Затем вычислить разность этих сумм и сумму этих сумм. Результат вывести в текстовое окно.

Решение

это разность_сумм

ст
пусть "м1 []
пусть "м2 []
пусть "в1 0 ;в1 – сумма элементов списка м1
пусть "в2 0 ;в2 – сумма элементов списка м2
повтори 5[спроси[ Введите элемент для 1-го массива]
пусть "д1 ответ
пусть "в1 :в1 + :д1
пусть "м1 вксп :д1 :м1
]
вставь [Сумма элементов 1-го списка -]
пиши :в1
повтори 5[спроси[ Введите элемент для 2-го массива]
пусть "д2 ответ
пусть "в2 :в2 + :д2
пусть "м2 вксп :д2 :м2
]
текст, вставь [Сумма элементов 2-го списка -] пиши :в2
вставь [Разность сумм элементов 1-го списка и 2-го списка -]
пиши :в1 - :в2
вставь [Сумма сумм элементов 1-го списка и 2-го списка -]
пиши :в1 + :в2

конец

Задача 6. “Объединяем два списка”

Даны два списка: список имен всех мальчиков в классе и список имен всех девочек в классе. Составить третий список, содержащий имена всех учеников класса.

Решение

это класс

пусть "весь_класс []
пусть "девочки [Вика Майя Оля Сабина]
пусть "мальчики [Антон Игорь Илья Паша Рома Миша]
пусть "весь_класс предложение :девочки :мальчики
результат, ст вставь :весь_класс

конец

Задача 7. “Косим траву”

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

Решение

это коси_коса

пусть "черепашки [цв1 цв2 цв3 цв4 цв5
цв6 цв7 цв8 цв9 цв10 ]
пусть "граница 50
всегда [
коса, нм мм
перебор [к :черепашки ]
[для :к если (путь "коса) < :граница [для :к нф 13]]
]

конец

это вернуть

перебор [к :черепашки] [для :к нф 7]

конец

Задача 8. “Косим новую траву”

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

Указание. Для получения имени новой черепашки используй команду слово.

Решение

это коси_коса2

пусть "черепашки [ ] ; список черепашек
пусть "граница 50 ; расстояние от косы до травы
пусть "и 1 ;счетчик травинок
повтори 10 [
пусть "ич слово "цв :и нч :ич
;сначала создается имя черепашки -
склеиваются буквы цв и число от 1 до 10.
нов_х (-200 + сл 400) нов_у (-100 + сл 150) нф 7 пч
;черепашка перемещается на случайное
место, меняет форму и показывается
пусть "черепашки вксп :ич :черепашки
;имя черепашки заносится в список
пусть "и :и + 1
]
всегда [
коса, нм мм
перебор [к :черепашки ]
[для :к если (путь "коса) < :граница [для :к нф 13]]
]

конец

это вернуть2

перебор [к :черепашки] [удали :к ]

конец

Задача 9. “Ищем ближайший цветок (поиск минимального элемента списка)”

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

Решение

это полет_пчелы

пусть "черепашки [цв1 цв2 цв3 цв4 цв5
цв6 цв7 цв8 цв9 цв10 ]
пусть "расст [ ]
; расстояние от пчелы до цветов
пчелка, нов_х (-100 + сл 200) нов_у
(-50 + сл 100) жди 5
перебор [к :черепашки ] [
для :к пусть "расст вксп (целое
путь "пчелка) :расст
]
; заполняется список расстояний от пчелы до цветов
пусть "ном_ближ_ч 1
;номер ближайшего цветка - 1 (пока)
пусть "ближ_р элемент 1 :расст
; за минимальное расстояние берется
расстояние до первого цветка цв1.
пусть "и 1
повтори (сколько :расст) [
если (элемент :и :расст) <
:ближ_р [пусть "ближ_р (элемент :и :расст)
пусть "ном_ближ_ч :и ]
пусть "и :и + 1
]
пчелка, курс_на (элемент :ном_ближ_ч :черепашки)
плавно :ближ_р 1 ;пчела летит к ближайшему цветку

конец

Задача 10. “Облетаем все цветы (поиск минимального элемента списка)”

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

Решение

это полет_пчелы2

пусть "черепашки [цв1 цв2 цв3 цв4 цв5 цв6 цв7 цв8 цв9 цв10 ]
пусть "посещ_цветы [ ]
;список черепашек, которых пчелка уже посетила
повтори сколько :черепашки [
пусть "расст [ ]
; расстояние от пчелы до цветов
перебор [к :черепашки ] [
для :к если_иначе не входит? :к
:посещ_цветы
[пусть "расст вксп
(целое путь "пчелка) :расст ]
[пусть "расст вксп 1000 :расст]
;если цветок уже посещался пчелкой, то
;расстояние до него приравниваем 1000,
чтобы этот цветок гарантированно
не оказался ближайшим
] ;заполняется список расстояний от пчелы до цветов
пусть "ном_ближ_ч 1
;номер ближайшего цветка - 1 (пока)пусть "ближ_р элемент 1 :расст
;за минимальное расстояние берется расстояние до первого цветка цв1.
пусть "и 1
повтори (сколько :расст) [
если (элемент :и :расст) < :ближ_р
[пусть "ближ_р (элемент :и :расст) пусть "ном_ближ_ч :и ]
пусть "и :и + 1
]
пчелка, курс_на (элемент :ном_ближ_ч :черепашки)
плавно :ближ_р 1
;пчела летит к ближайшему цветку
пусть "посещ_цветы вксп (элемент
:ном_ближ_ч :черепашки) :посещ_цветы
;пополняется список посещенных цветов
]

конец

Задача 11. “Строим мальчиков по росту (сортировка элементов списка)”

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

Решение

это команда-на-поле

пусть "сп_чер [ ]
пусть "сп_рост []
много_раз [к 10] [
пусть "имя_ч (слово "игрок :к )
пусть "сп_чер вксп :имя_ч :сп_чер
нч :имя_ч нов_х -200 + сл 400
нов_у -100 + сл 150 нф 41
пусть "раз_чер (20 + сл 20) нрз
:раз_чер пч
пусть "сп_рост вксп :раз_чер
:сп_рост
]

конец

это стройся!

пусть "сп_чер_сорт []
пусть "сп_рост_сорт []
повтори сколько :сп_чер [
макси ;ищем максимальный элемент в списке ростов.
пусть "сп_рост_сорт вксп :мак
:сп_рост_сорт
пусть "сп_чер_сорт вксп (элемент :№мак :сп_чер ) :сп_чер_сорт
повтори :№мак [
пусть "сп_рост вксп ( элемент 1 :сп_рост) :сп_рост
пусть "сп_рост кпрв :сп_рост
]
пусть "сп_рост кпсл :сп_рост
повтори :№мак [
пусть "сп_чер вксп ( элемент 1 :сп_чер) :сп_чер
пусть "сп_чер кпрв :сп_чер]
пусть "сп_чер кпсл :сп_чер
]
пусть "х1 -200
перебор [к :сп_чер_сорт]
[для :к нов_у -100 нов_х :х1 пусть "х1 :х1 + 35 жди 3]

конец

это макси

пусть "мак элемент 1 :сп_рост
пусть "№мак 1
пусть "и 1
повтори сколько :сп_рост [
если :мак < ( элемент :и :сп_рост)
[ пусть "мак ( элемент :и :сп_рост)
пусть "№мак :и]
пусть "и :и + 1
]

конец

это вернуть6

перебор [к :сп_чер_сорт][удали :к]

конец

Задача 12. “Поиск счастливых билетов”

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

Решение

это счастливый_билет

счастливые_номера, ст
пусть "х 1000
пусть "к 0
повтори 9999 - 1000 [
если (элемент 1 :х) + (элемент 2 :х) =(элемент 3 :х) + (элемент 4 :х)
[пусть "к :к + 1 счастливые_номера, вставь :х вставь символ 32]
пусть "х :х + 1
]
вставь "всего- вставь :к вставь "счастливых_номеров

конец

Р.. А.. Волкова

TopList