实验一词法分析实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一 源程序的输入和扫描 学时数:2 [实验内容]: 1、 编制一个源程序的输入、扫描程序,从文件中每次读入一行到输入缓冲区(可以用字符数组实现); 然后从缓冲区中依次取出字符显示在屏幕上。 2、 从文件每次读入一行到输入缓冲区的功能(可以用字符数组实现)用一个子程序实现。 [实验目的]: 1、通过编制一个源程序的输入、扫描程序,熟悉和了解从文件中读入数据到输入缓冲区的过程。 [实验步骤h 仁准备:用TC、VC++等开发工具;确定被处理的语言的语法特点(初步确定,可使用现成语言如 Pascak C等)。编好程序,写好实验报告。 2、上机:输入源程序,修改、调试,运行。 编程思想: 采用一个子程序实现的形式。 (1) 程序判断源文件是否为NULL,如果是,则输出错误提示!如果不是,则进入循环。 (2) 调用子程序readbuffer(),每次读入一个字符给字符变量,如果字符变量的内容不是回车符,则把字 符变量的内容存入数组bufferO,然后读入下一字符,再判断再存入数组,直到一行全存入数组,然 后返回主程序,用输出语句输出刚才存入数组的一行字符; (3) 如果没有到文件尾,则重复第(2)步,直到文件结束,则退出主程序,完成任务! [程序要求]: 1) 首先在E盘上建立一个A.c文件,文件内容如下: A?c文件内容: main() { int a, b , c; a = 10; b=20; c=a+b; } 2) 然后用C语言编写一个输入、扫描程序,实现将E盘上建立的文件内容读入缓冲区,并在屏幕上输出 该文件内容,要求运行的输出结果与输入的文件内容相同。运行和调式程序,看输出的文件内容是否 和输入的格式一样。 本次实验主要熟悉用C语言实现文件的输入和输出过程,目的就是让同学了解如何实现从键盘输入 字符串并写入文件中,然后从文件中读出字符,并按照输入的格式输出在屏幕上。 源程序:输入、扫描程序源代码(仅供参考): includestdio.h includestdlib.h includeconio.h int i; FILE *fp; char buffer[256]; 〃声明变量 int readbuffer() 〃读字符子程序开始 intj=O; char ch; while(j256) { ch=fgetc(fp); if(ch=\nf) 〃字符变量的内容是回车符吗? { i=j;return 0; 〃是回车符,保存字符个数返回0。 } //if buffer[j]=ch; 〃不是回车符,把字符变量的内容存入数组bufTerO,字符个数加 T; } //While return 1; } 〃子程序结束 main() 〃main()开仪台 { if((fp=fopen(nd:\\a.cn,nrH))==NULL) 〃文件是否为NULL,这里的路径必须用两个斜杠卞 是C语言中的格式符。 其中一个 { printffTHE FILE DOESNT OPEN! ”); 〃如果是,则输出错误提示。 exit(O); while(!feofVp)) //到文件尾否,到文件尾feof()函数则返回非零值,循环结束。 { intj; j=0; readbuffer(); while(ji) 〃如果没有到文件尾,则读入一个字符 〃判读入一行的字符个数 printf(H%cn,bufferU]); 〃读入字符个数小于源文件语句行的字符个数,则输出字符 j++; 〃一行字符个数加一 〃否则输出回车 getch(); fclose(fp); getch(); } 〃main()结束 〃程序结束 再将输入的A.c文件内容改为如下: d:\\a.c.o main() { int sum=O,i; float k; scanf (n%f plese input (0-100) to total !,k) fbr(i=0;i<k;汁+) sum =sum+i; } 再运行输入、扫描程序进行调试,输出必须与上面a.c文件小输入的代码相同。 [实验报告]: 1、 写出调试程序出现的问题及解决的方法。 2、 写实验报告及程序清单。 3、 报告给出测试的结果。 实验二无符号数的有穷自动机的实现 学时数:4 [实验内容]: 无符号数的有穷自动机的实现。利用状态表和有限自动机的运行原理编制程序,使得程序能够识 别一个输入串是否为一个无符号定点实数。 [实验目的]: 1、 理解有限自动机的作用;进一步理解自动机理论。 2、 用状态图和状态表表示有限自动机; 3、 以程序实现有限自动机的运行过程;掌握文法转换成口动机的技术及有穷口动机实现的方法。 [实验要求]: 1、 设计要求:利用状态图或状态表相关理论,利用有限自动机理论。 2、 功能要求:输入一个单行无空格的字符

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档