Михаил Ступаков, 7в класс. Часы.
Необходимые команды:
time ( базовая )
tttt ( вывод на текст )
sec ( подсчет и вывод граф. информации в виде стрелок )
proverka ( проверка правильности вводимых данных )
rrrr ( рисование циферблата )
el_2 , el_3 ( для стрелки )
to tttt
ct insert :second pr "_seconds insert :minute pr "_minutes insert :hour pr
"_hours pr :txt
end
to tower :a :b :c
rg pu sety -190
setc 1 kv :a
fd :a rt 90 fd (:a - :b) / 2 lt 90
setc 2 kv :bfd :b rt 90 fd (:b - :c) / 2 lt 90
setc 3 kv :c
end
to time :hour :minute :second
proverka clean pu home rrrr pd repeat 9999 [sec tttt]
end
to sec
seth :second * 6 el_2 100 1 seth :minute * 6 el_2 80 1
seth :hour * 30 el_2 60 1
wait 10
seth :second * 6 el_3 100 seth :minute * 6 el_3 80 seth :hour * 30 el_3 60
make "second :second + 1 if :second = 60 [make "second 0
make "minute :minute + 1 if :minute = 60 [make "minute 0 make "hour :hour +
1 if :hour > 12 [make "hour 0 ifelse :txt = [ AM. ] [ make "txt [ PM. ]] [
make "txt [ AM. ]]]]]
end
to el_3 :g
el_2 :g 0
end
to proverka
ifelse :hour > 12 [ make "hour :hour - 12 if :hour > 12 [ make "hour 12 ]
make "txt [ PM. ] ] [ make "txt [ AM. ] ]
if :hour < 0 [ make "hour 0 ]
if :minute > 59 [ make "minute 59 ]
if :minute < 0 [ make "minute 0 ]
if :second > 59 [ make "second 59 ]
if :second < 0 [ make "second 0 ]
end
to rrrr
setsh 31
setc 1 repeat 12 [ pu fd 105 pd repeat 10 [stamp fd 1 ] bk 10 pu bk 105 rt 6 repeat 4 [ fd
110 pd repeat 5 [ stamp fd 1 ] bk 5 pu bk 110 rt 6]]
end
to hhhh
rg pu lt 90 repeat 9999 [setsh 16 wait 5 setsh 17 wait 5 fd 10 ]
end
Задача Гусеница Идет По Кругу(с произвольным числом звеньев и углом поворота)
Михаил Ступаков, 7в 640 школа
Необходимые Программы:
el_5 (звено гусеницы)
gusen <кол-во звеньев> <угол поворота> (базовая
программа)
to el_5
быстро repeat 360 / 5 [fd .75 rt 5 ]
end
to gusen :zw :angl
rg setc 9 make "a :angl repeat :zw [ pd el_5 pu rt 90 fd 17 lt 90 - :a]
repeat 1000 [ gus2 :a lt 90 + :a fd 13 setsh 12 setc 0 pd stamp pu setc 9 fd 4 rt 90 setsh
90 ]
end
to gus2 :b
repeat ( :zw + 1 ) [ lt 90 + :b fd 17 rt 90 ] pd el_5 pu repeat ( :zw + 1 ) [ lt 90 bk
17 rt 90 + :b ]
end
to gusen2 :woln
rg setc 9 make "a :woln make "b 0 - :woln
repeat 6 [pd el_5 pu rt 90 fd 17 lt 90 - :a ]
repeat 6 [pd el_5 pu rt 90 fd 17 lt 90 - :b ]
make "aa :a make "bb 0
repeat 9999 [repeat 6 [ ] repeat :zw [ gus3 :aa ] if :bb > :zw [ make "aa 0 - :aa make "bb 0 ] rt 90 fd 17 pd el_5 pu lt 90 fd 17 rt 90 repeat :zw [ gus4 :aa ] repeat :zw [ gus4 ( 0 - :aa ) ] setsh 12 setc 0 pd stamp pu setc 9 setsh 90 make "bb :bb + 1 ]
end
to gus3 :an
purt 90 - :an
fd 17
lt 90
end
to gus4 :an
pu
rt 90
bk 17
lt 90 - :an
end