节文件与指针类型课件_第1页
节文件与指针类型课件_第2页
节文件与指针类型课件_第3页
节文件与指针类型课件_第4页
节文件与指针类型课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、数据类型复习邵文彬10/15/20221本溪市第一中学 信息奥赛 2007数据类型复习邵文彬10/11/20221本溪市第一中学 信息七大自定义数据类型 枚举类型var today:(Sunday,Monday, );(case of end)子界类型var day:1.31; 数组类型var ad : array 1.10,1.5 of integer;集合类型var yb1,yb2:set of (a,e,i,o,u);记录类型type stype=record name:string20; address:string end;文件类型指针类型本节学习的类型10/15/20222本溪市第

2、一中学 信息奥赛 2007七大自定义数据类型 枚举类型var today:(Sunda七大自定义数据类型 枚举类型var today:(Sunday,Monday, );(case of end)子界类型var day:1.31; 数组类型var ad : array 1.10,1.5 of integer;集合类型var yb1,yb2:set of (a,e,i,o,u);记录类型type stype=record name:string20; address:string end;文件类型指针类型本节学习的类型静态数据结构10/15/20223本溪市第一中学 信息奥赛 2007七大自定义

3、数据类型 枚举类型var today:(Sunda第9讲文件与指针邵文彬10/15/20224本溪市第一中学 信息奥赛 2007第9讲文件与指针邵文彬10/11/20224本溪市第一中学 一、文件类型1.文本文件的定义:var内部文件名:text;2.文本文件的读操作: (1)调用assign过程,磁盘文件赋予文本文件变量;assign(内部文件名,filename); (2)调用reset过程,读操作准备;reset(内部文件名); (3)读数据调用read过程或readln过程。readln(内部文件名,var1,var2,.,varn);10/15/20225本溪市第一中学 信息奥赛 2

4、007一、文件类型1.文本文件的定义:var内部文件名:一、文件类型3.文本文件的写操作:(1)调用assign过程,磁盘文件赋予文本文件变量;assign(内部文件名,filename);(2)调用rewrite过程,读操作准备;rewrite(内部文件名);(3) 读数据调用write过程或writeln过程。writeln(内部文件名,var1,var2,.,varn);4.文本文件的关闭操作:close(内部文件名);5.文本文件的其他操作:(1)EOF(内部文件名)布尔函数,用于判断文件结束否。(2)EOLN(内部文件名)布尔函数,用于判断行结束否。10/15/20226本溪市第一中

5、学 信息奥赛 2007一、文件类型3.文本文件的写操作:(1)调用assign过练习题输入长方体的长、宽、高,计算并输出长方体的体积和表面积。program ch345; var x,y,z:integer; f1,f2:text; begin assign(f1,d:5zin.txt); assign(f2,d:5zout.txt); reset(f1); rewrite(f2); readln(f1,x,y,z); writeln(f2,“TJ=”,x*y*z); writeln(f2,“FS=”,2*(x*y+y*z+z*x); close(f1); close(f2) end. 10/

6、15/20227本溪市第一中学 信息奥赛 2007练习题输入长方体的长、宽、高,计算并输出长方体的体积和表面积课后练习题改变所做过的题,由原标准输入input和标准输出output,变为文件方式操作,编写程序。如:算数习题解答、排序、集合运算等等。10/15/20228本溪市第一中学 信息奥赛 2007课后练习题改变所做过的题,由原标准输入input和标准输出o二、指针类型指针是通过地址来访问变量的一种特殊的数据类型,属于动态的数据结构,它可以在需要时产生,用完后则又可以取消或回收,以减少占用的内存空间。P动态数据结构10/15/20229本溪市第一中学 信息奥赛 2007二、指针类型指针是通

7、过地址来访问变量的一种特殊的数据类型,属二、指针类型1、定义指针类型指针变量用来存放某个存储单元的地址,即指针变量指向某个存储单元。 TYPE 指针类型标识基类型名; 说明:q是一指向整型存储单元的指针类型,其中“”为指针符。 a,b,c均定义为指针变量,分别可以指向一个整型存储单元。也可用变量说明为: var a,b,c:integer;指针也可以指向有结构的存储单元。例如:type person=recordname:string10;sex:(male,female);age:20.70 end; var pt:person;pt为指向记录类型person的指针变量。例如: type q

8、=integer; var a,b,c:q;10/15/202210本溪市第一中学 信息奥赛 2007二、指针类型1、定义指针类型指针变量用来存放某个存储单二、指针类型2、动态变量指针变量名例如:p、q、r指针变量p和它所指向的动态变量p之间有如下关系:PP例如:以下语句把整数5存放到p所指向的动态变量p中去:p:=5;以下语句把p所指向的p中的值赋给整型变量i: i:=p; 如果指针变量p并未指向任何存储单元,则可用下列赋值语句:p:=nil; nil是保留字,表示“空”。10/15/202211本溪市第一中学 信息奥赛 2007二、指针类型2、动态变量指针变量名例如:p、二、指针类型3、对

9、动态变量的操作 动态变量调用标准过程new建立的。 过程形式为:new(指针变量名); 使用标准过程dispose予以释放。 过程形式为: dispose(指针变量名); 例如在用了new(p)后再调用dispose(p),则指针p所指向的动态变量被撤销,内存空间还给系统,这时p的值为 nil。10/15/202212本溪市第一中学 信息奥赛 2007二、指针类型3、对动态变量的操作10/11/202212本溪二、指针类型4需要注意之处1、P与P的区别P是指向该动态变量的指针变量名,P则称为动态变量或标志变量。P的值是P的首地址,P的值为与基类型相同的一个值。2、定义后及时分配存储单元定义了一

10、个指针变量后,并没有为该指针分配动态存储单元,此时的P的值无定义,调用P则会产生运行错误。若想使该指针可用,可以对指针赋值,也可以通过NEW()过程分配存储单元。3、使用后及时收回存储单元指针使用后,不会自动归还占用的存储空间,应及时使用DISPOSE()过程来释放P所占用的存储单元,以免浪费有限的存储空间10/15/202213本溪市第一中学 信息奥赛 2007二、指针类型4需要注意之处1、P与P的区别P11.2 单链表(队与栈)11.2 单链表单链表的数据类型可定义如下: type dlb=node; node=record data:datatype; next:dlb; end;Var

11、 dd,cc:dlb; TYPE 指针类型标识=结点类型标识; 结点类型标识=RECORD 数据域:类型; 指针域:指针类型标识 END;VAR 指针类型变量表:指针类型标识;10/15/202214本溪市第一中学 信息奥赛 200711.2 单链表(队与栈)11.2 单链表TYPE10/1111.2 单链表例1 连续输入一序列整数,组成链表(并以动态的形式把它们记录下来),当输入的数为-1时,停止输入,然后把输入的整数按相反的顺序输出.(栈) program lianbiao;type link=data; data=record num:integer; next:link; end;va

12、r p,q:link; i:integer;Begin q:=nil; readln(i);while i-1 do begin new(p); P.num:=i; P.next:=q q:=p; readln(i); Write(i) end;while pnil do begin write(p.num:6); p:=p.next end; writelnend.10/15/202215本溪市第一中学 信息奥赛 200711.2 单链表例1 连续输入一序列整数,组成链表(并以动态练习题练习:将例1中如果数据不按相反的顺序(按输入时的顺序)输出时,怎样建表. 上述建表方式其实就是分别从表头和

13、表尾插入元素,下面是从表中插入元素;例2:输入若干整数(输入32767停止输入)排序(小到大)输出之。10/15/202216本溪市第一中学 信息奥赛 2007练习题练习:将例1中如果数据不按相反的顺序(按输入时的顺序)参考答案program lianbiao;type link=data; data=record num:integer; next:link; end;var head,p,q,r:link;i:integer;begin head:=nil; readln(i); while i32767 do begin new(p); p.num:=i; p.next:=nil; if

14、 head=nil then begin head:=p end; else begin q:=head; if p.num=q.num) and (qnil) do begin r:=q ;q:=q.next;end; if q=nil then r.next:=p else begin r.next:=p;p.next:=q end end; end; readln(i); end; p:=head; while pnil do begin write(p.num:6); p:=p.next; end; readlnend.10/15/202217本溪市第一中学 信息奥赛 2007参考答案program lianbiao

温馨提示

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

评论

0/150

提交评论