Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Грушвицкий 22.12.11 пособие исправленное.doc
Скачиваний:
28
Добавлен:
09.02.2015
Размер:
1.01 Mб
Скачать

3.4 Лабораторная работа №4. Цикл с неизвестным числом повторений Задание

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

Варианты:

1

7

2

8

3

9

4

10

5

11

6

12

При создании программы должны быть выполнены следующие дополнительные условия:

  • Значение функции, к которой сходится сумма ряда, вычисляется с погрешностью, задаваемой пользователем.

  • Программа фиксирует количество членов ряда, необходимое для достижения заданной точности.

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

Значок «!» означает факториал. Простой пример:

5! = 1*2*3*4*5,

12! = 1*2*3*4*5*6*7*8*9*10*11*12

Обратите внимание на тот факт, что при вычислении отдельно числителя и знаменателя достаточно быстро происходит переполнение типа данных. Например, 12!=479 001 600, что превышает ограничения сразу нескольких типов данных, таких как intи прочие.

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

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

  1. Выстраиваем ряд в следующем представлении: (3.1)

  2. Определяем формулу перехода в формате:

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

. (3.2)

Таким образом, можно вычислить сумму ряда до определённого значения N. Погрешность вычисления может определяться по тому, насколько большим получился очередной вычисленный член ряда. Если он по модулю меньше погрешности, то после прибавления этого члена вычисление ряда можно считать завершённым.

Тестирование данной работы должно проходить в 2 этапа:

  • Тестирование итерационного механизма;

  • Общее тестирование.

Тестирование итерационного механизма заключается в:

  • тестировании правильности входа: определения начальных значений;

  • тестировании правильности перехода от N-го к(N+1)-у члену ряда;

  • тестировании правильности выхода из суммирования.

Для проверки целесообразно выбрать значение Xтаким, чтобы было просто вычислять первые несколько членов ряда (например,X=2.0 илиX=½) по формуле, полученной в соответствии с (3.1). Далее необходимо использовать соответствующие средства отладки:

    • установить точку прерывания (breakpoint), где либо внутри тела цикла вычисления членов ряда (лучше всего до оператора вычисления нового значения суммы ряда, но после вычисления нового члена ряда);

    • в окне наблюдений значений переменных (watch) выбрать переменные ответственные за значения членов ряда и суммы ряда;

    • осуществлять запуск программы на исполнение не менее 3 раз;

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

В данной работе необходимо учитывать замечания по выбору единичных и нулевых исходных данных, которые были даны в работе № 3.