PASCAL上机调试.ppt_第1页
PASCAL上机调试.ppt_第2页
PASCAL上机调试.ppt_第3页
PASCAL上机调试.ppt_第4页
PASCAL上机调试.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IDE的使用(Free Pascal,编译 编译(compile) alt + F9 生成(make) F9 运行(run) ctrl + F9 显示(user screen) alt + F5 调试 断点(break point) ctrl + F8 运行(go to cursor) F4 单步(trace into / step over) F7 / F8 查看(add watch) ctrl + F7,PASCAL文件输入输出方法 一、装配文件 assign(input,文件路径); 文件路径一般为相对路径,相对程序的工作目录 reset(input); assign(output,文件

2、路径); rewrite(output); 二、输入输出方法 read(x); write(x); 三、关闭文件 close(input); close(output); 输出文件必须关闭,否则可能不能正确保存,关联输入文件,打开输入文件,关联输出文件,打开输出文件,关闭输入文件,关闭输出文件,Pascal语言的输入输出,read 形式:read (f, var表); 功能:从磁盘文件f中将数据依次读到var表表示的各个变量中 write 形式:write (f, var表); 功能:将var表所表示的各个变量的值依次写到磁盘文件f上,Pascal语言的输入输出,readln 形式:read

3、(f, var表); 功能:从磁盘文件f中将数据依次读到var表表示的各变量中 并将文件指针移到行结束符后 writeln 形式:write (f, var表); 功能:将var表所表示的各个变量的值依次写到磁盘文件f上 然后再写一个行结束符,Pascal语言的输入输出,assign 形式:assign (f, str); 功能:将文件名字符串str赋给文件变量f close 形式:close (f); 功能:关闭和f关联的磁盘文件 在写操作时自动产生一个文件结束标志,Pascal语言的输入输出,reset 形式:reset (f); 功能:打开一个已经存在的磁盘文件 其文件名必须先由assi

4、gn过程赋给变量f 该文件只能读 rewrite 形式:rewrite (f); 功能:建立并打开一个新的允许写磁盘文件 其文件名必须先由assign过程赋给变量f,建立指定的文件目录结构,例如:假设题目有cashier、dune、manhattan三题。 选手sx1001使用pascal答题,其最终提交的文件为cashier.pas、dune.pas、manhattan.pas,则该选手提交的目录结构如下所示,操作步骤,1、在TURBO PASCAL环境中编辑源程序,2、ALT+F9 编译源程序,3、保存源程序:按要求保存到指定目录,指定文件名。如a.pas,4、按F9生成EXE文件(确保C

5、OMPILE-destination disk才能生成,5、创建IN和OUT文件。用写字板建立,修改扩展名为*.in和*.out。如a.in和a.out,6、在IN文件中输入数据,7、双击EXE文件运行程序,8、用记事本打开OUT文件查看运行后的输出结果,问题1,创建一个A.pas 从A.in中读入两个正整数x和y 向A.out中打印一个正整数x+y,var x, y: integer; begin assign (input, A.in); 关联输入文件 reset (input); 打开输入文件 assign (output, A.out); 关联输出文件 rewrite (output)

6、; 打开输出文件 readln (x, y); writeln (x + y); close (input); 关闭输入文件 close (output); 关闭输出文件 end,问题2,创建一个B.pas 从B.in中读入一个不超过100的正整数n和n个不超过100的正整数ai 向B.out中打印一个正整数 即输入的n+1个数中最大的数,var i, n, t, max: integer; begin assign (input, B.in); reset (input); assign (output, B.out); rewrite (output); read (n); max :=

7、n; for i := 1 to n do begin read (t); if t = max then max := t; end; writeln (max); close (input); close (output); end,第1题 产生随机数文件 【问题描述】 编写一个程序,产生500个1000以内的随机正整数,存放在data.out文件中,并同时统计从其中大于等于500的数据个数。 【问题分析】 本题有两个问题需要解决,一要掌握随机数的生成原理,让计算机自动生成随机数;二是将计算机产生的随机数据存入文件中,程序实现】 Program p4_1(input,output); co

8、nst n=500; n为控制随机数个数的变量 var i,a,s:integer; i为循环变量、a为暂时存放随机数的变量、s为=500的数的个数 f:text;定义f为文本文件变量 begin assign(f,data.out);关联文件变量f到一个外部文件data.out rewrite(f);以新建写文件的方式打开文件 randomize;设置随机种子 s:=0;统计变量清零 for i:=1 to n do begin a:=random(1001);产生随机数 write(f,a:5);将随机数写到文件里 if i mod 10 =0 then writeln(f); 每写10个

9、数换一行 if a=500 then s:=s+1; 统计=500的数的个数 end; close(f);关闭文件 write(=500 :, s); 在屏幕上打印=500的数的个数s end,相关知识】 1pascal程序中写文件的5个步骤 在Pascal程序重创建文件并写入数据要经历5个步骤,即:定义文件变量、关联、写准备、写数据、关闭文件变量。 定义:在变量说明部分定义文件变量,变量名自己取,类型定义为text型。 关联:将一外部磁盘文件名赋于文本文件变量,使该文本文件与一相应外部磁盘文件相关联。命令格式为: assign(f,name) 其中f为定义的文本文件变量,name为实际磁盘上

10、文件的文件名 如:assign(file1, fileout.dat ) 或:assign(f1,e:aq2006a1.out ) 磁盘文件如包含路径,如e:aq2006a1.out ,则表示将文件存放到e:aq2006文件夹中,文件名为a1.out,如果不加路径,则存放在pascal工作目录中,如果工作目录没有更改,Free Pascal默认的工作目录一般为“C:”。 经过关联后,在程序中,如果对文本文件变量file1或f1的操作,也就是对外部实际磁盘文件fileout.dat或e:aq2006a1.out的操作,写准备:如果要向文件中写入数据,则在写入数据之前应先以写入方式打开。具体的写打

11、开方式有两种: 命令格式:rewrite(f) 功能:创建并打开新文件准备写,若已有同名文件则删除再创建 命令格式:append(f) 功能:打开已存在的文件并追加 写数据:写入数据时,就使用输出语句write和writeln语句,写入的效果就如同将屏幕上的数据原样写入文件中。只是在使用这两条语句时,必须先使用文件变量指明写入对象。如: Write(f,s) 或 writeln(file1,a(5),a(6) 前者含义为向文件f中写入变量s的值,后者的含义为向文件file1写入数组变量a(5)、a(6)的值。注意,这些数据实际上是写入这些文件变量所关联的磁盘文件中。 关闭:文件写完后,必须关闭

12、,关闭的格式为:Close(f),即关闭文件变量f,2查看文本文件 由于文本文件是以ASCII码的方式存储,故查看文本文件的内容是极为方便,在DOS状态可使用 DOS中TYPE等命令进行查看,在Pascal中可以象取程序一样取出文件进行查看。而在windows操作系统中,最方便的方法是按下键盘上空格键两边的windows键,切换到桌面,再找到刚才程序生成的数据文件,用记事本查看该数据文件的内容,如图1.1图4.1所示的就是用记事本打开示例数据文件的效果,3文本文件的特点 行结构 文本文件由若干行组成,行与行之间用行结束标记隔开,文件末尾有一个文件结束标记。由于各行长度可能不同,所以无法计算出给

13、定行在文本文件中的确定位置,从而只能顺序地处理文本文件,而且不能对一文本文件同时进行输入和输出。 自动转换功能 文本文件的每一个元素均为字符型,在将一个变量写入文本文件时,也会自动转移为字符型。与此相反,在将文件元素读入到一个变量(整型,实型或字符串型)中时,Free Pascal会自动将其转换为与变量相同的数据类型。 4计算机自动生成随机数 随机数是计算机程序中方便获得大量模拟数据的一个重要手段。在pascal中,可以利用random 函数自动生成随机数,其格式为: random(range) 不指定range时,结果是0,1之间的随机实数(0,1表示0并且1)。如果指定了range,ran

14、ge必须是整型表达式,结果为0,range之间的随机正整数,如果range为0则,返回0。 随机数产生程序由randomize命令初始化,因此在使用random函数之前,应先使用randomize命令进行随机种子的初始化,同步练习】 1已知斐波那契(faibonacci)数列的前几个数分别是0、1、1、2、3、5、8,编写程序求此数列的前100项,并将前100项输出到一个文件中。 问题分析: 此问题的解决利用以前章节所学的知识完全可以解决,只要掌握斐波那契数列从第3项开始,任意一项的值等于前两项值的和,即: F(n)= F(n-1)+ F(n-2) 需要注意的是循环的次数要控制准确,因为第1项

15、是从0开始的,而不想通常的题目是从1开始的。本题中练习的重点是如何将这些数输入到文件中,只要掌握的血文件的基本要领,本题是不难完成的。 程序设计:略 2照使用pascal语言程序写文件的步骤有如下5步,请将它们正确排序: 用write或writeln向文件中写入数据。 用close命令关闭文件。 在程序说明的var区用text类型标志定义一个文件变量。 用rewrite或者用append命令以新建或追加方式打开文件,准备存放数据。 用assigh命令设定要操作的磁盘文件。 正确的步骤是:_,第2题 对文件中的数据进行排序 【问题描述】 在上一课由程序生成的文件data.out中,读入500个随

16、机数,将它们排序后存放到datasort.out中。 【问题分析】 本例中先要打开data.out文件,将其中的数据读入到一个数组中,然后进行排序,最后将排序的结果输出到文件datasort.out 中。只要认真仔细的按照文件数据的读取和写入的步骤来编程,程序的实现应该是不成问题的,Program p4_2(input,output); const n=500; n为控制随机数个数的变量 var i,j,p,t:integer; f1,f2:text;定义f1、f2为文本文件变量 a:array1.n of integer;定义数组a begin assign(f1,data.out);关联文

17、件变量f1到外部文件data.out reset(f1);复位文件指针,以读方式打开文件 for i:=1 to n do read(f1,ai);读入数据存放到数组a中 close(f1); for i:=1 to n-1 do选择法排序 begin p:=i; for j:=i+1 to n do if ajap then p:=j; t:=ai; ai:=ap; ap:=t; end; assign(f2,datasort.out); 关联文件变量f2到输出文件datasort.out rewrite(f2);以新建写文件的方式打开文件f2 for i:=1 to n do begin

18、write(f2,ai:5);将数组中的数依次写到文件里 if i mod 10 =0 then writeln(f2); 每写10个数换一行 end; close(f2);关闭文件 end,程序运行后,用记事本程序打开datasort.out文件,可以看到排列好的数据如图4.2所示,相关知识】 1pascal程序中读文件的5个步骤 在Pascal程序中读入也要经历5个步骤,即:定义文件变量、关联磁盘文件、读准备、读数据、关闭文件变量。 定义文件变量、关联磁盘文件、关闭文件变量等几步和写文件操作类似,这里就不再赘述了。 读准备是在读数据之前,先以读方式,复位文件指针,命令格式是reset(文件变量)。 读数据时,就使用读语句read和readln语句。和写文件数据一样,读数据时也要指定从那个文件变量中读入数据。如: read(f,s) 或 readln(file1,a(5),a(6) 即从文件f中读入数据,赋值给变量s;从文件file1中读入两个数据,赋值给数组变量a(5)、a(6)。 以读文件方式时打开文件时,实际上有一个文件指针指向第1个数据,读完一个数据后,指针自动指向下一个数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论