Задача 9 (8 баллов)

   Кубики a, b и  с  образуют на поле равнобедренный треугольник
(сторона ca вытянута по вертикали). Исполнитель располагается на
перпендикуляре, проведенном из вершины b на сторону ac, сразу за
вершиной b.  Точка a отстоит от точки c  на два кукарачьих шага.
Ниже приводятся примеры возможных начальных установок:

До выполнения программы

  │ │ │ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │c│ │ │ │ │ │ │   │ │ │c│ │ │ │ │ │   │ │ │ │с│ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │b│¤│ │ │ │ │ │ │   │b│¤│ │ │ │ │ │ │   │b│¤│ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │a│ │ │ │ │ │ │   │ │ │a│ │ │ │ │ │   │ │ │ │a│ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼

   Задание. Напишите программу, которая разместит точки a и c на
окружности с центром  в середине исходного отрезка ac и радиусом
равным длине перпендикуляра, опущенного из вершины  треугольника
b на сторону  ac.  После выполнения программы исполнитель должен
располагаться в центре окружности:

После выполнения программы

  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │ │ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │   │ │ │ │c│ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │ │ │ │ │ │ │ │   │ │ │c│ │ │ │ │ │   │ │ │ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │c│ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │b│¤│ │ │ │ │ │ │   │b│ │¤│ │ │ │ │ │   │b│ │ │¤│ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │a│ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │ │ │ │ │ │ │ │   │ │ │a│ │ │ │ │ │   │ │ │ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │ │ │ │ │ │ │ │   │ │ │ │ │ │ │ │ │   │ │ │ │c│ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼   ┼─┼─┼─┼─┼─┼─┼─┼─┼


Решение куратора
-----------------

общая идея  алгоритма
- - - - - - - - - - -

1) Проверка особого случая.
2) Рекурсивный поиск точки "а" и установка "a" отложенной рекурсией.
3) Поиск "с", начиная от "a" и установка "с" отложенной рекурсией.
4) Поиск "a", начиная от "c" закруткой пружины на полвитка при
   каждом шаге. Установка исполнителя отложенной рекурсией.

программа
- - - - -
ЭТО вход                            │Выяснение конфигурации среды
  ВНИЗ                              │и переключение на:
  ЕСЛИ ПУСТО                        │
    ТО    вход1                     │- общий случай
    ИНАЧЕ вход0                     │- частный случай
КОНЕЦ                               │
                                    │
ЭТО вход0                           │Обработка равностороннего треугольника
  ВПРАВО ВНИЗ ВНИЗ ВЛЕВО            │со стороной 2.
  ВВЕРХ ВПРАВО ВВЕРХ ВВЕРХ ВЛЕВО    │
КОНЕЦ                               │
                                    │Общий случай.
ЭТО вход1                           │
  установкаA                        │Установка точки a.
  установкаC                        │Установка точки c.
  установка#                        │Установка исполнителя.
  ВНИЗ                              │Коррекция.
КОНЕЦ                               │
                                    │Установка точки a.
ЭТО установкаA                      │
  ВПРАВО                            │Ищем точку a и сжимаем пружину.
  ЕСЛИ НЕ ПУСТО                     │
    ТО    коррекцияА                │
    ИНАЧЕ установкаA                │Пружина помещает точку a
  ВНИЗ                              │на окружность.
КОНЕЦ                               │
                                    │
ЭТО коррекцияА                      │
  ВНИЗ ВПРАВО ВПРАВО ВВЕРХ          │
  ВЛЕВО ВВЕРХ ВЛЕВО                 │
КОНЕЦ                               │
                                    │Установка точки c.
ЭТО установкаC                      │
  ВВЕРХ                             │Ищем точку c и сжимаем пружину.
  ЕСЛИ НЕ ПУСТО                     │
    ТО    коррекцияС                │
    ИНАЧЕ установкаC                │Пружина помещает точку c
  ВВЕРХ                             │на окружность.
КОНЕЦ                               │
                                    │
ЭТО коррекцияС                      │
 ВНИЗ ВНИЗ                          │
КОНЕЦ                               │
                                    │Установка исполнителя в центр окружности.
ЭТО установка#                      │Начиная от точки c ищем точку a,
 ВНИЗ ВНИЗ                          │сжимая пружину на полвитка.
 ЕСЛИ НЕ ПУСТО                      │Когда точка c найдена, исполнитель
   ТО    коррекция#                 │под воздействием пружины помещается
   ИНАЧЕ установка#                 │в центр окружности.
 ВВЕРХ                              │
