Автор | помогите заставить правильно работать программу на c++ |
никак не пойму в чем проблема , выдает n равное 2293560
тому кто нормально поможет в подарок чисто символические 2000-5000з
#include<iostream>
#include<conio.h>
#include<math.h>
#include<locale.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"");
bool ok = true;
double a,b,c=1,y=1;
int n;
const int e=500;
cout<<"введите аргумент и точность\n";
cin>>a>>b;
for(int n=0;fabs(c)>b;n++)
{
c*=a*a /((2*n+1)*(2*n+2));
y += c;
if (n>e)
{
cout<<"ряд расходится\n";
ok = false;
break;
}
cout<<" однако"<<n;
}
if (ok)
{
cout<<"значение функции "<<y<<" для х = "<<a<<"\n вычисленно после "<<n<<" итераций";
}
getch();
return 0;
} |
Молотком её! |
для Timotei_:
это не гуманно ) |
для Timotei_:
Поддерживаю! Мне на уроках информатики мозк учитель выносит этой шнягой, а тут еще и на форуме С++ |
помогите заставить правильно работать программу на c++
Программу заставить правильно работать нельзя. С ней надо аккуратно (ласково).
К сожаленью я с программами на c++ не умею общаться. |
в итерациях число не меняется что ли? |
если n у тебя более 500 - то должна быть надпись о расхождении
откуда число то у тебя вылазит? |
для Rinarizutakaari:
ага |
вот я и думаю от куда , скорее всего из за свойств for и fabs |
блин , у меня ж n интовый , из за этого и глючит |
ну интовый, и что?
у тебя n больше 500 быть не может.
кстати объявлен 2 раза зачем то |
поставил n double , выдаваемое число поменялось на 5.2837е-308
#include<iostream>
#include<conio.h>
#include<math.h>
#include<locale.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"");
bool ok = true;
double a,b,c=1,y=1,n;
const int e=500;
cout<<"ââåäèòå àðãóìåíò è òî÷íîñòü\n";
cin>>a>>b;
for(double n=0;fabs(c)>b;n++)
{
c*=a*a /((2*n+1)*(2*n+2));
y += c;
if (n>e)
{
cout<<"ðÿä ðàñõîäèòñ& #255;\n";
ok = false;
break;
}
cout<<" îäíàêî"<<n;
}
if (ok)
{
cout<<"çíà÷åíè 29; ôóíêöèè "<<y<<" äëÿ õ = "<<a<<"\n âû÷èñëåíí& #238; ïîñëå "<<n<<" èòåðàöèé";
}
getch();
return 0;
} |
для Rinarizutakaari:
в смысле int n; ? просто когда не писал вылазила ошибка
lookup of `n' changed for new ISO `for' scoping
и еще
using obsolete binding at `n' |
я математику уже подзабыл.
по какому принципу находится значение функции?
если n убегает за 500 - ряд расходится.
но какие ограничение на y чтобы определить что решение найдено? |
for(n=0;fabs(c)>b;n++) |
для _соколикс_:
Убей их всех молотком! |
для aar72:
теперь выдает 0 |
попробуй отследить значения c и y |
я помню как то в институте 9 часов экзамен по информатике сдавал. Из-за того что простейший код на сортировку пузырькем - неправильно сортировал массив. Писал его 3мя разными способами - не работает и все. Препод уже с книжки пришел набрал - не работает.
видимо отсюда и истекает индийский код типа if (1=1) {} |
для Rinarizutakaari:
у меня похоже тоже самое , ладно спасибо всем за помощь |