10. Дан массив меток. Каретка располагается где-то над массивом, но не над крайними метками. Стереть все метки, кроме крайних, и поставить каретку в исходное положение.
Решение. Метку, которую мы обозреваем в начальный момент времени, мы сотрем самой последней, т.к. нам нужно будет вернуть каретку в начальное положение. Мы можем, к примеру, сначала стереть все метки массива, кроме крайней справа от исходного положения, затем стереть все метки, кроме крайней слева от исходного положения. Потом вернуться к оставленной нами в самом начале метке.
1. –> 2
2. X 3
3. –> 4
4.? 5, 2 (удаляем метки справа от исходного положения)
5. <– 6
6. V 7
7. <– 8 (возвращаемся к исходному положению)
8.? 7; 9
9. <– 10
10. X 11
11. <– 12
12.? 13; 10 (удаляем метки слева от исходного положения)
13. –> 14
14. V 15
15. –> 16
16.? 15; 17 (возвращаемся к исходному положению)
17. X 18 (удаляем метку, соответствующую исходному положению каретки)
18.!
Задание 11 Решить задачу, записать в тетрадь
11. На ленте машины Поста расположен массив из n меток (метки расположены через пробел). Нужно сжать массив так, чтобы все n меток занимали n расположенных подряд ячеек.
Решение. Идея решения состоит в последовательном придвижении каждой отдельной метки к уже сформированному массиву. Считаем, что каретка находится над левой меткой массива. Программа решения данной задачи эквивалентна программе сложения произвольного количества чисел (см. задачу 5).