КОНЕЦ                               │
                                    │
ЭТО коррекция#                      │
  ВПРАВО ВНИЗ ВНИЗ ВЛЕВО ВВЕРХ ВВЕРХ│
  ВПРАВО ВВЕРХ ВВЕРХ ВЛЕВО          │
КОНЕЦ                               │
                                    │


                          * * *

Команда 3101
------------
Оценка: 8
.\01\01.txt

1-й вариант решения (0191.coc)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Оценка:
Автор решения Первушин Данил

Описание алгоритма и программы

Вначале (в процедуре Треугольник)отдельно рассматривается случай
"плотного" треугольника
      a
     b#
      c  ,а если сторона ас дальше, то :

1) Исполнитель двигается в сторону вершины а, сжимая "рекурсивную
   пружину (Процедура Поиск_а). Наткнувшись на кубик, исполнитель
   возвращает его на прежнее место. Тут "пружина" "разжимается" и
   поднимает вершину а на запомненное рекурсией число шагов;
2) Исполнитель движется ВНИЗ, накапливая отложенные команды ВНИЗ
   (рекурсивная процедура Поиск_с). Наткнувшись на кубик и сдвинув
   его еще на столько же шагов вниз, Кукарача занимает такое положение,
   чтобы удобно было искать вершину b, "поднимаясь по ступенькам"
   вида "ВЛЕВО ВВЕРХ";
3) Снова с помощью рекурсии (процедура Поиск_b) измеряется "расстояние",
   необходимое для передвижения исполнителя влево в центр окружности.

Примечание: программа будет работать для кубиков с любыми символами.

Программа

ЭТО Треугольник                        
 ВВЕРХ
 ЕСЛИ ПУСТО ТО
            {                          
             Поиск_a                   
             Поиск_с
             ВЛЕВО
             Поиск_b                   
            }                          
   ИНАЧЕ
      {
       ВПРАВО                          
       ПОВТОРИ 2 ВВЕРХ
       ВЛЕВО
       ВНИЗ
       ВПРАВО                          
       ПОВТОРИ 2 ВНИЗ
       ВЛЕВО                           
      }
КОНЕЦ // Треугольник                   
//-------------------------------------
ЭТО Поиск_a                            
 ВПРАВО                                
 ЕСЛИ ПУСТО ТО Поиск_a
   ИНАЧЕ
      {                                
       ВНИЗ                            
       ПОВТОРИ 2 ВПРАВО
       ВВЕРХ
       ВЛЕВО                           
       ВНИЗ                            
       ВЛЕВО
      }
 ВВЕРХ                                 
КОНЕЦ // Поиск_a
//-------------------------------------
ЭТО Поиск_с
 ВНИЗ                                  
 ЕСЛИ ПУСТО ТО Поиск_с
   ИНАЧЕ ПОВТОРИ 2 ВВЕРХ               
 ВНИЗ
КОНЕЦ // Поиск_с                       
//-------------------------------------
ЭТО Поиск_b                            
 ВЛЕВО                                 
 ВВЕРХ
 ЕСЛИ ПУСТО ТО Поиск_b
   ИНАЧЕ                               
     {                                 
      ВЛЕВО
      ПОВТОРИ 2 ВВЕРХ
      ВПРАВО
      ВНИЗ                             
      ВПРАВО
      ВНИЗ
     }                                 
 ВПРАВО
КОНЕЦ // Поиск_b

2-й вариант решения (0192.coc)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Оценка:
Автор решения Плотников Женя

Описание алгоритма и программы
                                "Треугольник"
 Исполнитель проверяет находится ли вершина "с" (по условию) над ним
 ходом вверх. Если ее там нет, то он запускает процедуру с именем

                              "Поиск_вершины_с",    
    которая проверяет, стоит ли вершина "с" в этой же строчке,
    но в другом столбце, при этом запоминает (рекурсией) растояние от
    вершины "b" (по условию стоящей сразу за ним) до найденной им
    вершины "с". Затем расталкивает вершины (бегая от одной к другой)
    столько раз, сколько запомнил рекурсией. 

 Исполнитель отходит вниз влево.             
 Запускается процедура

                           "На_середину_основания"
    Исполнитель ищет вершину "b", запоминая (рекурсией) расстояние
    от вершины "а" до найденной им вершины "b", затем ставит ее на место
    и становится перед ней. Затем идёт вправо на запомненное число шагов.

