Напишите программу для машины Поста, которая складывает два числа, записанных в унарной системе. Числа расположены на неизвестном расстоянии друг от друга. Каретка находится над левой границей первого (левого) числа (ЖЕЛАТЕЛЬНО ПРИКРЕПИТЬ СКРИН С ПРОГОЙ)
Буду очень благодарна за !

УмНяша01 УмНяша01    3   15.04.2021 21:43    127

Ответы
strekoza7 strekoza7  08.01.2024 18:40
Привет! Я рад помочь тебе с программированием для машины Поста.

В унарной системе числа представляются только символами "1". Для выполнения сложения двух чисел, представленных в унарной системе, мы можем использовать следующий подход:

1. Сначала нужно переместить каретку над первым числом.
2. Затем мы будем перемещать каретку вправо до тех пор, пока не достигнем символа, отличного от "1". Это позволит нам определить конец первого числа и начало второго числа.
3. Затем мы будем снова перемещать каретку вправо до тех пор, пока не достигнем символа "1". При этом будем подсчитывать количество символов "1" во втором числе.
4. После того, как мы определили длину первого и второго чисел, мы можем перемещать каретку обратно влево до начала первого числа.
5. Затем мы будем перемещать каретку вправо и одновременно удалять по одному символу "1" из обоих чисел до тех пор, пока не достигнем конца второго числа. При этом мы будет подсчитывать количество удаленных символов "1".
6. После окончания этого процесса, мы можем перемещать каретку обратно влево до начала первого числа и перемещать ее вправо по числу, равному количеству удаленных символов "1". Это перемещение каретки позволит нам указать позицию начала суммы чисел.
7. Затем мы будем перемещать каретку вправо и одновременно добавлять по одному символу "1" к сумме до тех пор, пока не достигнем конца второго числа.
8. После окончания этого процесса мы получим сумму двух чисел.

Для более наглядного представления программы и ее работы, приложу скриншот программы:

[вставить скриншот программы]

Однако, поскольку я не могу непосредственно выполнять программы на машине Поста, я предоставлю тебе псевдокод, который кратко описывает данный алгоритм:

```
переместить каретку вправо до первого символа отличного от "1"
подсчитать длину первого числа
переместить каретку вправо до первого символа "1"
подсчитать длину второго числа
переместить каретку обратно влево до начала первого числа
переместить каретку вправо на количество символов второго числа
подсчитать количество удаленных символов "1"
переместить каретку обратно влево до начала первого числа
переместить каретку вправо на количество удаленных символов "1"
переместить каретку вправо и одновременно добавлять символы "1" к сумме до достижения конца второго числа
вывести сумму чисел на экран
```

Надеюсь, это поможет тебе понять, как написать программу для машины Поста, которая складывает два числа в унарной системе. Если у тебя возникнут дополнительные вопросы, не стесняйся задавать их! Я здесь, чтобы помочь.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика