文法分析中推导的建立(带一点点美化:))
来源:互联网 发布:vivo清除所有数据后果 编辑:程序博客网 时间:2024/05/16 12:49
开发环境是Win-TC1.91版,Win-TC的兼容性真不好说呢~~~~~~~~~
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#define maxsize 15
#define closegr closegraph
struct RuleNode /*存储规则右边的数据结构*/
{
char symbol;
struct RuleNode *nextRule;
struct RuleNode *next;
};
struct RuleBegin /*存储规则左边的数据结构*/
{
char beginsymbol;
struct RuleNode *equal;
};
struct Infer /*推导过程中的存储结构*/
{
char symbol;
struct Infer *next;
};
struct InferBegin /*指向推导过程中的得出的各个表达式*/
{
struct Infer *equal;
struct InferBegin *next;
};
void RuleBuilder(struct RuleBegin *Rule) /*对每一条规则进行存储*/
{
struct RuleNode *newRule;
struct RuleNode *nowRule;
struct RuleNode *firstRule;
char input;
printf("/tPlease input the derivative rule with the end #:");
input=getchar();
input=getchar();
Rule->beginsymbol=input;
input=getchar();
input=getchar();
newRule=(struct RuleNode*)malloc(sizeof(struct RuleNode));
newRule->symbol=input;
Rule->equal=newRule;
firstRule=newRule;
nowRule=newRule;
newRule=(struct RuleNode*)malloc(sizeof(struct RuleNode));
nowRule->next=newRule;
input=getchar();
while(input!='#')
{
if(input!='|');
{
newRule->symbol=input;
nowRule=newRule;
newRule=(struct RuleNode*)malloc(sizeof(struct RuleNode));
nowRule->next=newRule;
}
if(input=='|')
{
nowRule->next=NULL;
newRule=(struct RuleNode*)malloc(sizeof(struct RuleNode));
firstRule->nextRule=newRule;
firstRule=newRule;
}
input=getchar();
}
newRule->next=NULL;
firstRule->nextRule=NULL;
}
void RuleShow(struct RuleBegin *Rule[],int n) /*对规则进行输出*/
{
struct RuleNode *nextRule;
struct RuleNode *firstRule;
int i;
for(i=0;i<n;i++)
{
printf("/n/t");
printf("%c::=",Rule[i]->beginsymbol);
nextRule=Rule[i]->equal;
firstRule=nextRule;
while(nextRule->next!=NULL)
{
printf("%c",nextRule->symbol);
nextRule=nextRule->next;
}
while(firstRule->nextRule!=NULL)
{
printf("|");
firstRule=firstRule->nextRule;
nextRule=firstRule;
while(nextRule->next!=NULL)
{
printf("%c",nextRule->symbol);
nextRule=nextRule->next;
}
}
}
}
void JudgeThingInput(struct InferBegin *goal) /*输入目标表达式*/
{
struct Infer *p,*q,*temp;
char c;
printf("/n/tPlease input the string with the end #:");
c=getchar(); /*输入中的一些修正*/
c=getchar();
p=(struct Infer*)malloc(sizeof(struct Infer));
goal->equal=p;
while(c!='#')
{
p->symbol=c;
q=(struct Infer*)malloc(sizeof(struct Infer));
p->next=q;
temp=p;
p=q;
c=getchar();
}
temp->next=NULL;
}
struct RuleNode *IsChoose(struct RuleBegin *Rule) /*对一条推导规则是否有分支进行判断并提供用户以选择,返回应该使用的规则*/
{
struct RuleNode *begin;
struct RuleNode *choice[maxsize];
struct RuleNode *temp;
int control=1;
int ch;
begin=Rule->equal;
if(begin->nextRule==NULL)
{
return begin;
}
else
{
while(begin!=NULL)
{
printf("%d.",control);
choice[control]=begin;
temp=choice[control];
printf("%c=>",Rule->beginsymbol);
while(temp->next!=NULL)
{
printf("%c",temp->symbol);
temp=temp->next;
}
printf("/n");
begin=begin->nextRule;
control++;
}
printf("Please input your choice:/t");
scanf("%d",&ch);
return choice[ch];
}
}
int IsFinal(char c,struct RuleBegin *Rule[],int RuleNumber) /*判断一个符号是不是终结符号,0表示不是,1表示是*/
{
int i;
for(i=0;i<RuleNumber;i++)
{
if(c==Rule[i]->beginsymbol)
{
return 0;
}
}
return 1;
}
int IsAllFinal(struct InferBegin *c,struct RuleBegin *Rule[],int RuleNumber) /*判断是否已经全部是终端结点,0表示不是,1表示是*/
{
struct Infer *see;
int i;
see=c->equal;
while(c!=NULL)
{
i=IsFinal(see->symbol,Rule,RuleNumber);
if(i==0) return 0;
see=see->next;
}
return 1;
}
void InferShow(struct InferBegin *infer,struct Infer *color) /*输出推导的过程*/
{
struct Infer *show;
int i=0;
show=infer->equal;
printf("%c",show->symbol);
while(infer->next!=NULL)
{
infer=infer->next;
i++;
if(i%3==0)
{
printf("/n");
}
printf("=>");
show=infer->equal;
while(show!=NULL)
{
printf("%c",show->symbol);
show=show->next;
}
}
printf("/n");
}
void GoalShow(struct InferBegin *infer) /*输出要判断的式子*/
{
struct Infer *show;
show=infer->equal;
printf("The goal is:");
while(show!=NULL)
{
printf("%c",show->symbol);
show=show->next;
}
}
struct Infer *Compare(struct InferBegin *a,struct InferBegin *b) /*b是要判断的字符串,比较当前推倒过程中得到的式子是否与目标相同,返回不同的点的真正*/
{
struct Infer *A,*B;
B=b->equal;
A=a->equal;
while(A->symbol==B->symbol)
{
if(A->next==NULL||B->next==NULL)
{
break;
}
A=A->next;
B=B->next;
}
return A;
}
void nizhi(struct InferBegin *head)
{
struct Infer *p,*s;
p=head->equal;
head->equal=NULL;
while(p!=NULL)
{
s=p->next;
p->next=head->equal;
head->equal=p;
p=s;
}
}
struct Infer *RightCompare(struct InferBegin *a,struct InferBegin *b) /*与上面的函数不同之处在于上面是最左推导的模块,这个是最右推导的模块*/
{
struct Infer *goal;
nizhi(a);
nizhi(b);
goal=Compare(a,b);
nizhi(a);
nizhi(b);
return goal;
}
struct Infer *FindChar(struct InferBegin *a,struct RuleBegin *Rule[],int RuleNumber) /*一般推导选定推的字符*/
{
char choose[maxsize];
struct Infer *find;
char c;
int i=0,j,k;
find=a->equal;
while(find!=NULL)
{
if(IsFinal(find->symbol,Rule,RuleNumber)==0)
{
choose[i]=find->symbol;
i++;
}
find=find->next;
}
k=0;
printf("Please choose the char you want to Infer:");
for(j=0;j<i;j++)
{
printf("%d.%c/t",j,choose[j]);
}
printf("/nPlease input your choice:");
scanf("%d",&j);
find=a->equal;
while(find!=NULL)
{
if(k==j)
{
break;
}
find=find->next;
if(IsFinal(find->symbol,Rule,RuleNumber)==0)
{
k++;
}
}
return find;
}
int TheSame(struct InferBegin *a,struct InferBegin *b) /*判断最后得到的式子是否是给定的式子,1为是,0为不是*/
{
struct Infer *A,*B;
B=b->equal;
A=a->equal;
while(A->symbol==B->symbol)
{
if(A==NULL||B==NULL)
{
break;
}
A=A->next;
B=B->next;
}
if(A==NULL&&B==NULL)
{
return 1;
}
else
{
return 0;
}
}
struct RuleBegin *FindRule(char c,struct RuleBegin *Rule[],int RuleNumber) /*指出要应用哪一条规则*/
{
int i;
for(i=0;i<RuleNumber;i++)
{
if(c==Rule[i]->beginsymbol)
{
return Rule[i];
}
}
}
void drawmat(char *mat,int matsize,int x,int y,int color)
/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/
{
int i, j, k, n;
n = (matsize - 1) / 8 + 1;
for(j = 0; j < matsize; j++)
for(i = 0; i < n; i++)
for(k = 0;k < 8; k++)
if(mat[j * n + i] & (0x80 >> k)) /*测试为1的位则显示*/
putpixel(x + i * 8 + k, y + j, color);
}
void Infer(struct InferBegin *goal,struct RuleBegin *Rule[],int RuleNumber,int n,char pr[],int gdriver,int gmode) /*推导的实现,当c为1时候,最左推导,2时,最右推导,3时,一般推导*/
{
struct InferBegin *inferbegin,*start,*next;
struct Infer *infer,*see,*second,*p,*q,*find;
struct RuleNode *use;
struct RuleBegin *choose;
int judge,i,print;
char c;
char he48H[]={
/* 以下是 '合' 的 48点阵华文新魏 字模,288 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
0x03,0xC0,0x00,0x00,0x00,0x00,0x03,0x80,
0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,
0x0F,0x80,0x00,0x00,0x00,0x00,0x1F,0xC0,
0x00,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,
0x00,0x00,0x3F,0xF0,0x00,0x00,0x00,0x00,
0x70,0x38,0x00,0x00,0x00,0x00,0x70,0x1C,
0x00,0x00,0x00,0x00,0xE0,0x0E,0x00,0x00,
0x00,0x01,0xC0,0x03,0x00,0x00,0x00,0x01,
0x80,0x01,0x80,0x00,0x00,0x03,0x00,0x00,
0x40,0x00,0x00,0x06,0x00,0x30,0x30,0x00,
0x00,0x04,0x07,0xF8,0x18,0x00,0x00,0x08,
0x3F,0xF8,0x0C,0x00,0x00,0x18,0x7F,0xFC,
0x0F,0x80,0x00,0x30,0x7F,0x00,0x0F,0xE0,
0x00,0x70,0x40,0x00,0x0F,0xF8,0x00,0xE0,
0x00,0x00,0x01,0xFC,0x01,0xE0,0x00,0x00,
0x00,0x00,0x03,0xC0,0x00,0x70,0x00,0x00,
0x07,0x80,0x07,0xFE,0x00,0x00,0x1C,0x00,
0x3F,0xFF,0x80,0x00,0x00,0x01,0xF8,0x0F,
0x80,0x00,0x00,0x03,0xE0,0x0F,0x80,0x00,
0x00,0x03,0xE0,0x0F,0x00,0x00,0x00,0x01,
0xE0,0x0F,0x00,0x00,0x00,0x01,0xE0,0x0E,
0x00,0x00,0x00,0x01,0xE0,0x0C,0x00,0x00,
0x00,0x00,0xE0,0x1C,0x00,0x00,0x00,0x00,
0xFF,0xFC,0x00,0x00,0x00,0x00,0x7F,0xFC,
0x00,0x00,0x00,0x00,0x7F,0xF0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '法' 的 48点阵华文新魏 字模,288 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,
0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,
0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x08,0x00,0x38,0x00,0x00,
0x00,0x0C,0x00,0x38,0x00,0x00,0x00,0x0E,
0x00,0x38,0x00,0x00,0x00,0x0F,0x00,0x3B,
0xC0,0x00,0x00,0x0F,0x00,0x3F,0xC0,0x00,
0x00,0x0F,0x81,0xFF,0xC0,0x00,0x00,0x01,
0x8F,0xFF,0x00,0x00,0x00,0x00,0x07,0xFE,
0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,
0x00,0x00,0x02,0x38,0x00,0x00,0x00,0x40,
0x00,0x38,0x07,0x00,0x00,0xE0,0x00,0x79,
0xFF,0x80,0x00,0xE0,0x00,0x7F,0xFF,0x80,
0x00,0xC0,0x01,0xFF,0xFF,0xC0,0x00,0x80,
0x1F,0xFE,0x00,0x80,0x00,0x81,0xFF,0xF8,
0x00,0x00,0x00,0x00,0xE0,0xF0,0x00,0x00,
0x00,0x00,0x80,0xE0,0x00,0x00,0x01,0x00,
0x01,0xC0,0x00,0x00,0x01,0x00,0x01,0xC0,
0x80,0x00,0x01,0x01,0x03,0x82,0x08,0x00,
0x01,0x01,0x03,0x84,0x08,0x00,0x00,0x02,
0x07,0xFC,0x0C,0x00,0x00,0x06,0x0F,0xFC,
0x0C,0x00,0x00,0x0C,0x7F,0xF8,0x7C,0x00,
0x00,0xFC,0x3F,0xF0,0x3E,0x00,0x00,0x78,
0x3F,0x00,0x1C,0x00,0x00,0x70,0x18,0x00,
0x0C,0x00,0x00,0x20,0x00,0x00,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char fei48H[]={
/* 以下是 '非' 的 48点阵华文新魏 字模,288 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,
0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,
0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,
0x00,0x00,0x0C,0x38,0x00,0x00,0x00,0x00,
0x0C,0x38,0x00,0x00,0x00,0x00,0x0C,0x38,
0x00,0x00,0x00,0x00,0x0C,0x38,0x0C,0x00,
0x00,0x00,0x0C,0x39,0xF8,0x00,0x00,0x00,
0x0C,0x3F,0xE0,0x00,0x00,0x07,0xFC,0x3F,
0x00,0x00,0x00,0x07,0xFC,0x3C,0x00,0x00,
0x00,0x00,0x1C,0x38,0x00,0x00,0x00,0x00,
0x0C,0x38,0x00,0x00,0x00,0x00,0x08,0x38,
0x00,0x00,0x00,0x00,0x18,0x38,0xF0,0x00,
0x00,0x03,0xF8,0x3F,0xF0,0x00,0x00,0x0F,
0x88,0x3F,0x80,0x00,0x00,0x0C,0x0C,0x3E,
0x00,0x00,0x00,0x00,0x0C,0x38,0x00,0x00,
0x00,0x00,0x18,0x38,0x00,0x00,0x00,0x00,
0x78,0x38,0x00,0x00,0x00,0x01,0xF8,0x38,
0x0F,0x00,0x00,0x07,0xD8,0x3F,0xFF,0x00,
0x00,0x0F,0x18,0x3F,0xFF,0x80,0x00,0x3E,
0x18,0x3F,0xFF,0xC0,0x00,0x3C,0x18,0x38,
0x00,0x00,0x00,0x10,0x38,0x38,0x00,0x00,
0x00,0x00,0x70,0x38,0x00,0x00,0x00,0x00,
0x70,0x38,0x00,0x00,0x00,0x00,0xE0,0x38,
0x00,0x00,0x00,0x01,0x80,0x38,0x00,0x00,
0x00,0x06,0x00,0x38,0x00,0x00,0x00,0x00,
0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,
0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,
0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '法' 的 48点阵华文新魏 字模,288 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,
0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,
0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,
0x00,0x00,0x00,0x08,0x00,0x38,0x00,0x00,
0x00,0x0C,0x00,0x38,0x00,0x00,0x00,0x0E,
0x00,0x38,0x00,0x00,0x00,0x0F,0x00,0x3B,
0xC0,0x00,0x00,0x0F,0x00,0x3F,0xC0,0x00,
0x00,0x0F,0x81,0xFF,0xC0,0x00,0x00,0x01,
0x8F,0xFF,0x00,0x00,0x00,0x00,0x07,0xFE,
0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,
0x00,0x00,0x02,0x38,0x00,0x00,0x00,0x40,
0x00,0x38,0x07,0x00,0x00,0xE0,0x00,0x79,
0xFF,0x80,0x00,0xE0,0x00,0x7F,0xFF,0x80,
0x00,0xC0,0x01,0xFF,0xFF,0xC0,0x00,0x80,
0x1F,0xFE,0x00,0x80,0x00,0x81,0xFF,0xF8,
0x00,0x00,0x00,0x00,0xE0,0xF0,0x00,0x00,
0x00,0x00,0x80,0xE0,0x00,0x00,0x01,0x00,
0x01,0xC0,0x00,0x00,0x01,0x00,0x01,0xC0,
0x80,0x00,0x01,0x01,0x03,0x82,0x08,0x00,
0x01,0x01,0x03,0x84,0x08,0x00,0x00,0x02,
0x07,0xFC,0x0C,0x00,0x00,0x06,0x0F,0xFC,
0x0C,0x00,0x00,0x0C,0x7F,0xF8,0x7C,0x00,
0x00,0xFC,0x3F,0xF0,0x3E,0x00,0x00,0x78,
0x3F,0x00,0x1C,0x00,0x00,0x70,0x18,0x00,
0x0C,0x00,0x00,0x20,0x00,0x00,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
char zuo32K[]={
/* 以下是 '最' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x00,0x00,0x00,0xCC,0x00,
0x00,0x60,0x0C,0x00,0x00,0x40,0x08,0x00,
0x00,0x01,0x80,0x00,0x00,0x00,0x10,0x00,
0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xC0,0x00,0x07,0x80,0x00,
0x01,0x80,0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x08,0x04,0x00,0x00,0x08,0x26,0x00,
0x00,0x08,0x06,0x00,0x00,0x08,0x04,0x00,
0x00,0x08,0x00,0x00,0x01,0xC8,0x08,0x00,
0x00,0x08,0x10,0x00,0x00,0x08,0x18,0x00,
0x00,0x08,0x24,0x00,0x00,0x48,0x42,0x00,
0x02,0x08,0x01,0x80,0x18,0x08,0x00,0xF0,
0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '左' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,
0x00,0x00,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
0x00,0x01,0x00,0x00,0x00,0x03,0x0F,0x80,
0x00,0x02,0xF0,0x00,0x00,0x1E,0x00,0x00,
0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,
0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x08,0x00,0x00,0x00,0x10,0x1E,0x00,
0x00,0x01,0xE0,0x00,0x00,0x20,0x40,0x00,
0x00,0x40,0x60,0x00,0x00,0x00,0x60,0x00,
0x00,0x80,0x60,0x00,0x01,0x00,0x60,0x00,
0x02,0x00,0x60,0x00,0x00,0x00,0x61,0xC0,
0x00,0x00,0xFF,0xF0,0x00,0xF8,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '推' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x00,0x00,0x00,0x40,0x30,0x00,
0x00,0x40,0x20,0x00,0x00,0x40,0x20,0x00,
0x00,0x40,0x01,0x00,0x00,0x40,0x40,0x80,
0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,
0x00,0x51,0x03,0x80,0x00,0xC0,0x00,0x00,
0x0C,0x40,0x81,0x00,0x00,0x40,0x81,0x00,
0x00,0x40,0x80,0xC0,0x00,0x40,0x88,0x00,
0x00,0x40,0x80,0x00,0x00,0x40,0x80,0x00,
0x00,0xC0,0x81,0xE0,0x02,0x40,0x88,0x00,
0x0C,0x40,0x80,0x00,0x70,0x40,0x80,0x00,
0x00,0x40,0x80,0x00,0x00,0x40,0x81,0xFC,
0x00,0x40,0x80,0x00,0x00,0x40,0x80,0x00,
0x01,0xC0,0x80,0x00,0x00,0xC0,0x80,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '导' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,
0x00,0x40,0x20,0x00,0x00,0x40,0x00,0x00,
0x00,0x40,0x40,0x00,0x00,0x40,0xC0,0x00,
0x00,0x7E,0x00,0x00,0x00,0x40,0x00,0x00,
0x00,0x40,0x00,0x00,0x00,0x00,0x02,0x00,
0x00,0x20,0x07,0x00,0x00,0x1F,0xFC,0x00,
0x00,0x00,0xC0,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x40,0x60,0x00,0x00,0x7F,0xF8,
0x00,0x3C,0x40,0x00,0x3E,0x00,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x00,
0x00,0x60,0x40,0x00,0x00,0x20,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,
0x00,0x03,0xC0,0x00,0x00,0x01,0xC0,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
};
char you32K[]={
/* 以下是 '最' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x00,0x00,0x00,0xCC,0x00,
0x00,0x60,0x0C,0x00,0x00,0x40,0x08,0x00,
0x00,0x01,0x80,0x00,0x00,0x00,0x10,0x00,
0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xC0,0x00,0x07,0x80,0x00,
0x01,0x80,0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x08,0x04,0x00,0x00,0x08,0x26,0x00,
0x00,0x08,0x06,0x00,0x00,0x08,0x04,0x00,
0x00,0x08,0x00,0x00,0x01,0xC8,0x08,0x00,
0x00,0x08,0x10,0x00,0x00,0x08,0x18,0x00,
0x00,0x08,0x24,0x00,0x00,0x48,0x42,0x00,
0x02,0x08,0x01,0x80,0x18,0x08,0x00,0xF0,
0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '右' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,
0x00,0x00,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,
0x00,0x03,0x1F,0xF0,0x00,0x07,0xC0,0x00,
0x03,0xE6,0x00,0x00,0x04,0x04,0x00,0x00,
0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,
0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,
0x00,0x10,0x06,0x00,0x00,0x20,0xC3,0x80,
0x00,0x58,0x03,0x00,0x00,0x98,0x03,0x00,
0x00,0x08,0x02,0x00,0x00,0x08,0x02,0x00,
0x00,0x08,0x02,0x00,0x08,0x08,0x04,0x00,
0x00,0x08,0x7E,0x00,0x00,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '推' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x00,0x00,0x00,0x40,0x30,0x00,
0x00,0x40,0x20,0x00,0x00,0x40,0x20,0x00,
0x00,0x40,0x01,0x00,0x00,0x40,0x40,0x80,
0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,
0x00,0x51,0x03,0x80,0x00,0xC0,0x00,0x00,
0x0C,0x40,0x81,0x00,0x00,0x40,0x81,0x00,
0x00,0x40,0x80,0xC0,0x00,0x40,0x88,0x00,
0x00,0x40,0x80,0x00,0x00,0x40,0x80,0x00,
0x00,0xC0,0x81,0xE0,0x02,0x40,0x88,0x00,
0x0C,0x40,0x80,0x00,0x70,0x40,0x80,0x00,
0x00,0x40,0x80,0x00,0x00,0x40,0x81,0xFC,
0x00,0x40,0x80,0x00,0x00,0x40,0x80,0x00,
0x01,0xC0,0x80,0x00,0x00,0xC0,0x80,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '导' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,
0x00,0x40,0x20,0x00,0x00,0x40,0x00,0x00,
0x00,0x40,0x40,0x00,0x00,0x40,0xC0,0x00,
0x00,0x7E,0x00,0x00,0x00,0x40,0x00,0x00,
0x00,0x40,0x00,0x00,0x00,0x00,0x02,0x00,
0x00,0x20,0x07,0x00,0x00,0x1F,0xFC,0x00,
0x00,0x00,0xC0,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x40,0x60,0x00,0x00,0x7F,0xF8,
0x00,0x3C,0x40,0x00,0x3E,0x00,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x00,
0x00,0x60,0x40,0x00,0x00,0x20,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,
0x00,0x03,0xC0,0x00,0x00,0x01,0xC0,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
};
char yi32K[]={
/* 以下是 '一' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0x00,0x00,0x3F,0xF8,
0x01,0xFF,0x80,0x00,0x0F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '般' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x40,0x02,0x00,
0x00,0x00,0x66,0x00,0x00,0x00,0x42,0x00,
0x00,0x18,0x40,0x00,0x02,0x08,0x40,0x00,
0x02,0x08,0x40,0x00,0x02,0x08,0x42,0x00,
0x02,0x08,0x01,0xE0,0x02,0x48,0x80,0x00,
0x02,0x48,0x00,0x00,0x02,0x08,0x00,0x00,
0x02,0x18,0x06,0x00,0x03,0x08,0x43,0x00,
0x72,0x08,0x02,0x00,0x00,0x08,0x02,0x00,
0x00,0x48,0x02,0x00,0x04,0x48,0x24,0x00,
0x04,0x08,0x0C,0x00,0x00,0x08,0x08,0x00,
0x00,0x08,0x12,0x00,0x00,0x08,0x23,0x00,
0x00,0x08,0x01,0xE0,0x00,0x18,0x00,0xFC,
0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '推' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x40,0x00,0x00,0x00,0x40,0x30,0x00,
0x00,0x40,0x20,0x00,0x00,0x40,0x20,0x00,
0x00,0x40,0x01,0x00,0x00,0x40,0x40,0x80,
0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,
0x00,0x51,0x03,0x80,0x00,0xC0,0x00,0x00,
0x0C,0x40,0x81,0x00,0x00,0x40,0x81,0x00,
0x00,0x40,0x80,0xC0,0x00,0x40,0x88,0x00,
0x00,0x40,0x80,0x00,0x00,0x40,0x80,0x00,
0x00,0xC0,0x81,0xE0,0x02,0x40,0x88,0x00,
0x0C,0x40,0x80,0x00,0x70,0x40,0x80,0x00,
0x00,0x40,0x80,0x00,0x00,0x40,0x81,0xFC,
0x00,0x40,0x80,0x00,0x00,0x40,0x80,0x00,
0x01,0xC0,0x80,0x00,0x00,0xC0,0x80,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '导' 的 32点阵楷体_GB2312 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,
0x00,0x40,0x20,0x00,0x00,0x40,0x00,0x00,
0x00,0x40,0x40,0x00,0x00,0x40,0xC0,0x00,
0x00,0x7E,0x00,0x00,0x00,0x40,0x00,0x00,
0x00,0x40,0x00,0x00,0x00,0x00,0x02,0x00,
0x00,0x20,0x07,0x00,0x00,0x1F,0xFC,0x00,
0x00,0x00,0xC0,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x40,0x60,0x00,0x00,0x7F,0xF8,
0x00,0x3C,0x40,0x00,0x3E,0x00,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x00,
0x00,0x60,0x40,0x00,0x00,0x20,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,
0x00,0x03,0xC0,0x00,0x00,0x01,0xC0,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
};
if(n==1)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(zuo32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==2)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(you32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==3)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(yi32K+print*128,32,30+print*31,400,WHITE);
}
}
printf("The derivative process is:/n");
inferbegin=(struct InferBegin*)malloc(sizeof(struct InferBegin));
infer=(struct Infer*)malloc(sizeof(struct Infer));
infer->symbol=Rule[0]->beginsymbol;
c=infer->symbol;
infer->next=NULL;
inferbegin->equal=infer;
start=inferbegin;
if(n==3)
{
see=infer;
}
while(IsAllFinal(inferbegin,Rule,RuleNumber)!=1)
{
if(n==3)
{
c=see->symbol;
}
next=(struct InferBegin*)malloc(sizeof(struct InferBegin));
if(n==1)
{
see=Compare(inferbegin,goal);
}
if(n==2)
{
see=RightCompare(inferbegin,goal);
}
inferbegin->next=next;
infer=(struct Infer*)malloc(sizeof(struct Infer));
next->equal=infer;
p=inferbegin->equal;
next->next=NULL;
if(p!=see)
{
infer->symbol=p->symbol;
while(p->next!=see)
{
p=p->next;
q=(struct Infer*)malloc(sizeof(struct Infer));
infer->next=q;
infer=infer->next;
infer->symbol=p->symbol;
}
}
choose=FindRule(c,Rule,RuleNumber);
use=IsChoose(choose);
second=infer;
while(use->next!=NULL)
{
infer=(struct Infer*)malloc(sizeof(struct Infer));
infer->symbol=use->symbol;
if(p==see)
{
next->equal=infer;
p=p->next;
p=p->next;
second=infer;
}
else
{
second->next=infer;
second=infer;
}
use=use->next;
}
while(see->next!=NULL)
{
see=see->next;
infer=(struct Infer*)malloc(sizeof(struct Infer));
infer->symbol=see->symbol;
second->next=infer;
second=infer;
}
second->next=NULL;
next->next=NULL;
clrscr();
setbkcolor(BLUE);
for(print=0;print<10;print++)
{
drawmat(pr+print*128,32,600,20+print*31,WHITE);
}
if(n==1)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(zuo32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==2)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(you32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==3)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(yi32K+print*128,32,30+print*31,400,WHITE);
}
}
InferShow(start,see);
if(n==2)
{
nizhi(next);
}
p=next->equal;
while(p!=NULL)
{
if(IsFinal(p->symbol,Rule,RuleNumber)==0)
{
c=p->symbol;
break;
}
p=p->next;
}
if(n==2)
{
nizhi(next);
}
inferbegin=inferbegin->next;
judge=TheSame(inferbegin,goal);
if(judge==1)
{
break;
}
find=inferbegin->equal;
i=0;
while(find!=NULL)
{
if(IsFinal(find->symbol,Rule,RuleNumber)==0)
{
i++;
}
find=find->next;
}
if(i==0)
{
break;
}
if(n==3)
{
see=FindChar(next,Rule,RuleNumber);
while(see->symbol=='('||see->symbol=='i'||see->symbol=='*'||see->symbol=='+'||see->symbol=='-'||see->symbol=='/')
{
see=see->next;
}
}
}
judge=TheSame(inferbegin,goal);
if(judge==1)
{
for(print=0;print<2;print++)
{
drawmat(he48H+print*288,48,100+print*47,100,GREEN);
}
if(n==1)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(zuo32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==2)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(you32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==3)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(yi32K+print*128,32,30+print*31,400,WHITE);
}
}
}
else
{
for(print=0;print<2;print++)
{
drawmat(fei48H+print*288,48,100+print*47,100,RED);
}
if(n==1)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(zuo32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==2)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(you32K+print*128,32,30+print*31,400,WHITE);
}
}
if(n==3)
{
setbkcolor(BLUE);
for(print=0;print<4;print++)
{
drawmat(yi32K+print*128,32,30+print*31,400,WHITE);
}
}
}
}
main()
{
int gdriver,gmode;
int i,n,c,p;
struct RuleBegin *Rule[maxsize];
struct InferBegin *goal;
char yu32H[]={
/* 以下是 '语' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,
0x00,0x40,0xFF,0x00,0x00,0xC0,0xFC,0x00,
0x00,0xE0,0x18,0x00,0x00,0x60,0x18,0x00,
0x00,0x00,0x18,0x00,0x00,0x00,0x7F,0x80,
0x00,0x03,0xE7,0x80,0x00,0x40,0x47,0x00,
0x01,0xE0,0x47,0x00,0x1F,0xE0,0x07,0xE0,
0x0F,0xC0,0xFF,0xF0,0x0D,0x81,0xFF,0xF0,
0x00,0x8E,0x00,0x00,0x00,0x80,0x0C,0x00,
0x00,0x80,0xFF,0x00,0x01,0x83,0x83,0x80,
0x01,0x93,0x83,0x00,0x00,0xE1,0x86,0x00,
0x00,0xC1,0x8E,0x00,0x00,0x40,0xFE,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '法' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,
0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,
0x00,0x00,0x30,0x00,0x00,0x00,0x20,0x00,
0x00,0x80,0x20,0x00,0x00,0xC0,0x20,0x00,
0x00,0xE0,0x3E,0x00,0x00,0xE0,0xFC,0x00,
0x00,0x03,0xF8,0x00,0x00,0x01,0xE0,0x00,
0x00,0x00,0x60,0x00,0x03,0x00,0x77,0xE0,
0x02,0x00,0x7F,0xE0,0x02,0x07,0xF0,0x00,
0x00,0x18,0x60,0x00,0x00,0x00,0xC0,0x00,
0x04,0x00,0x82,0x00,0x04,0x01,0x80,0x00,
0x00,0x03,0xF0,0x80,0x00,0x47,0xF0,0x80,
0x00,0x8F,0xE1,0xC0,0x03,0x06,0x00,0x80,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '分' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x00,0x00,0x00,0xC0,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x20,0x00,
0x00,0x00,0x10,0x00,0x00,0x0C,0x10,0x00,
0x00,0x08,0x08,0x00,0x00,0x18,0x04,0x00,
0x00,0x10,0x02,0x00,0x00,0x20,0x03,0x00,
0x00,0x20,0x03,0xC0,0x00,0x41,0xFF,0xF0,
0x00,0xCF,0x9C,0xF8,0x01,0x8F,0x0C,0x1E,
0x02,0x03,0x0C,0x00,0x00,0x02,0x08,0x00,
0x00,0x04,0x08,0x00,0x00,0x04,0x18,0x00,
0x00,0x08,0x18,0x00,0x00,0x18,0x30,0x00,
0x00,0x20,0x30,0x00,0x00,0x41,0xE0,0x00,
0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '析' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x60,0x0C,0x00,
0x00,0x60,0x38,0x00,0x00,0x78,0xF0,0x00,
0x00,0xF8,0xC0,0x00,0x0F,0xF0,0x80,0x00,
0x0F,0xE0,0x80,0x00,0x08,0x60,0x87,0xC0,
0x00,0xF0,0xFF,0xC0,0x00,0xF8,0x8C,0x00,
0x01,0xE0,0x0C,0x00,0x03,0x61,0x0C,0x00,
0x04,0x60,0x04,0x00,0x08,0x60,0x04,0x00,
0x10,0x62,0x04,0x00,0x20,0x64,0x04,0x00,
0x00,0x60,0x04,0x00,0x00,0x60,0x04,0x00,
0x00,0x60,0x04,0x00,0x00,0x20,0x04,0x00,
0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,
0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '中' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0xC0,0x00,0x00,0x01,0xC0,0x00,
0x00,0x01,0xC0,0x00,0x00,0x01,0xC0,0x00,
0x00,0x01,0xC0,0x00,0x00,0x01,0xCE,0x00,
0x00,0x03,0xFF,0x80,0x00,0x3C,0x81,0xE0,
0x00,0xE0,0x81,0xE0,0x00,0xE0,0x81,0xC0,
0x00,0xE0,0x81,0x80,0x00,0x60,0x81,0x00,
0x00,0x60,0x9F,0x00,0x00,0x27,0xFF,0x00,
0x00,0x3F,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '推' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x18,0x00,0x00,0x10,0x10,0x00,
0x00,0x10,0x10,0x00,0x00,0x10,0x21,0x80,
0x00,0x10,0x23,0x00,0x00,0x10,0x40,0x00,
0x00,0x10,0x40,0x00,0x00,0x1C,0x80,0xC0,
0x00,0xFC,0x8F,0x80,0x03,0xF1,0xFE,0x00,
0x03,0xB3,0xC6,0x00,0x00,0x35,0x87,0x80,
0x00,0x31,0x9E,0x00,0x00,0x31,0x9E,0x00,
0x00,0xF1,0x87,0x80,0x01,0xB1,0x8F,0x00,
0x03,0x11,0x9E,0x00,0x0E,0x11,0x86,0x00,
0x0C,0x11,0x87,0xF0,0x00,0x11,0x9F,0xF0,
0x00,0x11,0xF0,0x00,0x00,0x71,0x80,0x00,
0x00,0x11,0x80,0x00,0x00,0x01,0x80,0x00,
0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '导' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,
0x00,0x1F,0xF8,0x00,0x00,0x1F,0xF0,0x00,
0x00,0x18,0x30,0x00,0x00,0x18,0x30,0x00,
0x00,0x18,0x40,0x00,0x00,0x18,0x00,0x00,
0x00,0x18,0x00,0x00,0x00,0x18,0x06,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x07,0xF0,0x00,
0x00,0x00,0x70,0x00,0x00,0x00,0x7F,0xE0,
0x00,0x00,0xFF,0xF0,0x00,0x1F,0xF0,0x00,
0x07,0xF0,0x30,0x00,0x00,0x30,0x30,0x00,
0x00,0x18,0x30,0x00,0x00,0x10,0x30,0x00,
0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,
0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,
0x00,0x07,0xF0,0x00,0x00,0x01,0xF0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '的' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0C,0x00,0x00,0x10,0x08,0x00,
0x00,0x18,0x10,0x00,0x00,0x30,0x00,0x00,
0x00,0x60,0x20,0x00,0x00,0xC0,0x40,0x00,
0x00,0x80,0x47,0x80,0x01,0x80,0xFF,0xC0,
0x01,0x04,0x81,0xC0,0x03,0x86,0x00,0xC0,
0x07,0x86,0x00,0xC0,0x01,0xE6,0x30,0xC0,
0x01,0xC6,0x10,0xC0,0x01,0x86,0x00,0xC0,
0x01,0x86,0x00,0x80,0x01,0xE6,0x00,0x80,
0x01,0xE6,0x01,0x80,0x00,0xFE,0x01,0x80,
0x00,0x9C,0x01,0x00,0x00,0x04,0x1F,0x00,
0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '建' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,
0x00,0x00,0x60,0x00,0x00,0x00,0x7E,0x00,
0x00,0x01,0xE2,0x00,0x00,0x00,0x62,0x00,
0x00,0x00,0x67,0x80,0x00,0x30,0xE4,0x40,
0x01,0x98,0x64,0x00,0x00,0x10,0x64,0x00,
0x00,0x00,0xF8,0x00,0x00,0x00,0x60,0x00,
0x00,0x40,0x78,0x00,0x00,0x61,0xE0,0x00,
0x00,0x20,0x60,0x00,0x00,0x20,0x7F,0x00,
0x00,0x23,0xE0,0x00,0x07,0xE0,0x40,0x00,
0x00,0x70,0x40,0x00,0x00,0x47,0x40,0x00,
0x01,0x80,0x60,0x00,0x02,0x00,0x18,0x00,
0x00,0x00,0x0F,0xC0,0x00,0x00,0x07,0xF8,
0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 以下是 '立' 的 32点阵华文新魏 字模,128 byte */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x80,0x00,0x00,0x01,0xC0,0x00,
0x00,0x01,0xC0,0x00,0x00,0x00,0x40,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1C,0x00,0x00,0x00,0xFC,0x00,
0x00,0x3F,0xF0,0x00,0x00,0x1F,0x80,0x00,
0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,
0x00,0x02,0x30,0x00,0x00,0x04,0x30,0x00,
0x00,0x18,0x60,0x00,0x00,0x18,0x40,0x00,
0x00,0x00,0xC0,0x00,0x00,0x01,0xFE,0x40,
0x00,0x03,0xFF,0xE0,0x00,0x1F,0xFF,0xE0,
0x00,0xF0,0x00,0x20,0x06,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
gdriver=DETECT;
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行*/
initgraph(&gdriver, &gmode, "");
initgraph(&gdriver,&gmode,"");
setbkcolor(BLUE);
for(p=0;p<10;p++)
{
drawmat(yu32H+p*128,32,600,20+p*31,WHITE);
}
setcolor(12);
printf("/n/n/t/t/t");
settextstyle(1,0,10);
outtextxy(20,20,"Please input the derivative rule's number:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
Rule[i]=(struct RuleBegin*)malloc(sizeof(struct RuleBegin));
RuleBuilder(Rule[i]);
}
printf("/tThe derivative rule is:");
RuleShow(Rule,n);
goal=(struct InferBegin*)malloc(sizeof(struct InferBegin));
JudgeThingInput(goal);
initgraph(&gdriver,&gmode,"");
setbkcolor(BLUE);
for(p=0;p<10;p++)
{
drawmat(yu32H+p*128,32,600,20+p*31,WHITE);
}
GoalShow(goal);
printf("/n");
printf("Please input the way of derivative:/n1.Left derivative/n2.Right derivative/n3.Normal derivative/t");
scanf("%d",&c);
clrscr();
initgraph(&gdriver,&gmode,"");
setbkcolor(BLUE);
for(p=0;p<10;p++)
{
drawmat(yu32H+p*128,32,600,20+p*31,WHITE);
}
Infer(goal,Rule,n,c,yu32H,gdriver,gmode);
getch();
closegr();
}
- 文法分析中推导的建立(带一点点美化:))
- 数据结构课程设计--------文法分析中推导的建立(第一天进度)
- <Android>界面美化的一点点积累
- 关于C++11中function的一点点分析
- 文法分析
- 文法分析
- LL(1)的一个文法分析
- 一个算符文法分析的实现
- 基于文法分析的简单计算器实现
- 文法分析的三种符号集
- 编译原理的LL(1)分析过程,从求first和follow到建立预测分析表,再到文法分析
- NLTK10《Python自然语言处理》code09 建立基于特征的文法
- Python自然语言处理 9 建立基于特征的文法
- HTML中 "Meta"的一点点
- 编译原理--文法分类和推导树
- 编译原理(2)-----文法推导
- Scala 文法词法分析---分析C++类的声明
- Keil环境中建立带FreeRTOS的STM32L项目
- Regsvr32使用方法 and Regsvr32命令修复系统故障
- 对象适配器和类适配器
- 图解XBRL模式文件(二)
- 读 Harry Potter 7
- Java Integer对象
- 文法分析中推导的建立(带一点点美化:))
- HTML中调用JavaScript的几种情况和规范写法
- 在PB打印中实现人民币大写
- Visual Studio 2005 的 101 个示例
- 头元素标志http://www.wuqy.com/wljc/qtjc/ttjc/200511/3324.html
- asp.net操作Excel总结 (转帖)
- 用PB做一个通用右键菜单
- 将分页作为一个单独的控件
- (转载)比较分析Vector、ArrayList和hashtable hashmap数据结构