Вложенные циклы. Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов

Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (то есть количество вложенных друг в друга циклов) может быть различной.

При использовании такой структуры для экономии машинного времени необходимо выносить из внутреннего цикла во внешний все операторы, которые не зависят от параметра внутреннего цикла.

Пример вложенных циклов

Вычислить сумму элементов заданной матрицы А(5,3).

Циклы "накопления" конечной суммы (или произведения)

Часто в ММ встречаются макрооперации многоместного суммирова­ния или многоместного произведения однотипных слагаемых (множителей), сконструированных на элементах заданного числового массива:

где ∑ - операция многоместной суммы;

П - операция многоместного произведения; i -счетчик операндов (слагаемых или множителей), меняется всякий раз на 1;

i = 1 - номер первого операнда; п - его последний номер. Так можно изобразить сумму (или произведение) однотипных опе­рандов, построенных по какому-либо правилу на элементах заданного чи­слового массива конечной длины.

В алгоритмах знаки микроопераций ∑ и П. не употребляются (не считаются элементарными). В развернутом виде формулу записывать крайне не желательно из-за громоздкости, а заменять часть операндов по формуле многоточием в алгоритме недопустимо. Поэтому для алгоритмизации вы­числений подобного типа существует прием циклического "накопления" результата последовательным добавлением к предыдущей частичной сум­ме нового слагаемого или последовательным домножением предыдущего частичного произведения на новый множитель.

Циклов получается ровно столько, сколько операндов, а операндов ровно столько, сколько элементов в заданном массиве. Таким образом, цикл должен быть организован по счетчику циклов. Для выполнения операции накопления вводится дополнительная переменная "накопления", которая предварительно (перед телом цикла) обнуляется при накоплении суммы или получает значение 1 при накоплении произведения. В основе тела цикла лежит операции "накопления". Пусть S - переменная накопления, тогда операция "накопления":

для суммы для произведения

S=S+<i-e слогаемое> S=S*<i-й множитель>


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: