| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Выводит ошибку |
| Автор: KaTeNoK 27.12.2006, 16:10 | ||
| Задание: Не используя стандартные функции, за исключением ABS, вычислить с точностью E (E>0) y=x+x^3/3!+x^5/5!+...+x^(2n+1)/(2n+1)! мое решение вот такое:
Но он мне выдает ошибку 200 (деление на ноль). Что я неправильно сделала??? |
| Автор: skyboy 27.12.2006, 16:12 |
| 1. на какой строке ошибка? 2. оформляй код при помощи кнопки "код" справа вверху. 3. отключи CRT - возможно, проблемы из его использования |
| Автор: KaTeNoK 27.12.2006, 16:16 |
| 1. на 20-ой 2. оформила (простите, первый раз 3. раньше с ним проблем не было, написала кучу программ, рнаьше могла с этим бороться, а в этот раз не получается Добавлено @ 16:21 отключила, все равно выдает эту ошибку |
| Автор: skyboy 27.12.2006, 17:03 | ||
я не думаю, что "с точностью до Е" - это то же самое, что "пока сумма ряда не станет меньше Е". тем более, что при Х>E сумма никогда не станет меньше Е. а по ошибке деления на ноль вылетает, потому что для ZN ты используешь тип, ограниченный 37767 - рано или поздно, он у тебя переполняется(из-за ошибки в условии выхода из цикла). Переполняется раз, другой, третий... рано или поздно, после преполнения оказывается равным нулю. думаю, там можно поставить "UNTIL abs(ch/zn)< e". Добавлено @ 17:05 ничего, ничего. если бы ты ещё нажала не на слово "код", а на стрелочку чуть правее - можно было бы выбрать конкретный язык программирования. тогда бы ещё и ключевые слова синтаксиса подсвечивались бы --- так намного удобнее читать текст. особенно чужих программ |
| Автор: Zero 27.12.2006, 18:23 | ||
Стандартный и самый понятный способ определения точности, это когда разница между предыдущим и текущим значением сравниваеться с точностью:
|
| Автор: volvo877 31.12.2006, 09:46 | ||
Exp + Ln - все-таки, ПОКА являются стандартными...
|