Если же "с" над ним, то он ставит ее на место и возвращается.                    

Программа будет работать для любых трех кубиков, а не только для "b,c,a".

Программа
ЭТО Треугольник
  ВВЕРХ
  ЕСЛИ ПУСТО                           
   ТО                                  
   {
    Ищи_вершину_c                      
    ВНИЗ ВЛЕВО                         
    На_середину_основания              
   }
   ИНАЧЕ                               
   {                                   
    ВПРАВО
    ПОВТОРИ 2 ВВЕРХ
    ВЛЕВО
    ВНИЗ                               
    ВПРАВО                             
    ПОВТОРИ 2 ВНИЗ                     
    ВЛЕВО                              
   }                                   
КОНЕЦ // "Треугольник"                 
//-------------------------------------
ЭТО Ищи_вершину_c                      
  ВНИЗ ВПРАВО ВВЕРХ
  ЕСЛИ ПУСТО
   ТО Ищи_вершину_c                    
  ПОКА ПУСТО ВВЕРХ                     
  ВНИЗ
  ПОКА ПУСТО ВНИЗ                      
  ВВЕРХ                                
КОНЕЦ // "Ищи_вершину_c"               
//-------------------------------------
ЭТО На_середину_основания              
  ВЛЕВО ВВЕРХ                          
  ЕСЛИ ПУСТО
   ТО На_середину_основания
   ИНАЧЕ
   {                                   
    ВПРАВО                             
    ПОВТОРИ 2 ВВЕРХ                    
    ВЛЕВО                              
    ВНИЗ                               
    ВПРАВО                             
    ВНИЗ                               
   }                                   
  ВПРАВО
КОНЕЦ // "На_середину_основания"
//-------------------------------------

комментарий  куратора
- - - - - - - - - - -

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


Команда 3102
------------
Оценка: 5
.\02\02.txt
Автор решения - Богатырев Гена

программа
- - - - -
I вариант
ЭТО ABC                                
 // Толкаем кубик
 ВНИЗ
 ЕСЛИ a ТО ФИНИШ                       
  ИНАЧЕ КРУГ                           
КОНЕЦ                                  
                                       
ЭТО ФИНИШ
 // Ставим "а" на место и              
 // возвращаемся в исходную позицию
 ВЛЕВО                                 
 ПОВТОРИ 2 ВНИЗ
 ВПРАВО ВВЕРХ ВПРАВО                   
 ПОВТОРИ 2 ВВЕРХ
 ВЛЕВО
КОНЕЦ                                  
                                       
ЭТО КРУГ
 // Поиск "а"                          
 ВВЕРХ ВПРАВО ВНИЗ                     
 ЕСЛИ НЕ a ТО КРУГ                     
  ИНАЧЕ ФИНИШ_2
 ВНИЗ                                  
КОНЕЦ

ЭТО КРУГ_2                             
 // Рекурсивный поиск буквы "а"        
 ВПРАВО                                
 ЕСЛИ НЕ a ТО КРУГ_2                   
  ИНАЧЕ ФИНИШ_3
 // Эти команды откладываются и        
 // будут выполнены столько раз,
 // сколько сработает команда ВПРАВО   
 ВНИЗ
 ПОКА ПУСТО ВНИЗ                       
 ВВЕРХ
 ПОКА ПУСТО ВВЕРХ
КОНЕЦ                                  
                                       
ЭТО ФИНИШ_2
 // Установка буквы "а" на место       
 // после ее обнаружения и толчка      
 ВПРАВО                                
 ПОВТОРИ 2 ВНИЗ
 ВЛЕВО                                 
 ВВЕРХ
 // Поиск буквы "b" и установка
 // ее на место после толчка           
 ВПРАВО                                
 ПОВТОРИ 2 ВВЕРХ                       
 ПОКА ПУСТО ВЛЕВО                      
 ВВЕРХ
 ПОВТОРИ 2 ВЛЕВО                       
 ВНИЗ ВПРАВО ВВЕРХ
 ПОВТОРИ 2 ВПРАВО                      
 // Исполнитель в строку с буквой "а"
 ПОВТОРИ 2 ВНИЗ                        
 // Поиск "а"
 КРУГ_2
КОНЕЦ                                  
                                       
ЭТО ФИНИШ_3
 ВНИЗ                                  
 ПОВТОРИ 2 ВПРАВО                      
 ВВЕРХ ВЛЕВО ВВЕРХ ВЛЕВО               
КОНЕЦ
                                       

II вариант
ЭТО ПОИСК                              
 ВНИЗ                                  
 ЕСЛИ С                                
      ТО ФИНИШ                         
      ИНАЧЕ ДАЛЬШЕ
КОНЕЦ                                  

ЭТО ДАЛЬШЕ                             
 ВВЕРХ
 ПОИСК_С                               
 ВВЕРХ
 ПОКА НЕ Б ВВЕРХ
 МЕСТО_Б                               
 ПОКА НЕ А ВЛЕВО                       
 МЕСТО_А
 ВВЕРХ                                 
 ЕСЛИ Б                                
      ТО ФИНИШ1                        
      ИНАЧЕ
           {                           
            ВНИЗ
            ПОИСК_Б
            }                          
 НА_МЕСТО                              
 ВНИЗ                                  
КОНЕЦ                                  

ЭТО МЕСТО_Б                            
 // Установка "Б" на прежнее место
 ВПРАВО ВВЕРХ ВВЕРХ ВЛЕВО ВНИЗ         
 ВПРАВО ВНИЗ ВНИЗ ВЛЕВО
КОНЕЦ                                  

ЭТО МЕСТО_А
 // Установка "А" на прежнее место     
 ВПЕРЕД ВЛЕВО ВЛЕВО НАЗАД              
 ВПРАВО ВПЕРЕД ВПРАВО ВПРАВО НАЗАД
КОНЕЦ                                  
                                       
ЭТО НА_МЕСТО                           
 // Установка исполнителя в
 // центр окружности                   
 // Поиск буквы
 ВНИЗ
 ЕСЛИ НЕ ПУСТО  ТО                     
 // Корректировка сдвинутой буквы      
                   {                   
                    ВПРАВО ВНИЗ ВНИЗ   
                    ВЛЕВО ВВЕРХ
                    ВПРАВО ВВЕРХ ВВЕРХ 
                    ВЛЕВО
                    }                  
 ИНАЧЕ
       {                               
        ВНИЗ
        НА_МЕСТО
        }                              
 // Отложенная команда будет выполнена 
 // столько раз, сколько команды
 // ВНИЗ ВНИЗ                          
 ВВЕРХ                                 
КОНЕЦ                                  

ЭТО ПОИСК_С                            
 // Поиск буквы "С"
 ВПРАВО ВНИЗ
 ЕСЛИ С ТО                             
 // Установка "С" на место             
 // исполнитель над "С"                
           {                           
            ВЛЕВО ВНИЗ
            ВНИЗ ВПРАВО ВВЕРХ          
            ВПРАВО ВВЕРХ ВВЕРХ ВЛЕВО
            }                          
 ИНАЧЕ
      {                                
       ВВЕРХ
       ПОИСК_С
       }                               
 // Отложенная команда. Она сработает  
 // столько раз, сколько команды
 // ВПРАВО и ВНИЗ                      
 ВНИЗ                                  
КОНЕЦ                                  

ЭТО ПОИСК_Б                            
 // Поиск буквы "Б"
 ВПРАВО ВВЕРХ
 ЕСЛИ Б ТО                             
 // Установка "Б" на место             
 // исполнитель над "Б"                
           {                           
            ВЛЕВО ВВЕРХ
            ВВЕРХ ВПРАВО ВНИЗ          
            ВПРАВО ВНИЗ ВНИЗ ВЛЕВО
            }                          
 ИНАЧЕ                                 
      {                                
       ВНИЗ
       ПОИСК_Б
       }                               
 // Отложенная команда. Она сработает  
 // столько раз, сколько команды
 // ВПРАВО и ВНИЗ                      
 ВВЕРХ                                 
КОНЕЦ                                  

ЭТО ФИНИШ                              
 // Процедура установки буквы "С" и
 // исполнителя в исходные позиции
 ВПРАВО ВНИЗ ВНИЗ ВЛЕВО ВВЕРХ          
 ВПРАВО ВВЕРХ ВВЕРХ  ВЛЕВО             
КОНЕЦ                                  
                                       
ЭТО ФИНИШ1
 // Процедура установки буквы "Б" и    
 // исполнителя в исходные позиции
 ВПРАВО ВВЕРХ ВВЕРХ ВЛЕВО ВНИЗ         
 ВПРАВО ВНИЗ ВНИЗ   ВЛЕВО              
КОНЕЦ                                  


комментарий  куратора
- - - - - - - - - - -

Нет описание алгоритма. Для геометрических задач оно особенно
желательно.

В первом варианте программы не работает случай:

  │ │ │ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │c│ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │b│¤│ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼
  │ │a│ │ │ │ │ │ │
  ┼─┼─┼─┼─┼─┼─┼─┼─┼

Оба решения не оптимальные, особенно второе.

Команда 3104
------------
Оценка: 0
.\04\04.txt

Команда 3105
------------
Оценка: 8
.\05\05.txt

описание  алгоритма
- - - - - - - - - -
Поднимаемся на одну клетку вверх и ищем первый символ в этой строке 
(например с), при этом запоминаем сколько шагов сделали (закручиваем 
пружину). Сдвигаем второй символ (а)на запомненное число шагов вниз 
(раскручиваем пружину)и при этом запоминаем на сколько шагов спустились 
(закручиваем пружину). Поднимаем Кукарачу вверх на число шагов в два 
раза превышающих число запомненных, при этом ставим букву с в нужное 
положение. Спускаемся влево по лесенке и ищем букву b, при этом 
запоминаем число ступенек (закручиваем пружину). Движемся вправо на 
запомненное число шагов (раскручивается пружина) для того, чтобы 
поставить Кукарачу в центр окружности. Вероятно, мы шли из Благовещенска 
во Владивосток через Москву, но более короткий путь мы не нашли.  

ПРОГРАММА:

ЭТО ОКРУЖНОСТЬ                                  
ВВЕРХ                                  
ЕСЛИ НЕ ПУСТО ТО
                {                                      
                ВПРАВО
                ПОВТОРИ 2 ВВЕРХ                        
                ВЛЕВО
                ВНИЗ
                ВПРАВО                                 
                ПОВТОРИ 2 ВНИЗ                         
                ВЛЕВО                                  
                }                                      
         ИНАЧЕ                                  
             {                                
             ИЩИ                                   
             ИЩИ_С                                  
             ВПРАВО                                 
             ПОВТОРИ 2 ВВЕРХ                        
             ВЛЕВО                                  
             ПОВТОРИ 2 ВНИЗ                         
             ВЛЕВО                                  
             ПОВТОРИ 2 ВНИЗ                         
             ВПРАВО                                 
             ИЩИ_В
             ВЛЕВО
             }                              
КОНЕЦ

ЭТО ИЩИ_В
ВЛЕВО
ЕСЛИ ПУСТО ТО                          
             {                                
             ВНИЗ                                  
             ИЩИ_В                                 
             }                               
     ИНАЧЕ                                  
          {                                      
          ВНИЗ                                   
          ПОВТОРИ 2 ВЛЕВО                        
          ВВЕРХ                                  
          ВПРАВО                                 
          ВНИЗ                                   
          ПОВТОРИ 2 ВПРАВО                       
          ВВЕРХ                                  
          }
ВПРАВО
КОНЕЦ

ЭТО КРУГ
ВВЕРХ                                  
ЕСЛИ НЕ ПУСТО ТО
         {
          ВПРАВО                       
          ВВЕРХ                        
          ВВЕРХ                        
          ВЛЕВО                        
          ВНИЗ                         
          ВПРАВО                       
          ВНИЗ                         
          ВНИЗ                         
          ВЛЕВО                        
         }                             
        ИНАЧЕ ИЩИ                      
КОНЕЦ                                  
                                       
ЭТО ИЩИ_С                              
ВВЕРХ
ЕСЛИ ПУСТО ТО
            {
 ИЩИ_С                                 
             }
ВВЕРХ                                  
КОНЕЦ

ЭТО ИЩИ                                
  ВПРАВО                               
  ЕСЛИ ПУСТО ТО ИЩИ                    
       ИНАЧЕ                           
            {                          
ВНИЗ                                   
ПОВТОРИ 2 ВПРАВО                       
ВВЕРХ                                  
ВЛЕВО                                  
ВНИЗ                                   
ВЛЕВО                                  
     }                                 
ВНИЗ                                   
КОНЕЦ

