пример матрицы BuilderCPP. Приклад Дії з динамічними матрицями
Скачать 93 Kb.
|
klas() {if(mat)delete[]mat;}ПРИКЛАД: Дії з динамічними матрицями Створити клас, який забезпечує генерування та відображення динамічної матриці з випадкових чисел. Додатково методи класу забезпечують перестановку рядків матриці – першого з останнім, другого – з передостаннім і т.д.. Програмний модуль //--------------------------------------------------------------------------- #include #pragma hdrstop #include "UnitTab.h" #pragma package(smart_init) #pragma link "CSPIN" #pragma resource "*.dfm" //определение класса class Table{ int **p; int row,col; public: Table() {p=NULL;} void stv_mat(int n); int get_row(){return row;} int get_col() {return col;} int dazzle1(int i); int dazzle2(int i); void mass_heal(); int get_mat(int i,int j){return mat[i][j];}; }; void klas::stv_mat(int n) { row=n;col=n; if(mat)delete []mat; mat=new int *[n]; if (!mat) { Application->MessageBox("Error","Message",MB_OK); exit(1); } int i,j; for (i=0;i mat[i]=new int [n]; for(i=0;i for(j=0;j mat[i][j]=random(10)-6; } //----------------- } klas obj; TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int i,j; randomize(); ListBox1->Clear(); obj.stv_mat(CSpinEdit1->Value); StringGrid1->ColCount=CSpinEdit1->Value; StringGrid1->RowCount=CSpinEdit1->Value; StringGrid2->ColCount=CSpinEdit1->Value; StringGrid2->RowCount=CSpinEdit1->Value; StringGrid3->ColCount=CSpinEdit1->Value; StringGrid3->RowCount=CSpinEdit1->Value; StringGrid1->Width=StringGrid1->ColCount*StringGrid1->DefaultColWidth+ StringGrid1->ColCount+4; StringGrid1->Height=StringGrid1->RowCount*StringGrid1->DefaultRowHeight+ StringGrid1->RowCount+4; StringGrid3->Width=StringGrid1->ColCount*StringGrid1->DefaultColWidth+ StringGrid3->ColCount+4; StringGrid3->Height=StringGrid1->RowCount*StringGrid1->DefaultRowHeight+ StringGrid3->RowCount+4; StringGrid2->Width=StringGrid1->ColCount*StringGrid2->DefaultColWidth+ StringGrid2->ColCount+4; StringGrid2->Height=StringGrid1->RowCount*StringGrid2->DefaultRowHeight+ StringGrid2->RowCount+4; for(j=0;j for(i=0;i StringGrid1->Cells[j][i]=IntToStr(obj.get_mat(i,j)); for(i=0;i ListBox1->Items->Add(IntToStr(obj.dazzle1(i))); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { exit(1); } //--------------------------------------------------------------------------- |
for(i=0;i
//эта команда выводит элемент матрицы в таблицу,j - i потому что в StringGrid наоборот
StringGrid1->Cells[j][i]=IntToStr(ob.get_p(i,j));
//----------------------------
Button3->Enabled=true; //разрешон доступ к кнопке Button3
//очистка матрицы StringGrid2
for(j=0;j
for(i=0;i
StringGrid2->Cells[j][i]=' ';
}
//---------------------------------------------------------------------------_include_pragma_hdrstop_include_"Unit1.h"'>//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ob.order();
int m=ob.get_row(),n=ob.get_col();
int i,j;
//заполнение матрицы StringGrid2
for(j=0;j
for(i=0;i
StringGrid2->Cells[j][i]=IntToStr(ob.get_p(i,j));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Button3->Enabled=false;
}
//---------------------------------------------------------------------------
Результати виконання
Рис. 1 Створення динамічної матриці
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
class klas {
int i,row,col,mini,**mat,**mat2;
float **mat3;
public:
klas() {mat=NULL;}