Общее впечатление куратора:

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

Спасибо Виктору Петровичу за нестандартные, "некукарачинские" 
подходы, которые мы наверняка будем вспоминать, работая во
2-м семестре с Корректором. 

Задача о среднем арифметическом - редкая для Кукарачи возможность
проявить вычислительные способности.


Задача 1
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Толкни ряд кубиков вправо
     2. Пока не толкнул пустоту перемещайся на строку выше и снова
     толкай ряд.
Если условие цикла истенно, то Кукарача переходит на строку вверх
и шагом вправо что-то толкает.  Толкнув последний кубик  (вершину
елки) он снова поднимается на строку вверх и толкает пустоту  над
вершиной.  Условие цикла становится ложным. Цикл и процедура  за-
канчивают работу.
Имя файла: 0511.COC

ЭТО Вход                           │ Начало главной процедуры
  ВПРАВО                           │ Толкни ряд кубиков вправо
  ПОКА НЕ ПУСТО { ВВЕРХ ВПРАВО }   │ Повторяй действия пока не пус
КОНЕЦ // Вход                      │ то


О ц е н к а  к у р а т о р а - 3.0
К о м м е н т а р и й:
Условие допускает любые кубики.
Описание алгоритма полное.
Оформление -  без замечаний


Задача 2
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Сделай шаг вправо толкнув первый кубик сверху (если он есть)
     2. Пока не пусто проверяй что толкнул
     3. Если толкнул точку то сделай шаг и толкни справа
        Если там не пусто то переставь местами точку и символ
     4. Вернись в 2.
Идея решения состоит в том, что точка, как самый  тяжелый  символ
опускается на дно записи ( в ее конец ), меняясь местами с симво-
лом.  Прщграмма заканчивает работу. когда в процедуре Проверь_что
или сразу на первом шаге исполнитель толкнул пустоту, и цикл ПОКА
завершает работу.
Имя файла: 0521.COC


О ц е н к а  к у р а т о р а - 3.5
К о м м е н т а р и й:

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


Задача 3
Авторы решения: Воронова Т. Н. Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Толкни кубик
     2. Если толкнул 0 то его вверх и сомкни 1
        Если толкнул 1 то дальше
        Если толкнул пустоту то конец записи
     3. Сомкни 0 и поставь их в перед единицами
Имя файла: 0531.COC

О ц е н к а  к у р а т о р а - 5.0
К о м м е н т а р и й:

Решение верное, основанное на строгой и понятной идее.
Его достоинство- безрекурсивность, которое оборачивается
большим недостатком- количество манипуляций исполнителя очень велико.
Попробуйте запустить программу для 1 или 2 кубиков!

Всё-таки напрашивается использовать рекурсию "по назначению" 
- для запоминания количества нулей или единиц.

Описание и оформление -  без замечаний.


Задача 4
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Встань под первый кубик ряда.
     2. Рекурсивно ищи метку, запоминай длину  начала  отложенной
     командой ВЛЕВО
     3. Как только найдена метка ищи остаток ряда
        Поднимай его на строку выше начала
        Встань в конец остатка
     4. Отложенной командой тотолкай остаток на место
Имя файла: 0541.COC

О ц е н к а  к у р а т о р а - 4.0
К о м м е н т а р и й:

Решение такое , как задумано автором: 
до метки - рекурсивный поиск, после метки - ПОКА,
"задвигание" - отложенной командой.

Описание и оформление -  очень полное и понятное.



Задача 5
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Отпили остаток бревна если он есть
     2. Ищи конец бревна
     3. Сдвинь остаток бревна на поленицу
        Встань под остатком справа от поленицы
     4. Выполняй действие 1.
В данной версии решения задачи не учитывается четность последнего
остатка бревна.  Поэтому оставшийся последний кубик становится  в
левый ряд поленицы.  Во второй версии решения задачи это учтено и
последний кубик становится в правый ряд поленицы.  На мой  взгляд
это не принципиально в каком ряду лежит последнее полено.


О ц е н к а  к у р а т о р а - 5.5
К о м м е н т а р и й:

Оба решения верные. Два замечания:

