Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Методическое указание. Значок «!» означает факториал




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

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.




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


Дата добавления: 2014-12-27; Просмотров: 407; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.