记录(record)是由固定数目的不同类型元素组成的一种构造类型,元素称为字段或域(F'ield),每个域有一个数据类型。 1.定义记录类型的语法格式 type<记录类型名称>=record <域标识符1>:<类型1>; <域标识符2>:<类型2>; <域标识符n>:<类型n>; ’ end; 例如,定义一个记录类型student,其中包括4个不同类型的字段,分别记载每个学生的姓名、学号、性别和年龄等数据信息。 type student=record name:string[8]; number:integer; sex:(male,female); age:Integer; end; 定义记录类型变量的语法格式 var<变量名> :<记录类型标识符>; 例如,var stu:student;定义了student记录记录字段的引用类型的变量stu。对记录中字段使用如下的访问形式:<记录变量名>.<字段名>,例如: stu.name:=’zhangli’; 4.with语句 在使用记录类型的变量时,可以通过with语句指定一组语句都以简化代码的输入量。with语句的语法格式如下: with<记录变量>do<语句>; pascal 针对一个变量的,这样可将上述语句称为开域语句。开域后访问记录的字段就可以省略记录变量名,例如: with stu do begin name:一i zhangl ; age:一2 1I 1; :一 ; sex:=male; end; 5.记录类型应用举例 例2.8 定义一个学生记录型,用它定义班级学生记录息,统计平均年龄,输出全班学生记录信息内容及平均年程序, {$apptype console} {$R冰.res} type student=record name:String[8]; number:Integer; sex:(male,female); age:Integer; end; var st:array[1..1 O]of student; ssex:String[6]; S:String; i:Integer; av:Real; 数组。通过键盘输入学生记录信用与前面例题相同的建立方法创建程序代码如下: 45 begin writeln(’请输入1 O个学生的name,number,sex,age:’); for i:=l to 1 0 do begin write(’ ’,i,’个:’) readln(st.name); readln(st.number); readln(ssex); readln(st.age); if ssex:’male’then st.sex:=male else if ssex--’female’then st.sex:=female; end; av:=0; for i:=1 to 1 O do 1 ‘ begin with st[.i]do 1 begin f sex=male then ssex:=’ aleit Sex male men SSeX mate’ = := else if sex=female then ssex:=’female’; writeln(’name:’,name,’number:’,number,’sex:’,ssex,’age:’,age); av:--av+age; end; end; str(av/l O:5:1,S);//将实数类型转换为字符串,赋给变量 writeln(’平均年 readln; end. 运行 龄为:’,S); 程序,每输入一项内容回车,程序将统计出平均年龄并输出。本程序只定义了l O个记录,读者可以修改为动态的记录数。
|