Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новая папка / 04 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ЛабРаб ОП та АМ_4.doc
Скачиваний:
6
Добавлен:
28.03.2016
Размер:
291.84 Кб
Скачать

1. Условие задачи:

Вычислить значение бесконечной суммы с заданной точностью :

.

(4.2)

2. Решение задачи в ее предметной области, в данном случае – это высшая математика:

.

(4.3)

Здесь Вы должны обратить внимание на то, что n в (4.3) заранее не известно.

3. Проектируем структуры данных (их имена и типы). Понятно, что все имена, входящие в (4.3), нужно описать в программе, т.е. S, x, i, eps. Кроме того, нам понадобится некоторая переменная, в которой будет храниться текущее вспомогательное значение для члена ряда. Назовем ее part. Поскольку S, x, eps, power могут иметь дробную часть, то их тип выбираем Real. Для iзначения не имеет: это может быть Real либо Integer.

Значит в разделе описаний программы, назовем ее Summa, с учетом требований о необходимости обеспечения легкочитаемости программы и размещения необходимых комментариев, поместим следующие описания:

Var

S, { сумма }

x, { значение x }

i, { число в знаменателе }

eps, { точность вычислений }

part : Real; { текущее значение части члена ряда }

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

Ввести данные Summa

Выполнить вычисления Summa

Вывести результаты Summa

С учетом требований к «дружественности» интерфейса, детализация псевдокода Ввести данные Summa дает следующее:

Вывести на экран приглашение для ввода x

Ввести x

Вывести на экран приглашение для ввода eps

Ввести eps

Детализация псевдокода Выполнить вычисления Summa дает следующее:

S присвоить 0

part присвоить 1

i присвоить 1

ЦИКЛ ПОКА (part/i)>eps

part умножить на x-1 и разделить на x

к S добавить part деленное на i

i увеличить на единицу

Детализация псевдокода Вывести результаты Summa дает следующее:

Вывести название и содержимое ячейки S

5. Выполняем структурное программирование с использованием структуры ЦИКЛ-ПОКА:

BEGIN

ClrScr; { Очищаем экран }

Write(‘Введите значение x = ’);

ReadLn(x);

Write(‘Введите значение eps = ’);

ReadLn(eps);

{ Подготовка к циклу }

S := 0; { Подготовка к циклу }

part := 1; { Начальное значение }

i := 1; { Начальное значение }

while (part/i)>eps do

begin

part := part*(x-1)/x; { Получаем часть члена ряда }

S := S+ part/i; { Суммируем в S }

i := i+1 { Увеличиваем i на 1 }

end;

WriteLn(‘S = ’, S:4:2);

ReadLn

END.

6. Отладка программы. Отладка программы – это процесс поиска и устранения синтаксических ошибок в готовой программе. Обычно отладка предшествует стадии тестирования. В этом пункте необходимо привести скриншот результата работы готовой программы (см. п. 5 Лаб. раб № 1).

7. Тестирование программы. Цель тестирования всякой программы состоит в том, чтобы убедиться, что она решает действительно ту задачу, для которой предназначена, и выдаёт правильный ответ при любых значениях из области решений. Тестовые данные должны обеспечивать проверку всех возможных условий возникновения ошибок. Подготовьте тестовый пример для своей задачи и вычислите конечный результат с помощью калькулятора, имеющегося в среде Windows.

Тестовый пример для нашей задачи будет включать вычисление S при x=2.5 и eps=0.00001:

Исследуйте Вашу программу при необходимых тестовых значениях.

Создайте программу с использованием структуры repeat-until (ЦИКЛ-ДО) и исследуйте ее.

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