1) В главной процедуре естественней было бы применить
ПОКА вместо рекурсии, т.к. отложенных команд нет и сама идея
нерекурссивна: "пили, пока не кончится".
2) При рекурсивном возврате к поленнице можно избежать "поправки", 
если отложенную команду ВЛЕВО поместить в ветвь ИНАЧЕ.

Описание и оформление -  очень полное и понятное.


Задача 6
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Найди начало правой 1/3
     2. Отпили ее и поставь над средней 1/3
     3. Отпил левую 1/3
     4. Поставь левую 1/3 под среднюю
В решении задачи используется традиционная рекурсия.  Соль заклю-
чается в том, как найти 1/3 бревна. За это отвечает процедура
Найди_1/3_справа в которой отложенная  команда  ВЛЕВО  запоминает
длину 1/3 бревна т.к. на кажддые 3 команды Шаг  откладываем  одну
команду ВЛЕВО.  Ошибки не будет так как по условию количество ку-
биков кратно 3.

Имя файла: 0561.COC

О ц е н к а  к у р а т о р а - 8.0 + бонус 2.0
К о м м е н т а р и й:
Замечательно! Оптимальнее придумать трудно.
Полная гармония между рекурсией, циклом ПОКА, средой
и возможностями исполнителя !
Одно из красивейших решений сезона (если не самое красивое!)

Описание и оформление -  очень полное и понятное.



Задача 7
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Перевези козу вправо и переправься влево
     2. Перевези объект1 вправо и
     3. Перевези козу влево
     4. Перевези объект2 вправо и переправься влево
     5. Перевези козу вправо
Решение задачи пытались построить по алгоритму  перевозки.  Но  к
сожалению задача не доработана.

Имя файла: 0571.COC

О ц е н к а  к у р а т о р а - 2.0 
К о м м е н т а р и й:

Алгоритм ошибочный. Опровергающие тесты:

К     К
В ->  В
к    к

Капуста не переправлена

к
В ->  "Не могу!"
К

После решения Алексея Фролова (3103, Салават) все иные решения,
в том числе и моё собственное, вызывают только досаду. Они не
приводят ни к чему, кроме ошибок! В задаче требуется рассмотреть 
всего 3 варианта расположения козы.
 

Задача 8
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
     1. Встань слева от правого символа
     2. Толкай левый символ вправо, но сначала заглядывай что за ним
        Если за ним пусто то рекурсивно толкай и запоминай длину пути
        Иначе поставь левый символ на место а исполнителя справа от
        правого символа
        Отложенной командой ВЛЕВО толкай правый символ в нужный столбец
     3. Поставь на место правый символ

Имя файла: 0581.COC

О ц е н к а  к у р а т о р а - 5.5 
К о м м е н т а р и й:

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

Оформление и описание оптимальные.

Задача 9
Авторы решения: Семенко В. П. и группа учеников.
Алгоритм решения:
Задача схожа с задачей 8. Но символы необходимо поменять 2 раза. В
отличеи от 8 задачи про символы по горизонтали сказано, что они не в
соседних клетках, а вот по вертикали это не оговорено, что проверяется
в решении
Названия процедур отражают алгоритм решения.

Имя файла: 0591.COC


ЭТО Вход
  ВПРАВО ВВЕРХ
  Найди_В
  В_на_место
  Поменяй_В_и_С
  С_на_место
  Поменяй_А_и_С
  А_на_место
КОНЕЦ // Вход
КОНЕЦ // А_на_место


О ц е н к а  к у р а т о р а - 8.5 
К о м м е н т а р и й:
Решение верное. Оценка снижена за непродуктивное передвижение
от А к В в самом начале (была возможность "запомнить" расстояние)
и "забегание" за кубик с целью "проверить на пустоту".
Оформление и описание как всегда прекрасные.



Задача a
Авторы решения: Семенко В. П. и группа учеников.

