2.1.1 Проект в ПервоЛого «Смена Дня и Ночи»
Данный проект является демонстрацией возможностей приложения среды ЛогоМиры ПервоЛого. Чтобы запустить демонстрацию нужно мышкой выделить солнце и луну и щелкнуть по любой из этих черепашек. Сейчас на экране мы видим день, а как только солнце сядет, наступит ночь. И картинка изменится.
Рис.3. День Рис.4. Ночь
Для создания этого проекта прежде всего необходимо создать новые формы для черепашек. Нужно нарисовать небо и землю днем и ночью. Итак, чтобы нарисовать землю и небо днем и ночью, нужно в свободной клетке Поля Форм щелкнуть правой кнопкой мыши. Появится окно редактирования. При помощи инструментов Рисовалки создаются эти объекты.
Рис.5. Поле форм
После создания объектов, на форму помещаются четыре черепашки и «одеваются » в следующем порядке: дневное небо, солнце, луна и дневная земля. Черепашку, которая будет луной нужно повернуть на 180 градусов, чтобы она смотрела вниз. Совмещаем рисунок и должно получиться следующее:
Рис.6. Лист проекта
Теперь, чтобы солнце двигалось по кругу, необходимо задать ему следующую команду: 10 шагов, поворот на 13 градусов и пауза 0.3 сек. В окне команд для солнца нужно задать эту цепочку действий и щелкнув на стрелке, задать многократное повторение этих действий. Чтобы посмотреть что получилось, надо щелкнуть мышкой на солнышко. Оно всходит и заходит, но земля и небо остаются дневными. Это можно исправить с помощью светофора. Для этого надо вызвать окно обучения для солнышка, щелкнуть на закладку с двумя черепашками и выбирать землю, щелкнув на ней мышкой. Теперь на поле команд необходимо выбрать Светофор и установить фиолетовый цвет. Также необходимо научить землю и небо реагировать на изменение сигнала светофора. Для этого надо открыть окно обучения для земли, щелкнув Ключом. Выбирать закладку с светофором и установить фиолетовый цвет и ночную Землю. Точно также учим реагировать на изменение сигнала светофора небо. На данный момент, когда солнышко зашло, Земля и Небо стали ночными, но когда оно вышло, темнота осталась. Чтобы это исправить надо открыть окно обучения для солнца, щелкнув ключом, выбирать закладку с двумя черепашками. Установить дневное небо. В закладке Светофор необходимо установить значок светофора с оранжевым цветом. Теперь землю и небо необходимо обучить реагировать на оранжевый сигнал светофора. Для этого надо вызвать окно обучения для Земли, на закладке Светофор выбрать оранжевый сигнал. Установить дневную форму земли. Закрыть окно обучения. Точно также учим реагировать небо на изменение сигнала светофора. Осталось задать Луне команду движения по кругу. Аналогично солнцу, в окне обучения Луны необходимо записать команду: 10 шагов, поворот на 13 градусов и пауза 0.3 сек.
Приведенный ниже листинг программы генерируется автоматически. Ученики создают команды лишь с помощью мыши.
Листинг программы
это шагай :n
fd :n
my-cmt3
color-react
конец
это removeitem :item :list
let [res []]
dolist [i :list]
[if not equal? :item :i [let [res lput :i :res]]]
op :res
конец
это clr-last-meet :t1 :t2
ask :t1 [if member? :t2 <l-meet> [установи_<l-meet> removeitem :t2 <l-meet>]]
ask :t2 [if member? :t1 <l-meet> [установи_<l-meet> removeitem :t1 <l-meet>]]
конец
это set-last-meet :t1 :t2
ask :t1 [установи_<l-meet> fput :t2 <l-meet>]
ask :t2 [установи_<l-meet> fput :t1 <l-meet>]
конец
это get-some :t1 :t2 :what
if equal? :what "can-meet
[
if equal? :t1 :t2 [op "нет]
dolist [i ask :t1 [<my-meet>]] [if equal? :t2 first :i [op "да]]
dolist [i ask :t2 [<my-meet>]] [if equal? :t1 first :i [op "да]]
op "нет
]
if equal? :what "last-meet
[
if equal? :t1 :t2 [op "нет]
let [
lm1 ask :t1 [<l-meet>]
lm2 ask :t2 [<l-meet>]
t1t2 member? :t2 :lm1
t2t1 member? :t1 :lm2]
op or :t1t2 :t2t1
]
if equal? :what "comm
[
if equal? :t1 :t2 [op [[][]]]
let[com1 []
com2 []
m1 ask :t1 [<my-meet>]
m2 ask :t2 [<my-meet>]
]
dolist [i :m1] [if equal? :t2 first :i [let [com1 last :i]]]
dolist [i :m2] [if equal? :t1 first :i [let [com2 last :i]]]
op list :com1 :com2
]
конец
это find-page :tur
dolist [i pagelist]
[dolist [j get :i "черепашки]
[
if equal? :tur :j [op :i]]]
конец
это my-cmt3
let[tm who
page find-page :tm]
dolist [i get :page "черепашки]
[
if get-some :tm :i "can-meet
[ ifelse touching? :tm :i
[
if not get-some :tm :i "last-meet
[ let [cod get-some :tm :i "comm]
if not empty? first :cod
[launch [ask :tm [run first :cod]]]
if not empty? last :cod
[launch [ask :i [run last :cod]]]
]
set-last-meet :tm :i
]
[ clr-last-meet :tm :i ]
]
]
конец
это get-table-color :color
if :color = 9 [op 1]
if :color = 0 [op 9]
if :color < 70 [op 2 + int (:color / 10)]
op 3 + int (:color / 10)
конец
это color-react
let [pl get-table-color colorunder]
if not empty? item :pl <c-list> [
if not :pl = <l-color> [run item :pl <c-list>]
]
установи_<l-color> :pl
конец
это светофор :n
if :n < 1 [stop]
if :n > 6 [stop]
dolist [i get first pagelist "черепашки ]
[if not empty? item :n ask :i [<traf-list>] [
launch [ask :i [run item :n <traf-list>]]]]
конец
это наугад :n
let[zn 1]
if less? :n 0 [let [zn -1]]
let [n abs :n]
let [res product :zn random sum :n 1]
op :res
конец
это перо :l-com
ifelse equal? item 3 :l-com "true [let [p_col random 255]]
[let [p_col item 2 :l-com ]]
setpensize item 1 :l-com
setc :p_col
конец
это пусто
конец
- Введение
- Глава 1. Теоретические основы темы «Алгоритмические исполнители»
- 1.1 Понятие алгоритмического исполнителя
- 1.2.1 Исполнители, работающие с величинами
- 1.2.2 Исполнители, работающие в среде
- 1.2.3 Логомиры
- 1.2.4 КуМир
- Глава2. Моделирование алгоритмических исполнителей в среде ЛогоМиры и Delphi
- 2.1.1 Проект в ПервоЛого «Смена Дня и Ночи»
- 2.1.2 Тестирование программы
- 5.2. Алгоритмические системы.
- Сущность имитационного моделирования
- 7. Моделирование, формализация. Алгоритмы и исполнители. Основы программирования.
- Моделирование и прогноз при алгоритмические методах сглаживания временных рядов.
- 24.3. Алгоритмическое моделирование стоимости
- Ветвь «моделирование и электронные таблицы»
- 3. Алгоритмические машины.
- 7. Алгоритмы. Алгоритмизация. Алгоритмические языки
- Понятие алгоритмического языка
- 2.2. Этапы моделирования.