Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный-практикум1.doc
Скачиваний:
191
Добавлен:
09.04.2015
Размер:
1.4 Mб
Скачать

Вычисление суммы бесконечного ряда (циклы с неизвестным числом повторений)

Для выполнения данной лабораторной работы используют оператор цикла do loop {while |until|}.

Оператор цикла DO LOOP [{WHILE | UNTIL}]. Этот оператор называется циклом с постусловием, т. к. проверка условия осуществляется после каждого выполнения тела цикла,

DO

<операторы>

LOOP [{WHILE | UNTIL} условие]

Цикл выполняется до тех пор, пока условие не станет истинным. Например, проверка на то, чтобы задать длину последовательности, осуществляется следующим образом:

DO

PRINT "ВВЕДИТЕ ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N = "

INPUT N%

LOOP UNTIL N% >0

Цикл выполняется до тех пор, пока пользователь не введет положительное число.

При использовании UNTIL цикл выполняется до тех пор, пока не выполнится условие, а при использовании WHILE цикл выполняется только при выполнении условия и заканчивается, если условие нарушается.

Операторы цикла DO WHILE/UNTIL LOOP и WHILE WEND.

Эти циклы называются циклами с предусловием, т. к. проверка проводится до начала очередной операции:

DО [{WHILE UNTIL}условие]

<тело цикла>

LOOP

или

WHILE <условие>

<тело цикла>

WEND

Цикл WHILE выполняется, пока условие истинно. Как только условие нарушается, выполнение цикла завершается. Если используется UNTIL, то выполнение происходит до тех пор, пока условие не станет истинным.

Например, та же проверка вводимой длины последовательности может быть задана как

INPUT N%

WHILE N% <=0

PRINT "ВВЕДИТЕ ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N ="

INPUT N%

WEND

Обратите внимание, что до первого входа цикл переменной N% уже должно быть присвоено какое-либо значение!

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

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

Рассмотрим пример вычисления суммы бесконечного ряда чисел.

Структурный подход предполагает использование простейших структур, перечисленных и списанных выше, для построения блок – схемы алгоритмов любой сложной задачи. Рассмотрим это на примере.

В отчете по работе должно быть:

  1. Математическая постановка задачи

  2. Блок-схема алгоритма

  3. Программа на QBASIC

  4. Результаты выполнения задачи

Пример. Вычислить значение sin x по формуле

SinX =

Общая формула члена ряда гдеn – номер члена ряда n

Вычисления продолжать до тех пор пока >E, это условие и есть условие выхода из цикла, где Е – точность вычислений.

При достаточно большом n возведение в степень занимает значительное машинное время . Поэтому каждый член ряда следует получать в соответствии с рекуррентным соотношением

R = Rx

Где n = 3,5,7……..; R начальное = х. Тогда рекуррентное соотношение для получения суммы ряда будет S = S+R (-1), где S начальное= Х. Блок – схема алгоритма вычисления суммы ряда представлены на рисунке 27.

Вычисления ведутся до тех пор , пока величина члена ряда R не станет меньше , либо равной некоторой малой величине Е. Значение R с каждым циклом уменьшается. После выполнения цикла первый раз имеем

R =

S =

После выполнения цикла второй раз

R =

S =

И т.д.

Блок-схема

Программа на Qbasic имеет вид:

input x,e

s=x

r=x

n=3

do while r>e

r=r*x2/((n-1)*n)*(-1)

s=s+r

n=n+2

loop

print s

end