6.3. Задачи школьников

   Задача d (10  баллов)  Придумать свою собственную задачу для
Корректора, написать ее  условие и решение. Балл за это задание
определяется оригинальностью условия и качеством решения.

Команда 314 (Ганеева Альмира Рашитовна)
Оценка: 9
Авторы решения: Лавриков Сергей

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

Авторское описание алгоритма: отсутствует.

   Комментарий куратора.
   В условии  не  сказано, какие примеры обрабатывает программа,
как они должны быть записаны на ленте, где  должно быть установ-
лено окно.
   Все эти  необходимые для условия формальности, становятся по-
нятными только после анализа текста программы.
   Выясняется, например,  что  вычисляется  не  любой  пример, а
только пример вида:
               <число><операция><число>
   Под числом понимается  целое число без знака, в качестве опе-
раций разрешается использовать знаки "+", "-", "*".
   Алгоритмы выполнения  этих  операций  также  не описаны. Есть
только комментарии в тексте программы.
   Сергей большой молодец. Его идея совершенно оригинальна: дей-
ствия над  обычными числами заменяются действиями над эквивален-
тными палочными числами.
   Правда, эти вычисления неоптимальны.  Корректор,  работая по
алгоритмам Сергея, как ветряная мельница перемалывает такое ко-
личество цифрового зерна, что от мелькания палочек на ленте на-
чинает рябить в глазах. Но мука получается первый сорт!


Команда 321 (Петров Владимир Анатольевич)
Оценка: 8
Авторы: командное решение

Авторское описание условия.
   На ленте через пустую клетку расположены три отрезка. Началь-
ные и конечные точки отрезков обозначены символом *. Определить,
можно ли построить треугольник из этих отрезков. При решении за-
дачи пользоваться определениями данными в турнире.

Авторское описание алгоритма решения.

   1. Определяем длины всех отрезков.
   2. Записываем эти значения рядом.
   3. Складываем длины двух сторон и сравниваем с третьей.
   4. Если сумма больше, то делаем перестановку  сторон и повто-
ряем п.3
   5. Если получим 3  положительных ответа на вопрос 4, то пишем
ДА.
   6. Если получим отрицательный ответ на вопрос 4, то пишем НЕТ

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

Команда 324 (Пинженина Софья Владимировна)
Оценка: 7
   Авторы задач: Пинженин Павел, Савинков Дмитрий.

Задача d1
Условие
   Отрезок ab имеет  длину менее 50. Концы отрезка заданы симво-
лами #. Построить точку c, такую, что ab=bc. Точку задать симво-
лом #. Начальное  состояние:  окошко установлено на левый конец
отрезка.

Авторское описание алгоритма
Шаг 1.  Перемещаемся вдоль ленты до правого конца отрезка.
Шаг 2.  Рекурсивно перемещаемся справа налево до левого
     края, при возвращении на каждый сделанный шаг влево
     делаем     2 шага вправо.
Шаг 3.  Пишем "#".

Задача d2
Условие
   Отрезок на ленте задан двумя непустыми символами (заранее не-
известными). Посчитать длину отрезка и записать ее на расстоянии
2 от правого конца отрезка (через символ ПУСТО ) в виде обычного
десятичного числа. Предполагается, что длина отрезка не превыша-
ет длины алфавита Корректора. В начальный момент окошко установ-
лено на левый конец отрезка.

Авторское описание алгоритма
Шаг 1.  Записываем в ящик 0.
Шаг 2.  Перемещаемся вдоль ленты до правого края, на каждый
     шаг увеличивая     содержимое ящика.
Шаг 3.  Переписываем содержимое ящика через ПУСТО правее
     правого края отрезка.
Шаг 4.  Восстанавливаем символ алфавита Корректора, задающий
     длину      отрезка,  в десятичное число.
     ... Если результат ЦИФРА,  ответ готов.
     ... Иначе
        = Заносим результат в ящик. На ленте пишем 10.
        = Вычитаем из ящика 1. Если не ЦИФРА, то добавляем 1 к
          записанному на ленте числу. ( Добавляем к единицам;
          если не ЦИФРА, то обнуляем единицы и увеличиваем на 1
          разряд десятков).
        = Предыдущий шаг повторяем, пока в ящике не останется ЦИФРА -
          ответ готов.

Комментарий куратора.
   Хорошие задачи.
   Первую можно было бы сформулировать и так.
   На ленте задан отрезок ab (a < b)  двумя непустыми ячейками,
изображающими левый  и  правый  конец отрезка. Трансформировать
исходный отрезок в новый:
   a) в два раза больше исходного;
   b) в два раза меньше исходного;
   c) какие-то еще преобразования...
   В начальный момент окошко установлено на левый конец исходно-
го отрезка.

  Задача d1 решается гораздо короче:

ЭТО Главная                         │ ЭТО Вход
Шаг_1 // Поиск правого конца отрезка│   Копия
Шаг_2 // Удвоение при раскрутке     │   Пиши #
                        // рекурсии.│ КОНЕЦ
ПИШИ #                              │
КОНЕЦ                               │ ЭТО Копия
//                                  │   ВПРАВО
ЭТО  Шаг_1                          │   ЕСЛИ ПУСТО ТО Копия
// Доходит до правого конца отрезка │   ВПРАВО #
ВПРАВО ЕСЛИ ПУСТО ТО  Шаг_1         │ КОНЕЦ
КОНЕЦ                               │
//                                  │
ЭТО Шаг_2                           │
// Рекурсия: влево до левого конца  │
// отрезка и возврат с удвоением.   │
ВЛЕВО ЕСЛИ ПУСТО ТО  Шаг_2          │
ВПРАВО ВПРАВО                       │
КОНЕЦ                               │


Команда 332 (Ким Любовь Сергеевна)
|||||||||||
Оценка: 5
Авторы решения: Ильяшенко Маша, Бухальский Андрей,
                Фомин Иван, Шикалида Леша.

Условие.
   В окошке четное число - R окружности. Нарисовать окружность и
на расстоянии 1 слева окружность с.

Авторское описание алгоритма.
   Значение R помещается  в  ЯЩИК, далее Корректор пишет пробелы
на R влево, используя отложенную команду возврат на  R вправо от
центра, проходя забираем значение  R  в ящик. Чтобы построить ок-
ружность R/2 нужно  сделать R+1 шагов ВПРАВО, вернуться на сере-
дину, сохраняя шаги ВЛЕВО в ЯЩИКе и написать в центре радиус.

   Комментарий куратора.
   Здесь в описаниях ребят  не  просто неточности, а явная неб-
режность, из-за которой условие становится совершенно  непонят-
ным. Можно, смотря на программу догадаться,  что  речь  идет  о
построении двух окружностей,  одной  - с радиусом, записанным в
клетке, на которую смотрит окно в начальный момент,  второй - с
радиусом, уменьшенным в два раза. А  что  делать,  если  радиус
первой окружности - нечетное число? В условие об этом ничего не
говорится, а программа рушится на пол с криком "Не могу!".
