Форум программистов, компьютерный форум CyberForum.ru

Не правильно работает часть программы. - C++

Восстановить пароль Регистрация
 
dimmu
0 / 0 / 0
Регистрация: 11.02.2012
Сообщений: 15
23.03.2012, 10:42     Не правильно работает часть программы. #1
Задание:
Дана таблица, значения которой связаны зависимостью cos(x) (значения х из отрезка[0,4П]). Необходимо построить график интерполяционного многочлена, полученного по схеме Горнера.

На скрине то что получилось. Ошибка где-то в нахождение этого интерполяционного многочлена
А где, не пойму

код


#include <winbgim.h>
#include <math.h>
int main()
{
int gd, gm;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"");
setbkcolor(WHITE);
cleardevice();
setcolor(BLACK);
int Y0=getmaxy()/2;
int ZX=getmaxx()/2;
int X0=50;
line(0,Y0,getmaxx(),Y0);
line(X0,0,X0,getmaxy());
int edx=20;
int edy=20;
setcolor(LIGHTBLUE);
int k;
// рисуем засечки
for(k=0;edx*k<ZX;k++)
{
line(X0+k*edx,Y0-3,X0+k*edx,Y0+3);
}
for(k=0;edy*k<Y0;k++)
{
line(X0-3,Y0+k*edy,X0+3,Y0+k*edy);
line(X0-3,Y0-k*edy,X0+3,Y0-k*edy);
}
setcolor(BLUE);
// стиль линии - сплошная толстая
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
float a,b,X,Y,delta;
// интервал дискретизации
delta=0.1;
// границы построения по оси х
a=0; b=3.14*4;
// Вычисление начальных координат
X=a;
Y=cos(X);
// перемещение указателя в начало графика
settextstyle(3,0,2);
moveto(X0+edx*X,Y0-edy*Y);
outtextxy(180,10,"График функции f(x)=cos(x)");
outtextxy(30,getmaxy()/2+10,"0");
// цикл построения графика
for(X=a;X<=b;X=X+delta)
{
Y=cos(X);
lineto(X0+edx*X,Y0-edy*Y);
};
//Начало нахождения многочлена
// начали вычисление двух массивов. число элементов - n.;
int n=500;
float Rez[n];
float y[n],x[n];
float shag=(4*3.14)/n;
int i;
x[0]=0;
y[0]=cos(x[0]);
for(i=1;i<=n;i++)
{
x[i]=x[i]+shag;
y[i]=cos(x[i]);
}
//вычислилил суммы. начинаем считать разности;
for(int N=1;N<=n;N++)
{
for(i=n;i>=N;i--)
{
y[i]=(y[i]-y[i-1])/(x[i]-x[i-N]);
}}
i=0;
int p=n;
for(int j=n;j>=0;j--)
{
for(i=n-1;i>=1;i--)
{
if(p==n)
{
Rez[j]=y[i]*(x[i]-x[i-1]);
}
Rez[j]=Rez[j]+y[i-1];
Rez[j]=Rez[j]*(x[i]-x[i-1]);
}
}
//Новый график
setcolor(RED);
// перемещение указателя в начало графика
moveto(X0+edx*x[0],Y0-edy*y[0]);
// цикл построения графика
for(i=0;i<=n;i++)
{
lineto(ZX+edx*x[i],Y0+edy*Rez[i]);
}
getch(); // ожидание
// закрытие графического окна
closegraph();
return 0;
}
Миниатюры
Не правильно работает часть программы.  
Вложения
Тип файла: rar source.rar (570.4 Кб, 5 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2012, 10:42     Не правильно работает часть программы.
Посмотрите здесь:

Нужна очень всего часть программы C++
Не могу понять почему не работает (или правильно не работает) C++
C++ Помогите дописать часть программы.
C++ часть программы..
Что выполняет эта часть программы? C++
Объясните часть кода программы C++
C++ Основная часть программы
C++ Нужно вынести часть программы в отдельный модуль
C++ ООП часть программы
Не работает часть функции в C++ C++
C++ Не работает 2 я часть программы
C++ Почему не работает часть кода?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru