Лекция: Пример З

 

Разработать программу вычисления суммы элементов массива чисел С1, С2,..., Сn. Исходными данными в этой задаче являются: n — количество суммируемых чисел и С,, С2,..., Сп— массив суммируемых чисел. Заметим, что должно выполняться условие n >1, т. к. алгоритм предусматривает, по крайней мере, одно суммирование. Кроме того, предполагается, что суммируемые числа записаны в ОЗУ подряд, т. е. в ячейки памяти с последовательными адресами. Результатом является сумма S.

Составим программу для вычисления суммы со следующими конкретными параметрами: число элементов массива— 10, элементы массива расположены в ячейках ОЗУ по адресам 040, 041, 042,..., 049. Используемые для решения задачи промежуточные переменные имеют следующий смысл: Аiадрес числа Сi, где I Î {l, 2, ...,10}; ОЗУ(Аi) — число по адресу АiS—текущая сумма; к— счетчик цикла, определяющий число повторений тела цикла.

Распределение памяти таково. Программу разместим в ячейках ОЗУ, начиная с адреса 000, примерная оценка объема программы — 20 команд; промежу­точные переменные: Аi— в ячейке ОЗУ с адресом 030, к — по адресу 031,

S— по адресу 032. ГСА программы показана на рис. 9.2, текст программы с комментариями приведен в табл. 9.7.

 

Таблица 9.7. Текст программы примера 3

 

Адрес Команда Примечание
RD # 40 Загрузка начального адреса массива 040
WR 30 в ячейку 030
RD # 10 Загрузка параметра цикла к=10 в ячейку 031
WR 31  
RD # 0 Загрузка начального значения суммы S =0
WR 32 в ячейку 032
M1: RD 32 Добавление
ADD @30 к текущей сумме
WR 32 очередного элемента массива
RD 30 Модификация текущего
ADD #1 адреса массива
WR 30 (переход к следующему адресу)
RD 31 Уменьшение счетчика
SUB #1 (параметра цикла)
WR 31 на 1
JNZ M1 Проверка параметра цикла и переход при к ¹ 0
RD 32 Вывод
OUT Результата
HLT Стоп

 

 

Рис. 9.2. Граф-схема алгоритма для примера 3

 

 

еще рефераты
Еще работы по информатике