nbhkdz.com冰点文库

11第十一课 记录

时间:2013-09-29


第十一课 记录

引入
? 在程序中对于组织和处理大批量的数据来说,数组 是一种十分方便而又灵活的工具,但是数组在使用 中有一个基本限制,这就是:一个数组中的所有元 素都必须具有相同的类型。但在实际问题中可能会 遇到另一类数据,它是由性质各不相同的成份组成 的,即它的各个成 份可能具有不同的类型。例如, 有关一个学生的数据包含下列项目: 学号 字符

串类型 姓名 字符串类型 年龄 整型 性别 字符型 成绩 实型数组 Pascal给我们提供了一种叫做记录的结构类型; 在一个记录中,可以包含不同类型的并且互相相关 的一些数据。

记录类型的定义
? 在pascal中,记录由一组称为“域”的分量组 成,每个域可以具有不同的类型,记录类型定义的 一般形式: type 类型标识符=record 字段名1:类型1; 字段名2:类型2; ... 字段名n:类型n; end;

记录的定义和变量的说明
? 如:
type studata=record num:string[6]; name:string[8]; sex:boolean; s:array[1..5] of real; end; var student:studata; students:array[1..10] of studata;

记录的定义和变量说明
? 记录类型的定义和记录变量可以合并为一个定义,如: type date=record year:1900..1999; month:1..12; day:1..31 end; var x:date; 可以合并成: var x: record year:1900..1999; month:1..12; day:1..31 end;

记录的运用
? 同一个记录的类型中,各个域不能取相同的 名,但是不同记录类型中则可以; ? 对记录中各个域的引用,要写出记录名和域 名,如:student.num; ? 可以使用read(readln)语句对记录进行赋 值,也可以用write(writeln)语句输出记录 的值。

开域语句: with 记录名 do 语句;

可以改写为:
With x do

Write(‘input year:’);
Readln(x.year);

begin
Write(‘input year:’); Readln(year); Write(‘input month:’); Readln(month);

Write(‘input month:’);
Readln(x.month);

Write(‘input day:’);
Readln(x.day);

Write(‘input day:’);
Readln(day); end.;

注意: 1. 在do后面语句中使用的记录的域时,只 要简单地写出域名就可以了, 域名前的记录变 量和“.”均可省略。 2. 在关键字do后面,语句可以是一个简单 语句,也可以是一个复合语句。 3. 虽然在with后可以有多个记录变量名, 但一般在with后只使用一个记录变量名。 4. with后面接若干个记录名时,应是嵌套 的关系。

var x:record i:integer;

with x do begin

y:record
j:0..5;

read(i);
with y do read(j,k); readln(m); end; with x,y do read(i,j,k,m); end;

k:real;
end;

m:real
end;

习题1
? 读入10个日期,再对每个日期输出第二天的 日期。输入日期的格式是月、日、年,如 9□30□1993,输出的格式为10/1/1993 分析:可用一个记录变量today表示日期。 知道一个日期后要更新为第二天的日期,应 判断输入的日期是否为当月的最后一天,或 当年的最后一天。

代码
? program ex6_8; type date=record month:1..12; day:1..31; year:1900..1999; end; var today:array[1..10]of date; i:integer; maxdays:28..31;

? begin for i:=1 to 10 do {输入10个日期} with today[i] do readln(month,day,year); for i:=1 to 10 do with today[i] do{求第i个日期中月份最后一天 maxdays} begin case month of 1,3,5,7,8,10,12:maxdays:=31; 4,6,9,11 :maxdays:=30; 2 :if(year mod 400=0) or( year mod 4=0) and(year mod 100<>0) then maxdays:=29 else maxdays:=28; end;

? if day=maxdays then begin day:=1; if month=12 then begin month:=1;year:=year+1; end else month:=month+1; end else day:=day+1; writeln(month,'/',day,'/',year); end; end.

习题2
? 设计一个函数比较两个dates日期类型记录变量的迟 早。 ? 设函数名、形参及函数类型定义为: AearlyB(A,B:dates):boolean; 函数的形参为两个dates类型的值参数。当函 数值为true 时表示日期A早于日期B,否则日期A迟于 日期B或等于日期B。显然不能对A、B两个记录变 量直接进行比较,而要依具体的意义逐域处理。

type dates=record year:1900.1999; month:1..12; day:1..31 end; var x,y:dates; function AearlyB(A,B:dates):boolean; var earln:boolean; begin early:=false; if (A.year<B.year) then early:=true; if (A.year=B.year)and(A.month<B.month) then early:=true; if (A.year=B.year)and(A.month=B.month)and(A.day<B.day) then early:=true; AearlyB:=early; end;{of AearlyB} begin write('Input DATE X(mm-dd-yy):')readln(X.month,X.day,X.year); write('Input DATE Y(mm-dd-yy):')readln(Y.month,Y.day,Y.year); if AearlyB(X,Y) then writeln(Date X early!') else writeln('Date X not early!'); end.


第十一课 用计算机写作

高县柳湖中学集体备课卡课 课题 第十一课用计算机写作...记事本只能进行文字的简单记录,不能把“水”字变 ...解说:标题设置为加粗、14 号字,正文为 11 号字。...

11.1 第十一课 寻觅社会的真谛说课稿

11.1 第十一课 寻觅社会的真谛说课稿 教师资格证说课稿 必修4 所有都有 自己的 分开整理所以分开上传教师资格证说课稿 必修4 所有都有 自己的 分开整理所以分开...

第十一组答辩记录

学生毕业设计(论文) 1 绪论 第十一组答辩记录沈...A.课上提到过。 随着世界经济和各国经济的发展,...变化很小,2005 年出口最少,出口额仅为 0.11 亿...

英语上教版第十一课water 说课稿

英语上教版第十一课water 说课稿_五年级英语_英语_小学教育_教育专区。英语说课稿 Unit 11 Water 第一课时说课稿说课人:刘瑞 一、教材分析:本单元要求学生熟练...

九年级上册第十课、第十一课导学稿_图文

九年级上册第十课、第十一课导学稿_初三政史地_政史地_初中教育_教育专区。...文档贡献者 爱雨中睡莲 贡献于2015-11-02 1/2 相关文档推荐 ...

第十一课机器人时装表演

第十一课机器人时装表演_六年级其它课程_其它课程_小学教育_教育专区。第 11 课 机器人时装表演 教学目标: 1、知识与技能目标: 了解地面检测传感器的使用方法与...

第十一课万千气象的宋代社会风貌讲学稿

第十一课万千气象的宋代社会风貌讲学稿 隐藏>> 头站乡中心学校师生共用讲学稿系列...商店 11.下列哪种节日在宋代还没有出现( ) A.春节 B.端午节 C.中秋节 D...

五年级下册英语第十一课导学案

___ 4.找出自己不能理解或不会读的句子并记录下来。 拓展延伸( 3 分钟) ...___ ___ 学习内容 学习目标 重难点 课前准备 Lesson11 What’s your hobby...

人教版语文七年级下册第十一课邓稼先

人教版语文七年级下册第十一课邓稼先_语文_初中教育_教育专区。人教版语文七年级...人物传记是记录人物生平事迹的一种实用文。一般 有两类,一类是记述自己的生平,...

第十一课敬畏自然练习

第十一课敬畏自然练习_初三语文_语文_初中教育_教育...据说。1967 年,挪威人在极点站曾经记录到-94.5℃...11.从字面上看,是既敬重又畏惧。 “敬畏自然”就...