Сложение двух чисел тривиально — достаточно поставить 1 между ними и стереть крайний правый символ у Q. Программа вычитания состоит из последовательного затирания крайних левых меток у Q и правых у P:
1. 0 - стираем левый символ у Q 2. → 3. ? 5, 4 4. Stop - стоп если затерли Q=0 5. ← 6. ? 7, 5 - цикл поиска P 7. 0 - стираем правый символ у P 8. → 9. ? 1, 8 - ищем Q
Отметим, что номер команды перехода не указывается, если переход происходит на следующую по порядку строку (для наглядности текста) . В 6-ой строке возможно зацикливание, если Q > P (вы можете добавить проверку сами)
только вам нужно сдвинуться в начало строки и учесть пустую клетку-т. е. еще один проскок каретки
Паскаль "не умеет" читать числа напрямую. В случае "текстового ввода" он читает всё вводимое, как последовательность символов, которую затем анализирует и преобразует в соответствии со списком переменных в операторе ввода и их типом. Завершается текстовый ввод в Паскале всегда нажатием клавиши Enter, посылающей последовательность символов с десятичными кодами 13 и 10 (CR - "возврат каретки" и LF- "перевод строки"), либо считыванием этих кодов из файла. "Команда" Realln (на самом деле это не команда, а процедура) считывает и удаляет последовательность символов с кодами 13, 10, а Read - оставляет эти коды не считанными. Если после Read будет еще один оператор ввода, читающий СИМВОЛЬНЫЕ данные (string, char), то оставшиеся необработанными после предыдущего Read символы с кодами 13,10 будут восприняты, как вводимые, что неверно.
Как итог: только в случае, когда есть ввод символьных данных и эти данные вводятся не в единственном операторе ввода, перед вводом таких данных нужно указывать Readln. В прочих случаях разницы нет.
Сложение двух чисел тривиально — достаточно поставить 1 между ними и стереть крайний правый символ у Q. Программа вычитания состоит из последовательного затирания крайних левых меток у Q и правых у P:
1. 0 - стираем левый символ у Q
2. →
3. ? 5, 4
4. Stop - стоп если затерли Q=0
5. ←
6. ? 7, 5 - цикл поиска P
7. 0 - стираем правый символ у P
8. →
9. ? 1, 8 - ищем Q
Отметим, что номер команды перехода не указывается, если переход происходит на следующую по порядку строку (для наглядности текста) . В 6-ой строке возможно зацикливание, если Q > P (вы можете добавить проверку сами)
только вам нужно сдвинуться в начало строки и учесть пустую клетку-т. е. еще один проскок каретки
Завершается текстовый ввод в Паскале всегда нажатием клавиши Enter, посылающей последовательность символов с десятичными кодами 13 и 10 (CR - "возврат каретки" и LF- "перевод строки"), либо считыванием этих кодов из файла.
"Команда" Realln (на самом деле это не команда, а процедура) считывает и удаляет последовательность символов с кодами 13, 10, а Read - оставляет эти коды не считанными. Если после Read будет еще один оператор ввода, читающий СИМВОЛЬНЫЕ данные (string, char), то оставшиеся необработанными после предыдущего Read символы с кодами 13,10 будут восприняты, как вводимые, что неверно.
Как итог: только в случае, когда есть ввод символьных данных и эти данные вводятся не в единственном операторе ввода, перед вводом таких данных нужно указывать Readln. В прочих случаях разницы нет.