Вычислительные программы

Нахождение суммы ряда чисел в примере 4 представляет собой простую вычислительную задачу. Для большинства вычислений точность, обеспечиваемая одной ячейкой памяти, недостаточна? кроме того', необходима работа с десятичными числами и требуются более сложные операции, чем сложение и вычитание. В данном параграфе рассмотрим арифметику для чисел, занимающих несколько ячеек, десятичную арифметику и табличное задание функций. Программы имеют циклическую структуру, рассмотренную в предыдущем параграфе.

Пример 7. Арифметика для чисел, занимающих несколько ячеек памяти.

Задача состоит в том, чтобы сложить два числа длиной более 8 бит каждое. Подобными числами могут быть результаты работы высокоточных АЦП, значения тригонометрических или показательных функций, полюсы или корни уравнений, значения токов, результаты обработки или другие данные, для представления которых недостаточно слова длимой 8 бит. Пусть длина чисел (в ячейках) задана в ячейке 40, а сами числа располагаются, начиная с ячеек 41 и 51 соответственно, таким образом, что сначала идут младшие разряды. Программа помещает результат в ячейки, где хранилось первое исходное число

Типичный пример.

(40) = 03;

(41) = 29;

(42) = А4;

(43) = 50;

(51) = FB;

(52) - 37;

(53) - 28.

Задача состоит в том, чтобы сложйть 24-битные числа 50А4295 и 2837FB. Результат будет следующим:

(41) = 24 = 29 + FB

(42) = DC = А4 + 37 + ПЕРЕНОС (1)

(43) = 78 =г 50+29 + ПЕРЕНОС (0)

Возникающие разряды переноса должны участвовать в сложении.

Блок-схема программы приведена на рис. 5.30. Как и ранее, в программе имеются блоки инициализации, обработки и управления циклом. Ёдинственным новым элементом является использование признака ПЕРЕНОС для y*teta возникающего переноса в следующем проходе цикла.