博文

易中天品三国之大江东去1B(2007-12-15 17:19:00)

摘要: ......

阅读全文(1853) | 评论:0

易中天品三国之大江东去1A(2007-12-15 17:09:00)

摘要: ......

阅读全文(1330) | 评论:0

词法分析程序的设计与实现(2007-11-16 16:06:00)

摘要:   实验一  词法分析程序的设计与实现 一、实验目的:词法分析程序是编译程序的一个构成成分,它的主要任务是扫描源程序,按构词规则识别单词,并报告发现的词法错误。其中涉及到的主要理论和技术是正则表达式(也叫正规式:regular expression)和有穷自动机(finite automata)。本实验是让学生根据所给的某一较为简单的语言的单词,完成该语言的词法分析程序的设计、编写和调试,并在此过程中掌握相关的理论和方法技术。 二、要求: (1)    按照下面给出的语言单词,编制一个词法分析程序,该程序应该具有以下功能: (a)输入字符串(待进行词法分析的源程序),输出为单词串,即由(单词、类别)所组成的二元组序列。 (b)有一定的检查错误的能力。      (2) 提交实验报告。报告内容如下:实验目的、算法描述、程序结构、程序清单、主要变量名说明、调试情况、设计技巧、心得体会。      (3) 上机时间:4~6小时 三、实验环境:PC机,Windows系列版本,任何版本的C语言。 四、词法分析实验题目:设某一语言有如下单词: 关键字:BEGIN , END , IF , THEN ,ELSE 标识符 无符号整常数 运算符: < ,<= , = ,<> ,> , >=     请编写出识别该语言的词法分析程序。 提示:      1、实验步骤: 正规文法→NFA → DFA →程序流程图→编写代码      2、要建立数组,存放输入字符串 3、搜索注意①超前搜索和回退字符②检查错误; 4、注意不同类型的单词的截止标记。            一个关键字往往以空格和界限符等结束;            一个标识符往往以运算符......

阅读全文(13726) | 评论:0

简单词法分析程序(2007-11-16 15:58:00)

摘要:#include <iostream>#include <list>#include <iterator> using namespace std; int static biaozi=1;class str{public: str(int t,char a[],int len) {  for(int i=0;i<len;i++)   name[i]=a[i];  type=t;  leng=len; } void show() {  cout<<'('<<type<<',';  for(int i=0;i<leng;i++)   cout<<name[i];  cout<<')'; }private:   int type; char name[10]; int leng;}; void change_input(char a[],int &len)   //获取IO_BUFFER中的字符串到a数组{ char c; c=getchar(); while(c!='#') {  a[len++]=c;  c=getchar(); } a[len++]='#'; }void insert(list<str > &l,int t,char a[],int indexon,int leng)//把每个词法成分放入表中{ char temp[20]; for(int i=0;i<leng;i++)  temp[i]=a[indexon+i]; l.push_back(str(t,temp,leng));}void check(list<str> &l,ch......

阅读全文(2975) | 评论:0

迷宫(2007-07-06 21:27:00)

摘要:头文件 #define D 10struct node1{ int x; int y;};struct node2{ int x; int y; int d;};#ifndef migongtou_H#define migongtou_Hclass M{public:  M( int [][10] ); void zoulu(); void printf(); void chenggong();private: node1 fangxiang[8]; node2 first[30]; int a[D][D]; int top; int InX,InY,OutX,OutY,d;};#endifCPP文件 #include<iostream>#include"migongtou.h"using namespace std;M::M( int b[][10] ){ for(int i=0;i<D;i++)  for(int j=0;j<D;j++)   a[i][j]=b[i][j]; InX=1;InY=1;OutX=6;OutY=8; top=0; fangxiang[7].x=-1;fangxiang[7].y= 1; fangxiang[0].x= 0;fangxiang[0].y= 1; fangxiang[1].x= 1;fangxiang[1].y= 1; fangxiang[2].x= 1;fangxiang[2].y= 0; fangxiang[3].x= 1;fangxiang[3].y=-1; fangxiang[4].x= 0;fangxiang[4].y=-1; fangxiang[5].x=-1;fangxiang[5].y=-1; fangxiang[6].x=-1;fangxiang[6].y= 0;   first[top].x=1;first[top].y=1;first[top].d=-1; top++; fir......

