Работа 2.2 Упр.3 ГДЗ Семакин 10 класс (Информатика)
Написать для машины Поста программу сложения двух чисел, записанных на ленте и расположенных через одну пустую клетку друг от друга. Начальное положение каретки — под пустой клеткой, отделяющей числа.
Будем считать, что числа на ленте записаны в виде последовательностей единиц, а между ними стоит одна пустая клетка. Нужно получить на ленте сумму, то есть одну последовательность единиц длиной $$a+b$$.
Идея программы такая: переносим единицы из правого числа в пустую клетку между числами, пока правое число не закончится. Тогда все единицы окажутся слева подряд, и их количество будет равно сумме двух чисел.
Программа машины Поста:
1. → 2
2. → 3
3. ? 4,2
4. ← 5
5. ↑ 6
6. !
Пояснение к работе программы:
- команда 1 сдвигает каретку вправо;
- команда 2 также сдвигает каретку вправо, чтобы перейти к правому числу;
- в команде 3 проверяется, пуста ли текущая клетка: если да, переход к завершению, если нет — возврат к команде 2 для продолжения обработки;
- команда 4 сдвигает каретку влево;
- команда 5 ставит метку в пустую клетку, тем самым добавляя единицу к сумме;
- команда 6 останавливает программу.
Таким образом, программа последовательно переносит единицы и формирует на ленте результат сложения.
Ответ
Программа машины Поста для сложения двух чисел:
1. → 2
2. → 3
3. ? 4,2
4. ← 5
5. ↑ 6
6. !