Расчетно-графическая работа по программированию — страница 4
res (x,y); for (int i=0; i<x; i++) for (int j=0; j<y; j++) { res.matr[i][j].chisl=number.chisl*matr[i][j].chisl; res.matr[i][j].znamen=number.znamen*matr[i][j].znamen; } return res; } //------------------------------------- matrix matrix::operator* (int num) { matrix res (x,y); for (int i=0; i<x; i++) for (int j=0; j<y; j++) { res.matr[i][j].chisl=num*matr[i][j].chisl; res.matr[i][j].znamen=matr[i][j].znamen; } return res; } //------------------------------------- drob matrix::Determinant () { drob det1; drob det2; if (x!=y) MessageBox(NULL,"Не хорошо так делать :)", "ЧАЙНИК!!",MB_ICONEXCLAMATION); if(x==2 && y==2) { det1=matr[0][0]*matr[1][1]; det2=matr[0][1]*matr[1][0]; det=det1-det2; det.videlen(); } if (x==1 && y==1) { det=matr[0][0]; det.videlen(); } return det; } //--------------------------------------------------------------------------- matrix Transposing (matrix &t) { matrix result (t.Gety (), t.Getx()); for (int i=0; i<t.Gety(); i++) for (int j=0; j<t.Getx(); j++) { result.matr[i][j].cel=t.matr[j][i].cel; result.matr[i][j].chisl=t.matr[j][i].chisl; result.matr[i][j].znamen=t.matr[j][i].znamen; } return result; } //--------------------------------------------------------------------------- matrix operator + (matrix &m1, matrix &m2) { matrix res (m1.Getx(),m1.Gety()); for (int i=0; i<res.Getx(); i++) for (int j=0; j<res.Gety(); j++) { if (m1.matr[i][j].znamen==m2.matr[i][j].znamen && m1.matr[i][j].znamen!=0) { res.matr[i][j].chisl=m1.matr[i][j].chisl+m2.matr[i][j].chisl; res.matr[i][j].znamen=m1.matr[i][j].znamen; } else { // res.matr[i][j].cel=m1.matr[i][j].cel+m2.matr[i][j].cel; res.matr[i][j].znamen=m1.matr[i][j].znamen*m2.matr[i][j].znamen; res.matr[i][j].chisl=(m1.matr[i][j].chisl*m2.matr[i][j].znamen)+ (m2.matr[i][j].chisl*m1.matr[i][j].znamen); } } return res; } //--------------------------------------------------------------------------- matrix operator - (matrix &m1, matrix &m2) { matrix res (m1.Getx(),m1.Gety()); for (int i=0; i<res.Getx(); i++) for (int j=0; j<res.Gety(); j++) { if (m1.matr[i][j].znamen==m2.matr[i][j].znamen && m1.matr[i][j].znamen!=0) { res.matr[i][j].chisl=m1.matr[i][j].chisl-m2.matr[i][j].chisl; res.matr[i][j].znamen=m1.matr[i][j].znamen; } else { res.matr[i][j].cel=m1.matr[i][j].cel-m2.matr[i][j].cel; res.matr[i][j].znamen=m1.matr[i][j].znamen*m2.matr[i][j].znamen; res.matr[i][j].chisl=(m1.matr[i][j].chisl*m2.matr[i][j].znamen)- (m2.matr[i][j].chisl*m1.matr[i][j].znamen); } } return res; } //--------------------------------------------------------------------------- drob chislo; int n=1,m=1; int k=1,l=1; //--------------------------------------------------------------------------- __fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner) { chislo.chisl=1; //значение по умолчанию chislo.znamen=2; } //--------------------------------------------------------------------------- void __fastcall TMainForm::SEdit1Change(TObject *Sender) { if (RBtn1->Checked) { n=SEdit1->Text.ToIntDef(5); sg1->RowCount=n; } if (RBtn2->Checked) { m=SEdit1->Text.ToIntDef(5); sg1->ColCount=m; } } //--------------------------------------------------------------------------- void __fastcall TMainForm::SEdit2Change(TObject *Sender) { if (RBtn3->Checked) { k=SEdit2->Text.ToIntDef(5); sg2->RowCount=k; } if (RBtn4->Checked) { l=SEdit2->Text.ToIntDef(5); sg2->ColCount=l; } } //--------------------------------------------------------------------------- void __fastcall TMainForm::RBtn1Click(TObject *Sender) { SEdit1->Text=IntToStr(1); } //--------------------------------------------------------------------------- void __fastcall TMainForm::RBtn2Click(TObject *Sender) { SEdit1->Text=IntToStr(1); } //--------------------------------------------------------------------------- void __fastcall TMainForm::RBtn3Click(TObject *Sender) { SEdit2->Text=IntToStr(1); } //--------------------------------------------------------------------------- void __fastcall TMainForm::RBtn4Click(TObject *Sender) { SEdit2->Text=IntToStr(1); } //--------------------------------------------------------------------------- void __fastcall TMainForm::Btn1Click(TObject *Sender) { Application->Terminate(); } //--------------------------------------------------------------------------- void __fastcall TMainForm::Btn2Click(TObject *Sender) { Analisation ob,ob1; matrix first (n,m); matrix second (k,l); first.Read(sg1,ob); second.Read(sg2,ob1); matrix res=Transposing(first);
Похожие работы
- Рефераты
- Рефераты