0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 84
|
||||||
1 | ||||||
Исправить ошибку NaN30.06.2014, 01:05. Показов 4571. Ответов 7
Метки нет (Все метки)
При значениях n от 0 до 17 все нормально, от 18 и до 30 сумму Sn и отклонение от функции пишет NaN.
0
|
30.06.2014, 01:05 | |
Ответы с готовыми решениями:
7
Исправить ошибку Исправить ошибку Исправить ошибку исправить ошибку |
Модератор
10065 / 5407 / 3353
Регистрация: 17.08.2012
Сообщений: 16,549
|
|||||||||||||||
30.06.2014, 02:54 | 2 | ||||||||||||||
Сообщение было отмечено avanesh как решение
Решение
avanesh, это не ошибка. Это ограничение разрядной сетки компьютера. И открою Вам страшный секрет: у Вас не до 17 всё нормально, а только до 12. Почему?
Максимальное значение типа integer в Turbo Pascal - это 231-1. Сравниваем:
Как видите, в тип integer влезает только 12!. Если бы Вы писали программу не в Turbo Pascal, а в ином паскале (например, Free Pascal), Вам бы был доступен тип int64, максимальное значение которого 263-1, и uint64, максимальное значение которого 264-1. Но и в этом случае далеко бы не ушли:
То есть, максимум, что поместится в стандартную разрядную сетку представления целых чисел в компьютере - это 20!. Если тип функции fact объявить real, то можно будет расширить границы вычисления факториала, не помню, что-то до 61!, что ли... Но за счёт потери точности - количество значащих разрядов в мантиссе числа ограничено. Максимум максиморум - 20 разрядов, и безошибочно может быть представлен только 24!=620448401733239439360000, и то при его вычислении нагребёшь ещё и ошибок усечения при переводе из десятичных чисел в двоичные. Достаточно простой выход из данной ситуации - производить вычисления методами длинной арифметики. А это радикальное перепахивание всей программы, да ещё, к тому же, не так всё и просто в этой длинной арифметике. Не рекомендую, лучше расскажите при сдаче задания, почему оно не считает, ну, хотя бы то, что я здесь написал. Однако, правильнее всего, если это возможно, поменять алгоритм программы: привести целевые вычисления к такому виду, что переполнение разрядной сетки компьютера будет уже при нецелевых входных данных. Укажите, что делает программа - некогда мне с нею разбираться - может быть, перелопачу для Вас её, чтобы NAN не случалось.
1
|
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 84
|
|
30.06.2014, 03:12 [ТС] | 3 |
Спасибо за объяснения.
Задание таково: найти функциональную сумму ряда для кол-ва членов от 1 до 30 слагаемых, сумму с точностью до Е=0.001 и кол-во просуммированных элементов, значение функции своего варианта а также отклонение полученных сумм от результата функции. Писал на PascalABC, NaN появляется только с 18 по 30. Ошибся. Не до 30, а до 18.
0
|
Модератор
10065 / 5407 / 3353
Регистрация: 17.08.2012
Сообщений: 16,549
|
|
30.06.2014, 04:00 | 4 |
Такой ряд?
1
|
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
30.06.2014, 09:04 | 5 |
Для вычисления суммы таких рядов не нужно ни факториал ни степень, все решается через рекуррентные отношения.
1
|
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
|
||||||
30.06.2014, 14:19 | 6 | |||||
При вычислении факториала большого числа можно было бы воспользоваться BigInteger, например:
1
|
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 84
|
||||||
30.06.2014, 16:57 [ТС] | 7 | |||||
Спасибо, поменял в строке
0
|
Модератор
10065 / 5407 / 3353
Регистрация: 17.08.2012
Сообщений: 16,549
|
|
30.06.2014, 20:26 | 8 |
avanesh, так такой ряд или нет?
0
|
30.06.2014, 20:26 | |
30.06.2014, 20:26 | |
Помогаю со студенческими работами здесь
8
Исправить ошибку Исправить ошибку Исправить ошибку Исправить ошибку! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|