阅读全文(2496) | 评论:0

魔方阵(2007-07-06 21:24:00)

摘要:#include<iostream>#include<iomanip>using namespace std;#define N 50void mofang(int [][N],int );void printf(const int [][N],int );void main(){ int a[N][N]={0}; int m; cout<<"请输入行列数(要为奇数):"<<endl; cin>>m; mofang(a,m); printf(a,m); return ;}void mofang( int b[][N],int n){ int i,j=n/2;int k=2; b[0][j]=1;i=n-1;j++; while(k<=n*n) {  if(b[i][j]==0)  { b[i][j]=k;k++;i--;j++;}  else  {i+=2;j--;}  if(i==-1&&j!=n)   i=n-1;  if(j==n&&i!=-1)   j=0;  if(i==-1&&j==n)   {i+=2;j--;} }}void printf(const int b[][N],int n){ for(int i=0;i<n;i++) {  for(int j=0;j<n;j++)   cout<<setw(3)<<b[i][j];  cout<<endl; }}......

阅读全文(2290) | 评论:0

抽签(2007-07-06 21:23:00)

摘要:#include<iostream>using namespace std;void chouqian(int [],int [][4],int ,int);void main(){ int ren[5]={1,2,3,4,5},haoma[5]={1,2,3,4,5}; int M[8][4]={1,0,1,0,0,1,0,0,  1,0,0,1,1,0,0,0,  0,0,1,0,0,1,0,0,  1,0,1,0,0,0,0,1}; chouqian(ren,M,8,4); for(int i=0;i<5;i++)  cout<<"第 "<<haoma[i]<<" 名"<<"被 "<<ren[i]<<" 号人抽到。"<<endl; return ;}void chouqian(int a[],int b[][4],int m,int n){ for(int i=0;i<m;i++)  for(int j=0;j<n;j++)   if(b[i][j]==1)   {int t=a[j];a[j]=a[j+1];a[j+1]=t;}}......

阅读全文(2232) | 评论:0

约瑟夫(2007-07-06 21:13:00)

摘要:*********.CPP文件******* #include<iostream>#include"h.h"using namespace std;template<class T>linklist<T>::linklist(T a[],int n){ first=new Node<T> ; first->data=a[n-1]; first->next=first; int i; for( i=0;i<n-1;i++) {  Node<T> *s;  s=new Node<T>;s->data=a[i];  s->next=first->next;  first->next=s; }}template<class T>void linklist<T>::delate(){ Node<T> *p,*pre; pre=first,p=first->next; int count,m; count=2; cin>>m;    while(p!=pre) {  if (count==m)  {            cout<<p->data<<' ';      pre->next=p->next;delete p;p=pre->next;   count=1;  }  else p=p->next,pre=pre->next,++count; } cout<<p->data; firs......

阅读全文(2411) | 评论:0

心灵火花--------确定正确的模型(2007-07-06 21:03:00)

摘要:  在一个房间外有三个开关来控制房间里的三盏灯 ,开关与灯之间是一对一的连接,每个开关恰好控制一 盏灯,现在开关处于关的位置,在房间外看不见房间内 的任何东西。问题是需要判断出那个开关控制那盏灯, 条件是: 你可以任意设置这些开关,然后进入房间,但 是在你进入房间后,不允许再出来控制这些开关......

阅读全文(1811) | 评论:0

心灵火花--------确定正确的模型(2007-07-06 21:03:00)

摘要:  在一个房间外有三个开关来控制房间里的三盏灯 ,开关与灯之间是一对一的连接,每个开关恰好控制一 盏灯,现在开关处于关的位置,在房间外看不见房间内 的任何东西。问题是需要判断出那个开关控制那盏灯, 条件是: 你可以任意设置这些开关,然后进入房间,但 是在你进入房间后,不允许再出来控制这些开关......

阅读全文(1982) | 评论:0