![]() |
Помогите найти ошибку
Вложений: 1
Матрица с наследованием
Алгоритм нахождения элементов вектора: Сумма элементов непарных рядов матрицы #include <vcl.h> #pragma hdrstop #include <math.h> #include "Unit1.h" #include <vcl.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- typedef float mat [5][5]; typedef float vec [5]; class matr {mat b; int n; int mk; public: matr(int in, int im); void set_b(mat b);}; class vect:public matr {vec d; public: vect(int in,int im); void set_v(mat b, vec d, int n, int mk);}; class func:public vect {public: func (int in, int im); float gfunc(vec d, int n, int mk);}; matr::matr(int in,int im) {n=in; mk=im;} void matr::set_b(mat b) {for(int i=0;i<n;i++) for(int j=0;j<mk;j++) b[i][j]=pow(2,i-j)*x*(fabs(i-4)+2*log*(pow(0.5+(j+1),2)));} vect::vect(int in,int im) :matr(in,im){} void vect::set_v(mat b,vec d,int n,int mk) {for(int i=0;i<n;i++) d[i]=b[i][0]-b[i][4];} func::func(int in,int im) :vect(in,im){} float func::gfunc(vec d,int n,int mk) {float s=0; for(int i=0;i<n;i++) for(int k=0;k<i;k++) s=s+log*(fabs(pow(d[i],3)-(pow(d[k],-2))); return s;} int k=5; int m=5; mat a; vec x; void __fastcall TForm1::FormCreate(TObject *Sender) {SG1->Cells[0][0]="Стлб/Стр"; for(int i=0;i<m;i++) {SG1->Cells[i+1][0]=IntToStr(i)+" столбец"; SG2->Cells[i][0]=IntToStr(i)+" столбец";} for(int j=0;j<k;j++) SG1->Cells[0][j+1]=IntToStr(j)+" строка";} //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) {matr cm(k,m); cm.set_b(a); for(int i=0;i<k;i++) for(int j=0;j<m;j++) SG1->Cells[j+1][i+1]=FloatToStrF(a[i][j],ffFixed,5,3);} //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) {vect cv(k,m); cv.set_v(a,x,k,m); for(int j=0;j<m;j++) SG2->Cells[0][j+1]=FloatToStrF(x[j],ffFixed,5,3);} //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) {func fg(k,m); float g=fg.gfunc(x,k,m); Edit1->Text=FloatToStrF(g,ffFixed,5,3);} //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- На всякий случай выложил файл с формулами. |
кодом оформь. никто себя уважающий эту кашу разбирать не будет
|
Дело в том, что мы изучаем только С++ (до сих пор), собственно я не могу разобраться с вектором
class func:public vect {public: func (int in, int im); float gfunc(vec d, int n, int mk);}; matr::matr(int in,int im) {n=in; mk=im;} void matr::set_b(mat b) {for(int i=0;i<n;i++) for(int j=0;j<mk;j++) b[i][j]=pow(2,i-j)*x*(fabs(i-4)+2*log*(pow(0.5+(j+1),2)));} И в этих строчках все время выбивается ошибка |
Bokslaitner, передавай преподавателю привет, и скажи, чтобы он строже относился к оформлению кода.
Где комментарии в коде?? Какая ошибка? Разбивай сложные строки на несколько строк, вводи дополнительные переменные, отладочные выводы промежуточных значений переменных, смотри, где она "спотыкается". Я так понимаю, среда разработки C++Builder. В нем должен быть неплохой отладчик. Выполняй трассировку программы. |
Время: 19:16. |
Время: 19:16.
© OSzone.net 2001-