Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf2.doc
Скачиваний:
18
Добавлен:
15.04.2015
Размер:
603.14 Кб
Скачать

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

  1. Какого типа может быть параметр цикла for?

  2. Получите таблицу истинности для операции x and not y.

  3. Как правильно организовать цикл с параметром?

  4. Как досрочно выйти из цикла for?

  5. Организуйте цикл с параметром, имеющим шаг, равный трем.

  6. Постройте лесенку вверх из цифр, отстоящих на три пробела.

  7. Что делает оператор: for i:=1 to 5 do; write(i);?

  8. Где ошибка: for k:=1 to 5 do begin inc(k); writeln(k*k) end;?

  9. Организуйте вывод на экран первых 5 символов таблицы ASCII.

  10. Как уточнить корень уравнения методом касательных?

Варианты задания

Выполнить соответствующий вариант из задания к работе № 3 с использованием оператора цикла с параметром For.

Лабораторная работа 5

ПРОГРАММИРОВАНИЕ ИТЕРАЦИОННЫХ

ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

Цель работы

Изучение правил организации итерационных вычислений и использования для этих целей оператора цикла с предусловием while - do.

Методические указания

В вычислительной практике часто приходится иметь дело с повторяющимися вычислениями, результаты которых на очередном витке цикла зависят от результатов вычислений на предшествующем витке. Подобные вычисления называют итерационными, а очередное повторение тела цикла - итерацией. Примерами таких вычислений являются: уточнение с заданной погрешностью корней уравнений, нахождение бесконечных сумм и произведений, численное интегрирование и др. Условием прекращения таких вычислений становится достижение требуемой погрешности. Рассмотрим некоторые частные случаи итерационных вычислений.

Сумма бесконечного ряда

Пусть требуется определить с абсолютной погрешностью сумму бесконечного ряда . Если существует некоторое числоS, к которому стремится предел указанной суммы при числе слагаемых n, стремящемся к бесконечности, то говорят, что ряд сходится к S. Выражение описывает общий член ряда. Процесс вычисления суммы ряда сводится к циклическому выполнению двух действий: получение на основанииочередного слагаемого и добавление его к сумме. Вычисления завершаются, когда очередное слагаемое становится меньше заданной погрешности:

. (1)

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

Запись выражения для на языкеTurbo Pascal обычно не вызывает затруднений. Однако есть частные случаи, когда выражение для содержит целые степени аргументаx и факториалы. В этих случаях применяют следующий прием. Выражают очередное слагаемое как функцию от предыдущего слагаемого: или

, (2)

где . (3)

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

Пример 1. Вычислить с погрешностью =0,001 для заданного значения аргумента x значение функции sin(x) с помощью ее разложения в ряд:

,

где (2n – 1)! = 123 (2n – 1).

Выразим вспомогательную функцию из выражения (3):

.

С ее помощью по формуле (2) будем определять очередное слагаемое t. Первый член ряда находим непосредственно из формулы для общего члена ряда, подставив в нее n = 1. Далее приведен алгоритм решения задачи.

Ввод (x, )

summa:= 0; t:= x; n:= 2

Пока

summa:= summa + t

t:= t; n:= n + 1

Вывод ( summa, sin(x) )

Запишем алгоритм на языке программирования:

program Summa_Ryada;

const

e = 0.001;

var

n: byte;

fi, summa, t, x: real;

begin

writeln(‘Введите x’);

readln(x);

summa:=0; t:=x; n:=2;

while abs(t) > e do begin

summa:=summa + t;

fi:=- x*x/(2*n-2)/(2*n-1);

t:=t*fi;

n:=n + 1

end; {while}

writeln(‘Сумма ряда = ‘, summa);

writeln(‘Учтено ‘, n-1, ‘ слагаемых’);

writeln(‘Синус = ‘, sin(x))

end.

Бесконечное произведение

Бесконечное произведение представляет собой произведение бесконечного числа сомножителей:

.

Если такое произведение стремится при i  к некоторому пределу P, то P называют значением бесконечного произведения. Если P конечно и отлично от нуля, то произведение называют сходящимся, в противном случае - расходящимся. Если бесконечное произведение сходится, то . Именно это обстоятельство можно использовать для прекращения циклических вычислений частичных произведений, а именно когда очередной сомножитель станет отличаться от 1 на величину меньше заданной погрешности. Разберем правила решения данной задачи на конкретном примере.

Пример 2. С погрешностью 0,0001 вычислить значение числа  с использованием формулы Валлиса: .

Ввод ()

p:= 1; m:= 4/3; n:= 2

Пока m-1 > 

p:= p*m

m:= 4n*n/(4n*n-1); n := n + 1

Вывод (2*p)

В соответствии с приведенным выше алгоритмом имеем:

program Vallis;

const

e = 0.0001;

var

n: byte;

p, m: real;

begin

p:= 1; m:= 4/3; n:= 2;

while m-1 > e do begin

p:= p*m;

m:= 4*n*n/(4*n*n - 1);

end; {while}

writeln(‘Число ПИ = ‘, p*2);

writeln(‘Учтено ’,n-1, ‘сомножителей’)

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]