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




Нц повторять

Действия

до условие выхода

кц

 

В языке Visual Basic циклические конструкции записываются следующим образом:

 

Цикл For …. Next

For счётчик=нач.знач. to конеч.зн. [ step шаг ]

Операторы1

[Exit For]

Операторы2

Next счётчик

По умолчанию значение шага равно 1. Оператор Exit For используется для досрочного или аварийного выхода из цикла.

 

Цикл Do…Loop

Существует четыре разновидности данной конструкции:

Цикл с предусловием «пока»

Do While условие выполнения

операторы

Loop

 

Цикл с постусловием «до»

Do

операторы

Loop Until условие выхода

 

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

Два других варианта являются их комбинацией:

Цикл с предусловием «до»

Do Until условие окончания

операторы

Loop

Цикл с постусловием «пока»

Do

операторы

Loop While условие выполнения

 

Пример. Составить алгоритм вычисления бесконечной суммы


с заданной точностью (для данной знакочередующейся бесконечной суммы требуемая точность будет достигнута, когда очередное слагаемое станет по абсолютной величине меньше ).

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

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

Решая эту задачу "в лоб" путем вычисления на каждом i -ом шаге частичной суммы

S:=S + ((-1)**(i-1)) * (x**i) / i,


мы получим очень неэффективный алгоритм, требующий выполнения большого числа операций. Гораздо лучше организовать вычисления следующим образом: если обозначить числитель какого-либо слагаемого буквой р, то у следующего слагаемого числитель будет равен —р*х (знак минус обеспечивает чередование знаков слагаемых), а само слагаемое m будет равно p/i, где i — номер слагаемого.

алг Сумма (арг вещ x, Eps, рез вещ S) дано | 0 < x < 1 надо | S = x - x**2/2 + x**3/3 -... нач цел i,вещ m, p ввод x, Eps S:= 0; i:= 1 | начальные значения m:= 1; p:= -1 нц пока abs(m) > Eps p:= -p*x | p - числитель | очередного слагаемого m:= p/i | m - очередное слагаемое S:= S + m | S - частичная сумма i:= i + 1 | i - номер | очередного слагаемого кц вывод S кон

Алгоритм, в состав которого входит итерационный цикл, называется итеpационным алгоpитмом. Итерационные алгоритмы используются при реализации итерационных численных методов.

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

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

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

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

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

Матрица А S:= 0; нц для i от 1 до 5 нц для j от 1до 3 S:=S+A[i,j] кц кц


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: