В программе в основной функции задаются параметры массивов (значения функции х и у), Почему то на этих строках показывает ошибку - компилятор меня не понимает((...Может кто подскажет где некорректно сделано..
| Код | #include <iostream> #include <stdio.h> #include <process.h> #include <math.h> #include <stdlib.h>
using namespace std; float *a,*b,**sums,*x,*y; int N,K; //N число заданных точек.К - степень апроксимирующего полинома К<=N
void allomatrix() // память для матрицы { int i,j,k; a=new float[K+1]; b=new float[K+1]; x=new float[N]; y=new float[N]; sums=new float*[K+1]; if(x==NULL||y==NULL||a==NULL||sums==NULL) { cout<<"\nnot.N=%d,K=%d\n"<<N<<K; exit(-1); } for(i=0;i<K+1;i++) { sums[i]=new float[K+1]; if(sums[i]==NULL) { cout<<"\nnot.\n"<<K+1; } } for(i=0;i<K+1;i++) { a[i]=0; b[i]=0; for(j=0;j<K+1;j++) { sums[i][j]=0; } } for(k=0;k<N;k++) { x[k]=0; y[k]=0; }
}
void matrix() { int i=0,j=0,k=0; for (k=0;k<N;k++) { cout<<"\n%f"<<x[k]; cout<<"\n%f"<<y[k]; } for(i=0;i<K+1;i++) // расчет сумм многочлена { for(j=0;j<K+1;i++) sums[i][j]=0; for(k=0;k<N;k++) { sums[i][j]+=pow(x[k],i+j); } for(i=0;i<K+1;i++) // расчет свободных членов { for(k=0;k<N;k++) { b[i]+=pow(x[k],i)*y[k]; } } } } void printresult()//печать параметров полинома { int i=0; cout<<"\n"; for(i=0;i<K+1;i++) { printf("a[%d]=%f\n",i,a[i]); }
} int main(void) { int i=0,j=0,k=0; float x[N]= {7.5994575, 9.1972266, 10.5710620, 12.2775046, 13.1669275, 15.0697361, 17.9323175, 20.3235298}; float y[N]= {1.9, 1.91, 1.92, 1.93, 1.94, 1.95,1.96,1.97)}; cout<<"chislo tochek funccii N="<<N; do { cout<<"vvedite stepen polinoma K<N:"<<K; cin>>K; } while(K>=N); allomatrix(); //znachmatrix(); matrix(); printresult();
} |
Модератор: Не забываем пользоваться кнопочкой "Код" |