- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章第4节记录类型和文件类型
第四节 记录类型和文件类型
前面介绍的数组类型和集合类型有一个共同点,那就是在同一个数组或集合中的各有元素都必须具有相同的类型。如果要处理如下表所示的学生档案卡片上的数据,各栏目的数据类型不一样(学号,姓名,成绩…),需要用不同的类型表示。
学号姓名性别出生年月语文数学英语平均分为此,PASCAL系统定义了记录类型,可用来表示不同类型的数据。
[例5.14]建立一张学生情况表格,求出每位学生的平均成绩,并输出这张表格。
解:①定义记录类型:Date(表示日期记录,有三个域:day 日,mon月,yea年);
Studa(表示学生情况记录,有六个域:nu学号,na姓名,dd出生年月,se性别,s成绩,ave平均分);
②读入记录数据;
③计算学生的平均成绩;
④输出记录内容。
PASCAL程序:
Program Exam514;
Const n=2; m=3; {为了简单,人数N=2课目M=3}
Type Date=Record {定义Date(日期)记录类型}
day: 1..31; {域名day表示天,为子界型(1..31)}
mon: 1..12; {域名mon表示月,为子界型(1..12)}
yea: 1970..1999; {域名yea表示年,为子界类型}
End;
Studa=Record {定义Studa(学生情况)记录类型}
nu: string[5]; {域名nu表示学号,为字符串类型}
na: string[8]; {域名na表示姓名,为字符串类型}
dd: Date; {域名dd表示日期,为记录类型(Date)}
se: char; {域名se表示性别,为字符类型}
s: array[1..m] of real; {域名s表示成绩,为数组类型}
ave: real {域名s表示平均分,为实数类型}
End;
Sarr=array[1..n] of Studa; {定义Sarr为数组类型,各元素为记录类型}
Var Stu: sarr; {变量Stu为数组(Sarr)类型}
Procedure rrd(var stu:sarr); {定义输入和计算过程}
var i,k: integer;
t: real;
a: studa; {变量a为记录(Studa)类型}
begin
for k:=1 to n do
begin
with a,dd do {开域语句,打开当前记录a和dd,进行以下操作}
begin
write(k:2, nu: ); readln(nu); {输入学号}
write(k:2, na: ); readln(na); {输入姓名}
write(k:2, se: ); readln(se); {输入性别}
write(k:2, day: ); readln(day); {输入出生日}
write(k:2, mon: ); readln(mon); {输入出生月}
write(k:2, yea: ); readln(yea); {输入出生年}
t:=0;
for i:=1 to m do {输入m科的成绩分}
begin
write(s[,i,]=); read(s[ i ]);
t:=t+s[ i ] {累加总分
文档评论(0)