Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
28.06.2014
Размер:
2.45 Кб
Скачать
//---------------------------------------------------------------------------

#include <vcl.h>
#include <memory.h>

#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
int   QQ[5][3]=
{{0,1,1},
 {1,2,2},
 {2,3,3},
 {3,4,4},
 {4,0,0}};
int   ps[5][3]=
{{0,0,0},
 {1,1,1},
 {2,2,2},
 {0,0,0},
 {1,1,1}};
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        for(int i=0;i<5;i++)
                for(int j=0;j<3;j++)
                {
                        //memcpy(Q,QQ,5*3*sizeof(int));
                        StringGrid1->Cells[j][i] = IntToStr(QQ[i][j]);
                        StringGrid2->Cells[j][i] = IntToStr(ps[i][j]);
                }
}
const char  A[3]={'a','b','c'};

class Automat
{
        public:
        int Q[5][3];
        int q; // текущее состояние
        //int a,k,b;
        Automat(int q_):q(q_)
        {
                for(int i=0;i<5;i++)
                for(int j=0;j<3;j++)
                {
                        memcpy(Q,QQ,5*3*sizeof(int));
                }

        }
        int phi(int k, char a)
        {
                int t=q;
                q=Q[k][a-'a'];
                return t;
        }
        char psi(int k, char a)
        {
                return A[ps[k][a-'a']];
        }

};
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{

        for(int i=0;i<5;i++)
                for(int j=0;j<3;j++)
                {
                        //memcpy(Q,QQ,5*3*sizeof(int));
                        QQ[i][j] = StrToInt(StringGrid1->Cells[j][i]);
                        ps[i][j] = StrToInt(StringGrid2->Cells[j][i]);
                }

        Automat automat(0);
        for(int i=1; i<Memo1->Text.Length()-1; i++)
        {
                Memo2->Text=Memo2->Text+"\r\n("+
                Memo1->Text[i]+", "+
                AnsiString(automat.phi(automat.q,Memo1->Text[i]))+", "+
                AnsiString(automat.psi(automat.q,Memo1->Text[i]))+")";

        }
        Memo2->Text = Memo2->Text + "\r\n";
}
//---------------------------------------------------------------------------

Соседние файлы в папке DMath_lab4
  • #
    28.06.20141.07 Кб14Project1.cpp
  • #
    28.06.201417.71 Кб13Project1.obj
  • #
    28.06.2014876 б13Project1.res
  • #
    28.06.20143.01 Mб13Project1.tds
  • #
    28.06.20144 Кб13Project1.~bpr
  • #
    28.06.20142.45 Кб14Unit1.cpp
  • #
    28.06.201451 б13Unit1.ddp
  • #
    28.06.20142.87 Кб13Unit1.dfm
  • #
    28.06.20141.17 Кб13Unit1.h
  • #
    28.06.2014111.51 Кб13Unit1.obj
  • #
    28.06.20142.46 Кб14Unit1.~cpp