комментарий  куратора
- - - - - - - - - - -
1) В программе нет структурных отступов.
2) Очень хорошее, оптимальное решение.

Команда 3106
------------
Оценка: 7
.\06\06.txt

описание  алгоритма
- - - - - - - - - -

Считаем количество шагов до С и ставим С на место.

Считаем количество шагов до А и ставим А на место.

Считаем количество шагов от А до С и ставим Кукарачу на середину.

программа
- - - - -
ЭТО Точки_на_окружности
 Поставить_c
 Поставить_a                           
 Поставить_Кукарачу                    
КОНЕЦ                                  
                                       
ЭТО Поставить_c
 ВВЕРХ
 ЕСЛИ НЕ ПУСТО                         
  ТО    C_на_место                     
  ИНАЧЕ
       {                               
        ВНИЗ
        ВПРАВО                         
        Поставить_c                    
        ВВЕРХ                          
       }                               
КОНЕЦ                                  
                                       
ЭТО C_на_место                         
 ВПРАВО
 ПОВТОРИ 2 ВВЕРХ                       
 ВЛЕВО
 ВНИЗ
 ВПРАВО                                
 ПОВТОРИ 2 ВНИЗ                        
 ВЛЕВО                                 
КОНЕЦ                                  

ЭТО Поставить_a
 ВНИЗ                                  
 ЕСЛИ НЕ ПУСТО                         
  ТО  A_на_место
  ИНАЧЕ { Поставить_a ВНИЗ }           
КОНЕЦ
                                       
ЭТО A_на_место                         
 ВПРАВО                                
 ПОВТОРИ 2 ВНИЗ                        
 ВЛЕВО                                 
 ВВЕРХ                                 
 ВПРАВО                                
 ПОВТОРИ 2 ВВЕРХ
 ВЛЕВО                                 
КОНЕЦ

ЭТО Поставить_Кукарачу                 
 ПОВТОРИ 2 ВВЕРХ                       
 ЕСЛИ НЕ ПУСТО                         
  ТО  C_на_место_2                     
  ИНАЧЕ { Поставить_Кукарачу ВНИЗ }
КОНЕЦ
                                       
ЭТО C_на_место_2                       
 ВПРАВО
 ПОВТОРИ 2 ВВЕРХ                       
 ВЛЕВО
 ПОВТОРИ 2 ВНИЗ                        
 ВПРАВО                                
 ПОВТОРИ 2 ВНИЗ                        
 ВЛЕВО                                 
КОНЕЦ                                  

комментарий  куратора
- - - - - - - - - - -
Правильное решение, которое можно сделать более оптимальным.

Команда 3107
------------
Оценка: 3
.\07\07.txt
Автор решения: Кондратюк Елена

ЭТО треугольник
ВВЕРХ
ЕСЛИ НЕ ПУСТО ТО а ИНАЧЕ о
КОНЕЦ

ЭТО а
ВНИЗ
ВПРАВО
ПОВТОРИ 3 ВВЕРХ
ВЛЕВО
ВНИЗ
ВПРАВО
ПОВТОРИ 2 ВНИЗ
ВЛЕВО
КОНЕЦ

ЭТО о
ВНИЗ
ВПРАВО
ВВЕРХ
ЕСЛИ НЕ ПУСТО ТО к ИНАЧЕ л
КОНЕЦ

ЭТО к
ПОВТОРИ 2 ВНИЗ
ВВЕРХ
КОНЕЦ

ЭТО л
ВНИЗ
ВПРАВО
ПОВТОРИ 2 ВВЕРХ
ПОВТОРИ 4 ВНИЗ
КОНЕЦ

комментарий  куратора
- - - - - - - - - - -

1) В программе нет структурных отступов.

2) Названия процедур не содержательные.

3) Программа работает только для нескольких частных случаев.

Команда 3108
------------
Оценка: 0
.\08\08.txt

Команда 3109
------------
Оценка: 0
.\09\09.txt

Команда 3110
------------
Оценка: 7.5
.\10\10.txt
Автор: Орешин Олег, 8 кл

описание  алгоритма
- - - - - - - - - -
Поиск буквы С и завод пружины
Все процедуры МЕСТО устанавливают букву на место
Встать_на_место подготовиться к запуску пружины.
Всего 3 пружины
1-ая ставит С на окружность
2-ая ставит В на окружность
3-ья ставит Таракана в центр окружности.

