⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1my.h

📁 基于机器学习的自动逻辑推理机。本程序用归结反演策略实现了命题逻辑系统的自动推理。把要解决的问题作为一个要证明的命题
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef Unit1myH
#define Unit1myH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <ComCtrls.hpp>
#include <Menus.hpp>
#include <Dialogs.hpp>

//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TGroupBox *GroupBox1;
        TRadioGroup *RadioGroup1;
        TButton *Submit;
        TButton *Clear;
        TMemo *Memo1;
        TButton *Button3;
        TButton *Button4;
        TButton *Button5;
        TButton *Button6;
        TButton *Button7;
        TButton *Button8;
        TStatusBar *StatusBar1;
        TGroupBox *GroupBox2;
        TButton *Start;
        TButton *Initialize;
        TButton *Help;
        TButton *Exit;
        TRichEdit *RichEdit1;
        TLabel *Label1;
        TLabel *Label2;
        TLabel *Label3;
        TLabel *Label4;
        TLabel *Label5;
        TLabel *Label6;
        TMemo *Memo2;
        TLabel *Label7;
        TLabel *Label8;
        TMainMenu *MainMenu1;
        TMenuItem *File1;
        TMenuItem *Exit1;
        TMenuItem *N1;
        TMenuItem *PrintSetup1;
        TMenuItem *Print1;
        TMenuItem *N2;
        TMenuItem *SaveAs1;
        TMenuItem *Open1;
        TMenuItem *New1;
        TMenuItem *Edit1;
        TMenuItem *Object1;
        TMenuItem *Links1;
        TMenuItem *N3;
        TMenuItem *GoTo1;
        TMenuItem *Replace1;
        TMenuItem *Find1;
        TMenuItem *N4;
        TMenuItem *PasteSpecial1;
        TMenuItem *Paste1;
        TMenuItem *Copy1;
        TMenuItem *Cut1;
        TMenuItem *Help1;
        TMenuItem *About1;
        TMenuItem *Contents1;
        TButton *loade;
        TOpenDialog *OpenDialog1;
        TPrintDialog *PrintDialog1;
        TSaveDialog *SaveDialog10;
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall ClearClick(TObject *Sender);
        void __fastcall Button4Click(TObject *Sender);
        void __fastcall Button5Click(TObject *Sender);
        void __fastcall Button6Click(TObject *Sender);
        void __fastcall Button7Click(TObject *Sender);
        void __fastcall Button8Click(TObject *Sender);
        void __fastcall ExitClick(TObject *Sender);
        void __fastcall SubmitClick(TObject *Sender);
        void __fastcall StartClick(TObject *Sender);
        void __fastcall HelpClick(TObject *Sender);
        void __fastcall InitializeClick(TObject *Sender);
        void __fastcall loadeClick(TObject *Sender);
        void __fastcall About1Click(TObject *Sender);
        void __fastcall New1Click(TObject *Sender);
        void __fastcall Open1Click(TObject *Sender);
        void __fastcall SaveAs1Click(TObject *Sender);
        void __fastcall Print1Click(TObject *Sender);
        void __fastcall Exit1Click(TObject *Sender);
        void __fastcall Contents1Click(TObject *Sender);
private:	// User declarations

public:		// User declarations

        __fastcall TForm1(TComponent* Owner);

};
//----------------------------  ------------------------------------------------
      AnsiString V[200];
      int S[500][200];
      int h[200];
      int P[500][2];

      typedef struct node
        {
         int num;
         struct node *link;
        }T_node;

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


//----------------------------------------------------------------------------
class T_List
{
public:
       T_List(){head=(T_node *)malloc(sizeof(T_node));
                head->link=NULL;
                head->num=-1;};
       void Append(int N);
       int Search(int M);
       void Insert(int pnum,int num);
       void Inverse(int);
       void Delete(int);
        int Read(int);
        T_node *Head(){return head;};

private:
       T_node *head;
};

void T_List::Append(int N)
{
       T_node *p,*q;
       p=head;
       while(p->link!=NULL)
             p=p->link;
       q=(T_node *)malloc(sizeof(T_node));
       q->num=N;
       q->link=NULL;
       p->link=q;
}
int T_List::Search(int M)
{
      T_node *p;
      int k=1;
      p=head;
      while(p->num!=M)
      {
            if(p==NULL)
               return -2;
            p=p->link;
            k++;
      }
      return k-1;
}
void T_List::Insert(int p_num,int v_num)
{
      T_node *p,*q,*r;
      p=q=head;
      while(p_num!=0)
      {
           q=p;
           p=p->link;
           p_num--;
      }
      r=(T_node *)malloc(sizeof(T_node));
      r->num=v_num;
      q->link=r;
      r->link=p;
}
void T_List::Inverse(int p_num)
{
     T_node *p;
     p=head;
     while(p_num!=0)
     {
         p=p->link;
         p_num--;
     }
     if(abs(p->num)>=7)
        { p->num=p->num*(-1);}
     else if(p->num==6)
          p->num=5;
     else if(p->num==5)
          p->num=6;

}
void T_List::Delete(int p_num)
{
      T_node *p,*q;
      p=q=head;
      while(p_num!=0)
      {
           q=p;
           p=p->link;
           p_num--;
      }

      q->link=p->link;
      free(p);

}
int T_List::Read(int p_num)
{
      T_node *p;
      p=head;
      while(p_num!=0)
      {
           p=p->link;
           p_num--;
      }
      return(p->num);
}

//----------------------------------------------------------------------------
class  T_Prepare
{
public:
        int Inspect(AnsiString);
        void Polish(AnsiString);
        int repeat(AnsiString);
        T_node * Semantic();
        void Plot(T_node *);
        T_node *Assign(T_node *hhh);
        int Shell(T_node *h0,int PP);
        void Kill();
private:
        T_List n1;

};
int T_Prepare::repeat(AnsiString ss)
{
    int k=7;
    while(V[k]!="")
    {
         if(V[k]==ss)
            return k;
         k++;
    }
    V[k]=ss;
    return k;
}
void T_Prepare::Kill()
{
        T_node *p,*q;
        p=q=n1.Head();
        while(p->link!=NULL)
        {       q=p;
                p=p->link;
                free(q);
        }
        free(p);
}
//--------------------------------------------------------------------------
void Add_s(T_node *point)
{
     int i=0,j=0;

     while(S[i][0]!=0)
     {     i++;     }
     while(point!=NULL)
     {
           if(point->num!=5)
             { S[i][j]=point->num; j++;  }
           point=point->link;
     }
}


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

//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -