|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.12.2009, 10:28 | #1 |
Пользователь
Регистрация: 12.11.2009
Сообщений: 12
|
Cходящийся ряд (программа по идее должна работать но почему не работает понять не могу) в С++
Поясните пожалуйста почему программа с данным кодом не работает:
#include "stdafx.h" #include <iostream> #include <math.h> #include <stdio.h> using namespace std; int k; double y; int main() { const int maxiter=500; double x, Eps; double y,p; int k; cout<<"Vvedite argument"<<endl; cin>>x; if (x==0) { cout<<"Wrong value of argument"<<endl; return 0; } cout<<"Vvedite tochnost"<<endl; cin>>Eps; if (Eps<0) { cout<<"Wrong value of tochnost"<<endl; return 0; } k=1; p=((-1)*x*x*x/3); y=p; for (k=2;fabs(p)>Eps;k++) { p*=(-1)*x*x/k*(2*k+1); y+=p; } if (k<maxiter) { cout<<"\nZnachenie funkcii:"<<y<<" dlia x="<<x<<endl; cout<<"\nVichisleno posle "<<k<<" iterazii"<<endl; } if (k>maxiter) { cout<<"Riad rashoditsa"; return 0; } } Все дело в том что ошибок и предупреждений нет вообще, а в консоли срабатывает только ввод x и Eps после чего работа программы останавливается |
17.12.2009, 11:16 | #2 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 664
|
Дело в том, что если Ваш ряд расходится, то Погрешность никогда не будет достигнута. Цикл становиться бесконечным. И значение p и y выберутся за разрядную сетку. Так при х=2 это происходит на 321 цикле, а далее ошибка.
В этом месте Код:
Код:
Код:
И используйте тег CODE. Выделите свою программу и нажмите значок # на панели сообщения.
Неприятности приходят и уходят, а жизнь продолжается!
Последний раз редактировалось Sweta; 17.12.2009 в 11:33. |
17.12.2009, 12:56 | #3 |
Пользователь
Регистрация: 12.11.2009
Сообщений: 12
|
А каким образом можно сделать так чтобы выводило кол-во проделанных шагов в цикле?По идее оно опять же должно тут работать но оно выдает значение равное начальному значению k в цикле
|
17.12.2009, 13:04 | #4 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 664
|
Проглядела. У Вас k и y объявлены дважды.
Уберите здесь Код:
Код:
Неприятности приходят и уходят, а жизнь продолжается!
Последний раз редактировалось Sweta; 17.12.2009 в 13:16. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему не работает...хм....понять не могу! | Артур Иваныч | Microsoft Office Excel | 9 | 01.12.2009 17:58 |
Не могу понять почему блокируется папка | Paul Hindenburg | Общие вопросы Delphi | 4 | 07.05.2009 10:47 |
Плииз!!! помогите! Не могу понять почему не работает! (Паскаль) | Викуська_ | Помощь студентам | 5 | 21.04.2009 20:37 |