Пример 3. Реализация цикла.
В качестве следующего примера напишем программу для вычисления начального отрезка гармонического ряда:
Для хранения переменных n,y и i выделим ячейки 100, 101 и 102 соответственно. В этом алгоритме мы реализуем цикл с предусловием, поэтому при вводе n<1 тело цикла не будет выполняться ни одного раза, и наша программа будет выдавать нулевой результат. На рис. 3.3 приведена возможная программа для решения этой задачи.
Сделаем некоторые замечания к этой программе. В нашем языке у нас нет команды деления целого числа на вещественное, поэтому при вычислении величины 1.0/i нам пришлось отдельной командой
ВЕЩ 000 000 102
преобразовать значение целой переменной i в вещественной значение. Обратите также внимание, что для нашей учебной машины мы ещё не определили формат представления вещественных чисел, поэтому в ячейке с адресом 14 стоит пока просто условное обозначение константы 1.0, а не её машинное представление.
№ | Команда | Комментарий | |||
ВВЦ | Read(n) | ||||
ВЧВ | y := 0.0 | ||||
ПЕР | 013 | i := 1 | |||
ВЧЦ | i := i–n; формирование w | ||||
УСЛ | 011 | If i>n then goto 011 | |||
ВЕЩ | <000> := Real(i) | ||||
ДЕВ | 014 | <000> := 1.0/<000> | |||
СЛВ | y := y+<000> | ||||
СЛЦ | 013 | i := i+1 | |||
БЕЗ | Следующая итерация цикла | ||||
ВЫВ | Write(y) | ||||
СТОП | Стоп | ||||
Целая константа 1 | |||||
<1.0> | Вещественная константа 1.0 |
Рис 3.3. Текст программы третьего примера.
Дата добавления: 2015-10-05; просмотров: 673;