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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

2018-01-04 305
Лабораторная работа №4. Цикл с неизвестным числом повторений 0.00 из 5.00 0 оценок
Заказать работу

Задание

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

Варианты:

   
   
   
   
   
   

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

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

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

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

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

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

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

при этом 0! и 1! равны 1.

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

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

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

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

2. Определяем формулу перехода для (N+1)-ого члена ряда в формате:

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

. (3.2)

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

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

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

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

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

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

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

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

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

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

Далее необходимо использовать соответствующие средства отладки:

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

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

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

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

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

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


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

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

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.