Главная страница
Навигация по странице:

  • //--------------------------------------------------------------------------- include pragma hdrstop include "Unit1.h"

  • //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {

  • StringGrid3->ColCount=CSpinEdit1->Value; StringGrid3->RowCount=CSpinEdit1->Value; StringGrid1->Width=StringGrid1->ColCount*StringGrid1->DefaultColWidth+

  • StringGrid3->Width=StringGrid1->ColCount*StringGrid1->DefaultColWidth+ StringGrid3->ColCount+4;

  • StringGrid2->Height=StringGrid1->RowCount*StringGrid2->DefaultRowHeight+ StringGrid2->RowCount+4; for(j=0;j Value;j++)

  • ListBox1->Items->Add(IntToStr(obj.dazzle1(i))); } //

  • //

  • пример матрицы BuilderCPP. Приклад Дії з динамічними матрицями


    Скачать 93 Kb.
    НазваниеПриклад Дії з динамічними матрицями
    Анкорmatrica
    Дата17.06.2022
    Размер93 Kb.
    Формат файлаdoc
    Имя файлапример матрицы BuilderCPP.doc
    ТипДокументы
    #599379


    ПРИКЛАД: Дії з динамічними матрицями
    Створити клас, який забезпечує генерування та відображення динамічної матриці з випадкових чисел. Додатково методи класу забезпечують перестановку рядків матриці – першого з останнім, другого – з передостаннім і т.д..
    Програмний модуль
    //---------------------------------------------------------------------------

    #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;}

    Table() {if(p) delete [] p;}

    void allocate(int m,int n);

    int get_p(int i,int j) {return p[i][j];}

    int get_row() {return row;}

    int get_col() {return col;}

    void order();

    };
    //распределение памяти

    void Table::allocate(int m,int n)

    {

    row=m; col=n;

    //удаление динамической матрицы для последующено изменения ее размеров

    if(p)delete [] p;
    //распределение памяти для динамической матрицы

    p=new int *[m];

    if(!p)

    {

    Application->MessageBox("Ошибка","Сообщение",MB_OK);

    exit(1);

    }
    int i,j;

    for(i=0;i
    p[i]=new int [n];
    //формирование динамической матрицы

    for(i=0;i
    for(j=0;j
    p[i][j]=50-random(101);

    }
    //перестановка строк матрицы

    void Table::order()

    {

    int i,j,c;
    for(i=0;i
    for(j=0;j
    {c=p[i][j]; p[i][j]=p[row-1-i][j]; p[row-1-i][j]=c;}

    }
    //создание объекта

    Table ob;
    TForm1 *Form1;

    //---------------------------------------------------------------------------

    __fastcall TForm1::TForm1(TComponent* Owner)

    : TForm(Owner)

    {

    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button1Click(TObject *Sender)

    {

    Close();

    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button2Click(TObject *Sender)

    {

    randomize();

    ob.allocate(CSpinEdit1->Value,CSpinEdit2->Value);

    int i,j;
    //установка количества строк и столбцов исходной матрицы

    StringGrid1->ColCount=CSpinEdit2->Value;

    StringGrid1->RowCount=CSpinEdit1->Value;
    //установка количества строк и столбцов полученной матрицы

    StringGrid2->ColCount=CSpinEdit2->Value;

    StringGrid2->RowCount=CSpinEdit1->Value;
    //установка рамеров исходной матрицы

    StringGrid1->Width=StringGrid1->ColCount*StringGrid1->DefaultColWidth +

    StringGrid1->ColCount+4;

    StringGrid1->Height=StringGrid1->RowCount*StringGrid1

    ->DefaultRowHeight+StringGrid1->RowCount+4;
    //установка рамеров преобразованной матрицы

    StringGrid2->Width=StringGrid2->ColCount*StringGrid2->DefaultColWidth +

    StringGrid2->ColCount+4;

    StringGrid2->Height=StringGrid2->RowCount*StringGrid2

    ->DefaultRowHeight+StringGrid2->RowCount+4;
    //установка начального положения исходной матрицы

    StringGrid1->Left=(Form1->Width-StringGrid1->Width)/8;
    //установка начального положения выходной матрицы

    StringGrid2->Left=Form1->Width/2+(Form1->Width-StringGrid1->Width)/14;
    //заполнение матрицы StringGrid1

    for(j=0;jValue;j++)

    for(i=0;iValue;i++)

    //эта команда выводит элемент матрицы в таблицу,j - i потому что в StringGrid наоборот

    StringGrid1->Cells[j][i]=IntToStr(ob.get_p(i,j));

    //----------------------------

    Button3->Enabled=true; //разрешон доступ к кнопке Button3
    //очистка матрицы StringGrid2

    for(j=0;jValue;j++)

    for(i=0;iValue;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;}

    klas() {if(mat)delete[]mat;}

    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;jValue;j++)

    for(i=0;iValue;i++)

    StringGrid1->Cells[j][i]=IntToStr(obj.get_mat(i,j));

    for(i=0;iValue;i++)

    ListBox1->Items->Add(IntToStr(obj.dazzle1(i)));
    }

    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)

    {

    exit(1);

    }

    //---------------------------------------------------------------------------


    написать администратору сайта