Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Разработать программу вычисления суммы элементов массива чисел С1, С2,..., Сn. Исходными данными в этой задаче являются: n — количество суммируемых чисел и С,, С2,..., Сп — массив суммируемых чисел. Заметим, что должно выполняться условие n > 1, т. к. алгоритм предусматривает, по крайней мере, одно суммирование. Кроме того, предполагается, что суммируемые числа записаны в ОЗУ подряд, т. е. в ячейки памяти с последовательными адресами. Результатом является сумма S.
Составим программу для вычисления суммы со следующими конкретными параметрами: число элементов массива— 10, элементы массива расположены в ячейках ОЗУ по адресам 040, 041, 042,..., 049. Используемые для решения задачи промежуточные переменные имеют следующий смысл: Аi — адрес числа Сi, где I Î {l, 2,...,10}; ОЗУ(Аi) — число по адресу Аi S—текущая сумма; к — счетчик цикла, определяющий число повторений тела цикла.
Распределение памяти таково. Программу разместим в ячейках ОЗУ, начиная с адреса 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
Дата публикования: 2014-11-28; Прочитано: 487 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!