Показать сообщение отдельно
  #1  
Старый 16.10.2011, 13:31
Аватар для JorJe
JorJe JorJe вне форума
Прохожий
 
Регистрация: 08.03.2011
Сообщения: 6
Версия Delphi: 7
Репутация: 10
По умолчанию МТ. Умножение числа на 2

Всем доброго времени суток (страна у нас большая).
Условие задачи:
На ленте МТ находится число (в 10ой сист. счисления). Умножить его на 2.
Программа должна работать как машина тьюринга, т.е. ничего умножать она не умеет, только заменять цифры в ячейках на другие.
Например, вводим число 15, программа идет справа налево (потому что умножение), видит 5, вместо него пишет 0, меняет состояние (f=2), выводит 0, идет дальше, видит 1 и, т.к. f=2, вместо 1 пишет 3, выводит. Все.
Проблема:
Программа при вводе цифры >= 5, выводит только ее правую часть, т.е. вводим 5, выводится 0. Если перед цифрой >=5 стоит цифра [1..4], то считается нормально.

В коде есть закомментированный кусок. Если его раскоммент-ть, то программа будет работать так:
Вводим 5ку, прога меняет ее на 0 (f=2) и приписывает слева 1, выводит 0, потом видит приписанную 1цу, меняет ее на 3ку и выводит. Рез-тат получается = 30.


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

Прошу подсказки, где, куда, откуда высунуть и засунуть, потому как сам догнать не в состоянии.
Заранее спс за любую помощь.
пс. исходник во вложении.
Вложения
Тип файла: zip MT.zip (7.9 Кбайт, 5 просмотров)
Ответить с цитированием