Алгоритм решения:
Фактически обмена нет, а Кукарача становится на такое же расстояние
справа от символа после выполнения процедуры Вправо и выполняется
команда ВЛЕВО корректирующая позицию исполнителя из-за лишнего
хода ВПРАВО в обходе символа. К сожалению другово решения не вижу
Пусть кукарача и поставит символ на свое место, но создать рекур-
сивную процедуру возврощаюю его назад невозможно, так как  толкая
символ впереди себя должно  должно  нарушиться  условие  ЕСЛИ  НЕ
ПУСТО а оно всегда истенно.

Имя файла: 05a1.COC

О ц е н к а  к у р а т о р а - 3.0 
К о м м е н т а р и й:

...как оказалось, не всегда! Спасибо за шутку - иллюзион и, как
всегда, замечательное оформление!


Задача b
Авторы решения: Семенко В. П. и группа учеников.

Алгоритм решения:
Проверяем первый символ записи.  Если это 0 и за ним еще 0 то они
не нарушают запись. Если это 1 то проверяем следующий символ, ес-
ли это 0, то проверяем остаток записи как новую запись и количес-
тов 1 как-бы обнуляется, если 1 то имеем две 1 подряд и проверка
следующего символа будет состоять из двух условий: ЕСЛИ ПУСТО
ТО запись закончилась и она верна ИНАЧЕ ЕСЛИ НЕ 0 ТО это может быть
или символ нарушающий запись или трутья единица  подряд  в  любом
случае запись не верна.  Проверка на конец строки должна произво-
диься и в первых двух проверках символов.
Если нашелся лишний символ или третья единица подряд то проверяем
остаток записи рекурсивно запоминая его длину, а затем отложенной
командой влево ставим Кукарачу под первый неверный символ.

Имя файла: 05b1.COC

О ц е н к а  к у р а т о р а - 8.0 
К о м м е н т а р и й:

Только одна шероховатость:

Строка

ПОКА 0 Шаг 

выглядит чуждо общему рекурсивному сплетению.
Было бы естественней 

ЕСЛИ         0 ТО Вход
ИНАЧЕ ЕСЛИ ...

В подобных процедурах вместо ветвления понятнее и надёжнее
записывать переключатели (аналог switch или case в языках ВУ).

Получится решение, почти совпадающее с вашим. Но выглядит более
наглядно и надёжно:

ЭТО Вход                               
  Шаг                                  
  ЕСЛИ       0     ТО Вход             
  ИНАЧЕ ЕСЛИ 1     ТО Одна_единица     
  ИНАЧЕ ЕСЛИ ПУСТО ТО Запись_верна     
  ИНАЧЕ               Ошибка           
КОНЕЦ                                  
                                       
ЭТО Одна_единица                       
  Шаг                                  
  ЕСЛИ 0           ТО Вход             
  ИНАЧЕ ЕСЛИ 1     ТО Две_единицы      
  ИНАЧЕ ЕСЛИ ПУСТО ТО Запись_верна     
  ИНАЧЕ            Ошибка              
КОНЕЦ                                  
                                       
ЭТО Две_единицы                        
 Шаг                                   
 ЕСЛИ 0           ТО Вход              
 ИНАЧЕ ЕСЛИ ПУСТО ТО Запись_верна      
 ИНАЧЕ               Ошибка            
КОНЕЦ                                  


Задача с
Авторы задачи: Семенко В. П.
Формулировка задачи:
 Начиная со второго столбца в одной строке стоит плотный ряд кубиков на
котороых написаны первые n подряд идущих натуральных чисел 1 2  3.. n
Для чисел больших 9 используем правило систем исчисления 10=A,11=B, ...
15=F и т.д. Справа вплотную к ряду стоят точка и число 5.
           Например: 123456789ABCDEF.5
Кукараче требуется посчитать и записать из чисел стоящих слева и
справа от точки среднее арифметическое первых n натуральных чисел
записаных на кубиках в виде десятичной дроби например 9.5 или 4.

О ц е н к а  к у р а т о р а - 8.0 
К о м м е н т а р и й:
Задача новая и замечательная!

Оценка сложилась из:
1) Точность формулировки          2
2) Качество и оформление решения  3 балла (есть неоптимальность)
3) Новизна и красота идеи         5 баллов

Описания и оформление, как всегда, на высоте. 
Представляется, что завершающие действия исполнителя 
можно оптимизировать. 

