initial(x,y,x1,y1,n,dop);
int i = 0; while (i < (n+1)) { // ?????? ?????????????? ???????? ???????
x[i] = (i-n/2)*(step);
y[i] = cos(x[i])*pow(x[i],2);
i++;
}
spline (step, dop, n, x,y,x1,y1);
init(); interface(n, dop,x,y,x1,y1);
delete x,y,x1,y1;
closegraph();
}
#ifndef __FUNCT_H
#define __FUNCT_H
#include
// инициализация графики
void init() {
int D,M; D = DETECT; M = 5;
initgraph(&D,&M,"");
}
// рисование графика функции и сплайна
void paint(int Fx,int Fy,int key,int n, int dop, double* &x,double* &y,double* &x1,double* &y1) {
int i = 0, a, b;
a = getmaxx()/2; b = getmaxy()/2;
setfillstyle(0,0); bar(0,0,a*2+1,b*2+1); setcolor(5);
if ((key == 1) || (key == 3))
while ( i < n ) {
line(x[i]*Fx + a, -y[i]*Fy + b, x[i+1]*Fx + a, -y[i+1]*Fy + b);
i = i++;
}
if ((key == 2) || ( key == 3)) {
i = 0;
setcolor(3);
while ( i < n*dop ) {
line(x1[i]*Fx + a, -y1[i]*Fy + b, x1[i+1]*Fx + a, -y1[i+1]*Fy + b);
i = i++;
}
}
setcolor(10); line(getmaxx()/2,0,getmaxx()/2,getmaxy());
line(0,getmaxy()/2,getmaxx(),getmaxy()/2);
}
// функция для приближения (удаления) и масштабирования по осям графиков
void interface(int n, int dop, double* &x, double* &y,double* &x1, double* &y1) {
int c=16, z=16;
char key='0';
{
if (key == 75) c = c+4;
if (key == 72) z = z+4;
if (key == 77) c = c-4;
if (key == 80) z = z-4;
if (key == 45) { z = z-4; c = c-4; }
if (key == 61) { z = z+4; c = c+4; }
if (c < 0) c = 0;
if (z < 0) z = 0;
if (key == 's') paint(c,z,2,n,dop,x,y,x1,y1);
else if (key == 'f') paint(c,z,1,n,dop,x,y,x1,y1);
else paint(c,z,3,n,dop,x,y,x1,y1);
key = getch();
}
}
// Инициализация динамических массивов
void initial (double* &x,double* &y,double* &x1,double* &y1, int n, int dop) {
x = new double [n+1];
y = new double[n+1];
for (int i = 0 ; i < (n+1);i++) {
y[i] = 0;
x[i] = 0; }
x1 = new double[n*dop+1];
y1 = new double[n*dop+1];
for ( i = 0 ; i < (n*dop+1);i++) {
x1[i] = 0;
y1[i] = 0; }
}
Рефераты и/или содержимое рефератов предназначено исключительно для ознакомления, без целей коммерческого использования. Все права в отношении рефератов и/или содержимого рефератов принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием рефератов и/или содержимого рефератов.