Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел2-QB-лр1-8.doc
Скачиваний:
51
Добавлен:
22.05.2015
Размер:
1.19 Mб
Скачать

3 Контрольные вопросы

1 Какая структура программы на языке QB соответствует циклу "До" ?

2 Какая структура программы на языке QB соответствует циклу "Пока" ?

3 Какие циклы называются арифметическими ?

4 Какие данные необходимы для организации цикла ?

5 Как определить число повторений цикла ?

6 Каковы алгоритмы решения типовых задач: вычисления суммы, произведения ?

7 Почему в операторе DO…LOOP при проверке условия ставится знак ">", а не "<="?

4 Задание

Вычислить сумму и произведение полученных значений функции. Составить три варианта программы – с операторами FOR…NEXT, WHILE…

WEND и DO…LOOP

.

№ вар.

Выражение

Данные

1

2

3

1

t=|sin(ax2+bx-c)|

1<=x<=5; ∆x=0,2 a=2,1; b=3; c=-14,2

74

1

2

3

2

t=2х3sin(e3x – 450+a)-lnс

10<=x<=25; ∆x=0,2; a=2,22; c=-14,2

3

11<=x<=15; ∆x=0,5; a=0,2712; c=-14,2

4

D = lg|x-a|

4<=x<=5; ∆x=0,2; a=2,22;

5

1<=x<=15; ∆x=2; a=2,22; b=3; c=-14,2

6

W = cos(-ax2+600)

1<=x<=3; ∆x=0,2; a=2,22;

7

V = ln(sin x5)ab

3<=x<=5; ∆x=0,2; a=2,22; b=3;

8

1<=x<=5; ∆x=0,2; a=2,22; b=3; c=-14,2

9

Z = + |(ax2-c8+50)|

1<=x<=5; ∆x=0,2; a=2,22; b=3; c=-14,2

10

P = ln(4ax5+c-140)

1<=x<=5; ∆x=0,2; a=2,22; c=-1

11

1<=x<=2 ∆x=0,5; a=2,22; b=3; c=-14,2

12

∙3|tg xa+b+c|

1<=x<=5; ∆x=0,2; a=2,22; b=3; c=-14,2

13

F = 24|arctg xa+b|

1<=x<=5; ∆x=0,2; a=2,22; b=3; c=-14,2

14

5<=x<=15; ∆x=0,2; a=2,22; b=3; c=-14,2

15

5<=x<=50; ∆x=10; a=2,22;

c=-14,2

16

F = tg4(x5+c-190)

1<=x<=5; ∆x=0,2;

c=-14,2

17

L = ln3(4ax5c-140)

1<=x<=5; ∆x=0,2; a=2,22;

c=-14,2

18

8<=x<=5; ∆x=1; a=2,22; b=3; c=-14,2

75

1

2

3

19

M = |ln(3bx5-270)|

22<=x<=33; ∆x=1.5;

b=3

20

10<=x<=20 ∆x=2; a=2,22; b=3; c=-14,2

Содержание отчета

1 Название работы.

2 Цель работы.

3 Содержание работы

4 Постановка задачи для своего варианта.

5 Три программы с разными операторами цикла.

7 Результаты расчёта суммы и произведения - один раз.

8 Письменные ответы на контрольные вопросы.

9 Выводы по работе.

76

Лабораторная работа № 4

Итерационные циклы

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

Содержание работы:

1 Программа вычисления арифметического ряда

2 Программы вычисления факториалов

3 Алгоритм итерационного цикла

1 Программа вычисления арифметического ряда

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

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

При использовании итерационных процессов реализуется метод последовательных приближений. Характерно, что количество повторений цикла до реализации вычислительного процесса неизвестно, обычно циклом управляет заданная погрешность вычислений ξ. Если на очередной итерации погрешность | yn-yn-1│≥ ξ, то цикл продолжается для вычисления последующего приближенного значения результата yn+1.

Пример 1 Вычислить сумму ряда

при х = 0,75 с точностью Е=10-2.

По условию примера требуется вычислять новые значения ряда и прибавлять их к сумме s до тех пор, пока i-й член ряда не станет меньше 0,01. Для организации цикла нужно записать в общем виде формулу для i-го члена ряда, а в цикле изменять те переменные, которые варьируются в этом выражении.

77

Для данного ряда выражение для i-го члена имеет вид: , т.е. в числителе показатель степениk при аргументе функции синус увеличивается на 2, а в знаменателе – на 1 увеличивается коэффициент пропорциональности n при х. Знакопеременность членов ряда обеспечивается множителем (-1)t . Если t чётное, от знак члена положительный, если t – нечётное, то знак члена – отрицательный. Первое значение суммы s = sin x, т.к. это выражение (sin x) в общий член уi не входит.

Алгоритм вычисления: Программа:

Cls

x = .75: k = 3: t=1

n = 2: E = 10^(-2)

s = sin(x)

m1: y = (-1)^t*sin(x^k)/n*x

s = s + y: k=k+2: n=n+1: t=t+1

IF ABS(y) >=E THEN m1

PRINT "s="; s

END

или с оператором цикла,

например, DO…:

CLS

x = .75: k = 3

n = 2: E = 10^(-2)

s = sin(x)

DO

y = (-1)^t*sin(x^k)/n*x

s = s + y: k=k+2: n=n+1: t=t+1

LOOP UNTIL ABS(y) < E

PRINT "s="; s

END

Описание алгоритма и программы:

После ввода начальных значений k, t и n, точности E, х = 0,75 и вычисления s=sinx при х=0,75 (блок 2, строки 2-4 в программах) вычисляется i-тый член ряда уi со знаком "-", т.к. t=1 (блок 3, строка5 и строка 6 в программе с DO…), в блоке 4 и следующей строке он прибавляется к предыдущему значению суммы (s=s+y), k увеличивается на 2, а t и n - на 1.

78

Потом производится проверка на окончание цикла – если модуль уi ещё больше или равен 0,01 (во второй программе – до того, как он станет меньше), то управление возвращается назад, к вычислению следующего уi, если условие не выполняется, то следующий оператор выводит s на экран текстом с "s=" и конец программы.

Примечание: Проверка выполняется для модуля значения y, чтобы исключить влияние знака у ("+" или "–") при сравнении его с величиной Е.

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

Для данного примера варьируются величины k, n, y и s, запишем их изменения при выполнении программы в табл. 1.

Таблица 1

№ про-хода

k

t

n

у

s

1

3

1

2

2

5

2

3

3

7

3

4

Сначала переменным присваиваются значения: х=0,75; k=3; n=2; E=0,01; s=sin 0,75. Потом вычисляется и как сумма предыдущего значения (sin 0,75) и значения у. Затем k,t и n получают приращения и становятся равными 5, 2 и 3 соответственно. После этого выполняется проверка на завершение циклов вычислений – если модуль у (i-го члена ряда) у ещё больше Е=0.01, то выполняется переход на новое вычисление у с коэффициентами k=5, t=2, n=3, опять вычисляется s = s + y, но в качестве предыдущего s уже используется и т.д. "Ручное" выполнение программы показывает, что в результате программа формирует сумму ряда, заданную в условии примера 1.

79