программа
- - - - -
ЭТО ПР
ВВЕРХ                                  
ЕСЛИ С ТО МЕСТО                        
ИНАЧЕ ЗАД                              
КОНЕЦ                                  
 ЭТО ЗАД                               
ЕСЛИ НЕ ПУСТО ТО МЕСТО                 
ИНАЧЕ  ДАЛ                             
ВНИЗ
ЗАВ_РАБ
ВЛЕВО                                  
ВСТАТЬ_МЕСТО                           
КОНЕЦ                                  
ЭТО ДАЛ                                
 ШАГ                                   
ЕСЛИ С ТО МЕСТО
ИНАЧЕ ДАЛ
ВВЕРХ                                  
КОНЕЦ                                  
ЭТО ШАГ                                
ВНИЗ                                   
ВПРАВО                                 
ВВЕРХ                                  
КОНЕЦ                                  
ЭТО МЕСТО                              
 ВПРАВО                                
ПОВТОРИ 2 ВВЕРХ                        
ВЛЕВО                                  
ВНИЗ                                   
ВПРАВО                                 
 ВНИЗ
 ВНИЗ
ВЛЕВО                                  
КОНЕЦ                                  
ЭТО ЗАВ_РАБ                            
ВНИЗ
ЕСЛИ НЕ В ТО ЗАВ_РАБ                   
ИНАЧЕ МЕСТО2
ВНИЗ
КОНЕЦ                                  
ЭТО МЕСТО2                             
 ВПРАВО                                
ПОВТОРИ 2 ВНИЗ                         
ВЛЕВО                                  
ВВЕРХ                                  
ВЛЕВО                                  
 ВВЕРХ                                 
 ВВЕРХ
ВПРАВО                                 
КОНЕЦ                                  
 ЭТО ВСТАТЬ_МЕСТО                      
СТУПЕНЬ                                
ЕСЛИ НЕ А ТО ВСТАТЬ_МЕСТО
ИНАЧЕ МЕСТО3
ВПРАВО                                 
КОНЕЦ                                  
ЭТО МЕСТО3                             
 ВПРАВО
ПОВТОРИ 2 ВВЕРХ                        
ВЛЕВО
ВНИЗ
ВПРАВО                                 
 ВНИЗ                                  
КОНЕЦ                                  
ЭТО СТУПЕНЬ                            
ВЛЕВО                                  
ВВЕРХ                                  
КОНЕЦ                                  

комментарий  куратора
- - - - - - - - - - -

1) В программе нет структурных отступов.
2) Программа работает правильно.

Команда 3111
------------
Оценка: 8
.\11\11.txt
Автор: Килеев Слава

описание  алгоритма
- - - - - - - - - -
1.Исполнитель ищет вершину 2.

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

3. Если вершина 2 не находится с  первого шага, то продолжается ее
поиск и откладывается команда "вверх"

4.Ставит вершину 2 на нужное место отложенной командой "вверх".

5.Ищет вершину 3, откладывает команду "вверх".

6.Ищет вершину 1, чтобы опять найти вершину 3 и отложить команду
"вниз"

7.Становится над вершиной 3, при помощи алгоритма " Обход " и ставит
на место вершину 3 отложенной командой "вниз".

8.Становится в центр при помощи отложенной команды "вверх".

программа
- - - - -
ЭТО Треугольник
 ВВЕРХ
 ЕСЛИ ПУСТО ТО Часть // Устанавливает
           //на нужное место вершину 2.
 ИНАЧЕ На_место2     // Ставит на место
                     //      вершину 2.
КОНЕЦ // Треугольник
//-------------------------------------
// Ставит на место вершину 2.

ЭТО На_место2                          
 ВПРАВО
 ПОВТОРИ 2 ВВЕРХ                       
 ВЛЕВО                                 
 ВНИЗ                                  
 ВПРАВО                                
 ПОВТОРИ 2 ВНИЗ
 ВЛЕВО                                 
КОНЕЦ // На_место2
//-------------------------------------
// Устанавливает на нужное место
// вершину 2 .

ЭТО Часть                              
 Найти_вершину2 // Находит и ставит    
           //вершину 2 на нужное место.
 ВНИЗ               // Коррекция       
 Найти_вершину3     // Находит и ставит
          // вершину 3 на нужное место.
КОНЕЦ // Часть                         
//-------------------------------------
// Находит и ставит вершину 2 на нужное
// место.                              

ЭТО Найти_вершину2                     
 Шаг                                   
 ЕСЛИ ПУСТО                            
    ТО Найти_вершину2                  
    ИНАЧЕ ВНИЗ // Коректирует
               //   положение Кукарачи.
 ВВЕРХ         // Ставит вершину 2 на
               // место                
КОНЕЦ // Найти_вершину2
//-------------------------------------
// описание                            
ЭТО Шаг                                
 ВНИЗ                                  
 ВПРАВО                                
 ВВЕРХ                                 
КОНЕЦ // Шаг                           
//-------------------------------------
// Находит и ставит вершину 3 на       
// нужное место.

ЭТО Найти_вершину3                     
 ВНИЗ
 ЕСЛИ ПУСТО                            
    ТО  Найти_вершину3                 
    ИНАЧЕ  Вернуться //К вершине 1     
 ВВЕРХ           // Ставит исполнителя 
                 // в центр.
КОНЕЦ // Найти_вершину3                
//-------------------------------------
// Возвращается к вершине 1 и          
// подготавливается к поиску вершины 3.

ЭТО Вернуться                          
 ВЛЕВО                                 
 ВВЕРХ                                 
 ЕСЛИ ПУСТО                            
  ТО   { ВНИЗ Вернуться }              
  ИНАЧЕ На_место1 // Становит на место 
                  // вершину 1.
КОНЕЦ // Вернуться                     
//-------------------------------------
// Становит на место вершину 1.        

ЭТО На_место1
 ВПРАВО                                
 ПОВТОРИ 2 ВВЕРХ                       
 ВЛЕВО                                 
 ВНИЗ                                  
 ВПРАВО
 ПОВТОРИ 2 ВНИЗ                        
 ВЛЕВО
 ВНИЗ           // Подготавливается к  
 ВНИЗ           //поиску вершины 3.
 Продолжение // Ищет вершину 3.
КОНЕЦ // На_место1
//-------------------------------------
// Ищет вершину 3, становится в центр  

ЭТО Продолжение                        
 ВПРАВО                                
 ВВЕРХ
 ЕСЛИ ПУСТО                            
  ТО   { ВНИЗ Продолжение }
  ИНАЧЕ Обход // Обходит вершину 3.    
 ВНИЗ         // Отложенная команда.   
           //ставит вершину 3 на место.
КОНЕЦ // Продолжение
//-------------------------------------
// Возвращает вершину 3 на место.      

ЭТО Обход
 ВПРАВО                                
 ПОВТОРИ 2 ВВЕРХ
 ВЛЕВО                                 
 ВНИЗ
 ПОВТОРИ 2 ВВЕРХ     //Коррекция
КОНЕЦ // Обход

комментарий  куратора
- - - - - - - - - - -

Программа работает правильно.


Команда 3112
------------
Оценка: 7
.\12\12.txt

Авторы Кузьмина Наташа, Бакулина Ани

программа
- - - - -
ЭТО треугольник
  ВНИЗ
  ЕСЛИ a ТО радиус_1
  ИНАЧЕ проба_2
КОНЕЦ // треугольник
//-------------------------------------
// описание
ЭТО радиус_1
   ВПРАВО ВНИЗ ВНИЗ
   ВЛЕВО ВВЕРХ ВПРАВО
   ВВЕРХ ВВЕРХ ВЛЕВО
   СТОЯТЬ
КОНЕЦ // радиус_1
//-------------------------------------
// описание
ЭТО проба_2
  ВВЕРХ ВПРАВО ВВЕРХ ВНИЗ ВНИЗ
  ЕСЛИ a ТО радиус_2
  ИНАЧЕ проба_3
КОНЕЦ // проба_2
//-------------------------------------
// описание
ЭТО радиус_2
  ВВЕРХ СТОЯТЬ
КОНЕЦ // радиус_2
//-------------------------------------
// описание
ЭТО проба_3
  ВВЕРХ
  ВПРАВО ВВЕРХ ВВЕРХ
  ПОВТОРИ 4 ВНИЗ
  ВВЕРХ ВВЕРХ
КОНЕЦ // Имя


комментарий  куратора
- - - - - - - - - - -

Нет описания алгоритма.

Программа работает правильно.


Команда 3114
------------
Оценка: 0
.\14\14.txt
