第六章 枚举型和子界型

合集下载

枚举类型名的定义法则

枚举类型名的定义法则

枚举类型名的定义法则枚举类型是一种特殊的数据类型,它可以定义一些特定的常量。

在程序设计中,枚举类型通常用来表示固定集合(例如月份)或状态(例如成功和失败)。

枚举类型名的定义法则如下:1.名称:枚举类型的名称应该是一个合法的标识符。

命名约定通常是使用大写字母和下划线来表示常量,例如:```enum Color { RED, GREEN, BLUE };```2.定义:枚举类型的定义包括了其名称,以及一系列的常量。

通常情况下,枚举类型定义时都会定义一些常量,例如:```enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY };```3.常量:枚举类型可以有零个或多个常量。

每个常量都有一个名称和一个关联的数字(称为枚举值)。

例如:```enum Color { RED = 1, GREEN = 2, BLUE = 3 };```其中,RED的枚举值为1,GREEN的枚举值为2,BLUE的枚举值为3。

如果没有显式地为常量指定枚举值,则默认为按顺序从0、1、2等依次递增的数字。

4.重复名称:枚举类型中的每个常量都必须有一个唯一的名称。

如果枚举类型中出现了重复的常量名称,则编译器将不通过。

例如:```enum Color { RED, GREEN, RED }; //重复的常量名称,编译器将不通过```5.范围:枚举类型的枚举值可以是任意整数。

通常情况下,枚举类型的枚举值都应该是正整数,因为负数可能会导致一些奇怪的行为。

6.作用域:枚举类型在定义时创建了一个新的命名空间,其中包含该类型的所有常量。

因此,在使用枚举常量时,需要指定作用域,例如:```enum Color { RED, GREEN, BLUE };Color c = Color.RED;```7.嵌套:枚举类型可以嵌套在其他类型中。

例如:```struct Rectangle {enum Edge { LEFT, TOP, RIGHT, BOTTOM };int x1, y1, x2, y2;Edge getLongestEdge();};```在上述示例中,枚举类型Edge嵌套在结构体Rectangle中。

数量关系讲义(华图课件)

数量关系讲义(华图课件)

A.15
B.17
C.19
Page 12
D.22
第七章 杂题模块
第一节 年龄问题
第二节 其他问题
Page 13
第七章 杂题模块
第一节 年龄问题
“年龄”问题核心公式: 一、每过N年,每个人都长N岁。(适用于简单列方程解答的年 龄问题)。 二、两个人的年龄差在任何时候都是固定不变的。 三、直接代入法。
Page 24
技巧点拨
常见的排列规律 1、奇偶数规律:各个数都是奇数或偶数。
2、等差:相邻数之间的差值相等,整个数字序列依次递增或递 减。
3、等比:相邻数之间的比值相等,整个数字序列依次递增或递 减。 4、二级等差数列:相邻数之间的差或比构成一个等差数列。 5、二级等比数列:相邻数之间的差或比构成一个等比数列。
Page 9
第六章 计数问题模块
第一节 枚举法 第二节 排列问题 第三节 容斥问题 第四节 抽屉原理问题
第五节 过河问题
Page 10
第六章 计数问题模块
第五节 过河问题
“过河”问题提示: 一、 需要有一人将船划回;
二、 最后一次过河“只去不回”;
三、 计算时间的时候多注意是“过一次××分钟”还是“往返 一次××分钟”
Page 32
题型一:等差数列
变式 :
差: ∨ ∨ ∨ ∨ ∨ 1 2 3 4 5
4,5,7,10,14,( 19 )
∨ ∨ ∨ ∨ ∨ ∨ 差: 2 3 2 5 8 12 ∨ ∨ ∨ ∨ ∨ 0 1 2 3 4
3,5,7,10,15,23,( 35)
Page 33
题型一:等差数列
2
4
6
Page 25

Pascal入门教程 (5)

Pascal入门教程 (5)

第六章枚举型和子界型内容提要本章介绍了两种自定义数据类型:枚举类型和子界类型及它们的定义和计算方法。

学习要求通过对本章的学习,我们要掌握枚举型和子界型两种简单的自定义类型的定义方法,能熟练把自定义的类型运用到程序设计中。

在前面几章里,我们学习了四种基本数据类型:实型(REAL),整型(INTEGER),布尔型(BOOLEAN),字符型(CHAR)。

但是,仅仅这几种类型还不能满足我们的需要,我们希望能定义自己的数据类型。

TURBO PASCAL 允许用户自定义数据类型,这就是本章要学习的枚举型和子界型。

第一节枚举型1.1 枚举型的定义前面我们学习的四种基本数据类型,可以用来表达数,字符,真假的描述。

但我们还是觉得有点缺欠:它们不能方便地行一些标识符的描述,如:红,橙,黄,绿,青,蓝,紫七种颜色,要在数据类型中要把它们直接表达出来,我们觉得有障碍。

一个星期有七天,用英文MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SARURDAY,SUNDAY表示。

而在计算机内有没有这种数据类型,能够很方便地将它们表示出来?有,枚举型能办到。

用四种基本数据类型不便表示的标识符,而且这些标识符的数量是有限的,我们可以用枚举的方法来表达它,把要用的所有标识符全部枚举出来。

这种方法比较接近自然语言的表达。

枚举型定义的格式如下:TYPE 枚举类型名(标识符1,标识符2,标识符3,......);在变量说明中,我们对枚举型就这样表示:V AR 变量名:枚举类型名;我们来看看对七种颜色和一个星期的七天如何定义枚举型:TYPE color=(red,orangr,yellow,green,indigo,blue,violet);Day=(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday);这样,我们就有了两种新的数据类型了:COLOR,DAY。

Pascal语言精要

Pascal语言精要

Pascal 语言精要基本概念:标识符、保留字、常量、变量、运算符、表达式、标准数据类型 Pascal 数 据 类 型简单类型标准类型 整型 integer -32768~32767 shortint -128~127 longint -2147483648~2147483647 byte 0~255 word 0~65535 实型 real 绝对值在1E-38~1E38间 singel (单精度型) double (双精度型) extended (扩展型) comp (装配十进制型) 字符型char (字符)string (字符串) boolean 只有两个值true 和false 用户自定义类型 枚举型 子界型 构造类型 数组类型记录类型集合类型 文件类型指针类型PASCAL 标准数据类型一共有4个:整型、实型、字符型、布尔型,分别用保留字integer 、real 、char 、boolean 来标记它们。

其取值范围和运算如下:整型(integer):范围 -32768—32767(16位运算);运算 + - * / mod div 实型(real): 范围 运算 + - * /字符型(char): 范围 可显示的ASCII 字符布尔型(boolean):范围 true false ;运算 and or not1.整型类型 数值范围 占字节数 格式 shortint -128..128 1 带符号8位 integer -32768..32767 2 带符号16位 longint -2147483648..2147483647 4 带符号32位 byte 0..255 1 带符号8位 word 0..65535 2 带符号16位Pascal 规定了两个预定义整型常量标识符maxint 和maxlongint ,他们各表示确定的常数值,maxint 为32767, maxlongint 为2147483647,他们的类型分别是integer 和longint2.实型Pascal 支持五种预定义实型,它们是real (基本实型)、 single (单精度实型)、double (双精度实型)、extended (扩展实型)、comp (装配实型),Pascal 分别用不相同的名字作为他们的标识符。

delphi高级数据类型:枚举、子界和集合讲稿

delphi高级数据类型:枚举、子界和集合讲稿

第6章枚举、子界与集合类型教学目的及要求:理解并掌握枚举类型的概念、定义与使用方法理解并掌握子界类型的概念、定义与使用方法理解并掌握集合类型的概念、定义与使用方法熟练应用枚举类型、子界类型、集合类型解决实际问题在delphi顺序类型中我们知道整型、字符型、布尔型是标准数据类型,而枚举型、子界型不是标准数据类型,这就是我们今天要学习的内容:Delphi的高级数据类型。

是Object pascal语言为了满足实际的需要,允许用户自定义的数据类型。

本节我们将首先学习delphi中如何定义数据类型,也就是delphi的数据类型定义语法格式及要求。

然后分别介绍枚举、子界类型和集合类型定义、变量声明及运用。

6.1 类型定义语句Object Pascal高级数据类型在使用之前必须首先使用类型定义语句进行定义。

经过定义后的高级数据类型就可在程序代码中使用。

其用法与常用的整型、字符串型用法相同。

类型定义语句的语法格式为:Type<标识符1>=<类型1>;<标识符2>=<类型2>;…<标识符n>=<类型n>;说明:1.保留字type 表示类型定义段开始。

2.<标识符>是用户为自定义数据类型取的名称。

说明:在上例中,tform1是用户自定义的类型名称,它是一个tform类型,在tform1中包含一个button1对象,该对象是一个tbutton类型,同时还包含了一个事件过程button1click.TypeA=integer;B=real;C=char;D=shring;6.2 枚举类型在处理实际问题过程中常用到的数据取值可能总是有限的几个值,例如学生成绩等级有优秀、良好、及格、不及格;处理这一类数据时可以用数值或字符串来表示,比如用“1”表示优秀,“2”表示良好。

利用数值表示此类数据不直观,容易出错,利用字符串表示不方便处理,占用内存较多。

编译原理第6章(刘磊 机械工业出版社)

编译原理第6章(刘磊 机械工业出版社)

TypePtr Kind
Level Parm Class
例有声明如下:
CONST pai= 3.14 ; TYPE vector=ARRAY[1..10] OF integer; VAR x, y : real ; r, s : vector ; 设当前层数和可用offset值分别为L和0, 构造标识符 pai, vector, x, y, r 和s 的属性表示。
6.4 值的内部表示

非结构类型值的内部表示:
整型:有直接对应的机器表示。 实型:有直接对应的机器表示。 指针:无符号整型数。 有序类型:整数形式
有序类型的量表示:



整型常量:ord(N) = N 布尔常量:ord(false)=0, ord(true) = 1 字符常量:ord(C) = ASCⅡ (C) 枚举常量:设有枚举类型(D,A,B),则有 ord(D)=0,ord(A)=1,ord(B)=2 子界常量:设有子界类型C1..C2,则值空间 为[ord(C1)...ord(C2)]
TokenList
语义定义 自然语言描述规定
判定
三种内部表示
标识符的内部表示 类型的内部表示 值的内部表示
6.2
标识符种类:
标识符的内部表示
常量名、类型名、变量名、函数名、过程名、域名。 TYPE idkind=( consKind, typeKind, varKind, fieldKind, procKind,funcKind )
标准类型: Size sub: enum: array:
Size Size Size Kind HostType Elems Low Up Leng
Kind Kind Kind

pascal集合


树德实验中学 余淑蓉
练习 1、设有集合 、设有集合a=[1,3,5,7,9],b=[2,4,6,8,10],c=[1,2,3,4,5] ,d=[5], , , , , , , , , , , , , , , , e=[ ],求下列表达式的结果。 ,求下列表达式的结果。 ① (a+b)-c + - ([1,3,5,7,9]+[2,4,6,8,10]) - [1,2,3,4,5] , , , , , , , , , , , , [1,2,3,4,5,6,7,8,9,10] - [1,2,3,4,5] = [6,7,8,9,10] , , , , , , , , , , , , , , , , , ② (a * c)=d [1,3,5,7,9] * [1,2,3,4,5] = [1,3,5] < > [5] , , , , , , , , , , ③ (a+e) * (b+d) + + =([1,3,5,7,9]+[ ]) * ([2,4,6,8,10] + [5]) , , , , , , , , = [1,3,5,7,9] * [2,4,5,6,8,10] , , , , , , , , , = [5] ④ 7 in (((a-b)-c)-d) ((a-b)-c)-d=(([1,3,5,7,9]- [2,4,6,8,10]) - [1,2,3,4,5]) – [5] , , , , , , , , , , , , = ([1,3,5,7,9] - [1,2,3,4,5]) - [5] = [7,9] - [5] =[7,9] , , , , , , , , , 7 in [7,9] =true , ⑤ c<=(a+b) + =true ⑥ a>=b*e – c =true 树德实验中学 余淑蓉 [1,2,3,4,5]<= ([1,3,5,7,9]+[2,4,6,8,10]) , , , , , , , , , , , , [1,2,3,4,5]<=[1,2,3,4,5,6,7,8,9,10] , , , , , , , , , , , , [1,3,5,7,9]>=([2,4,6,8,10] * [ ] - [1,2,3,4,5] , , , , , , , , , , , , [1,3,5,7,9 ]>=[ ]-[1,2,3,4,5]=[ ] , , , , , , , , false

信息学奥赛培训材料

分支程序设计一、IF语句的嵌套在if语句中,如果then子句或else子句仍是一个if语句,则称为if语句的嵌套。

例1计算下列函数Y=1 (x>0)=0 (x=0)=-1(x<0)分析:根据输入的x值,先分成x>0与x≤0两种情况,然后对于情况x≤0,再区分x是小于0,还是等于0。

源程序如下:program ex;varx:real;y:integer;beginwrtie('Input x:');readln(x);if x>0then y:=1{x>0时,y的值为1}else {x≤0时}if x=0then y:=0else y:=-1;writeln('x=',x:6:2,'y=',y);end.显然,以上的程序中,在then子句中嵌套了一个Ⅱ型if语句。

当然程序也可以写成如下形式:program ex;varx:real;y:integer;beginwrtie('Input x:');readln(x);if x>=0thenif x>0then y:=1else y:=0else y=-1;writeln('x=',x:6:2,'y=',y);end.但是对于本题,下面的程序是不对的。

y:=0;if x>=0thenif x>0 then y:=1else y:=-1;明显,从此人的程序书写格式可以看出,他想让else与第一个if配对,而事实上,这是错的。

因为pascal规定:else与它上面的距它最近的then配对,因此以上程序段的逻辑意义就与题义不符。

要使上程序段中esle与第一个then配对,应将程序段修改为:y:=0; 或者 y:=0;if x>=0 if x>=0then if x>0 thenthen y:=1 beginelse if x>0 then Y:=1;else y:=-1; endelse Y:=-1;二、case语句上面我们知道可以用嵌套的if语句实现多分支的选择结构。

pascal教程-自学完整版


2021/2/4
目录
• 第一章 算法、程序设计与编译器基础
• 第二章 Pascal基础
• 第三章 程序设计初步
• 第四章 枚举、子界与数组
• 第五章 过程与函数
• 第六章 集合、记录与文件
• 第七章 指针等动态类型
• 第八章 2021/2/4 面向对象与1 单元设计
2
第一章
算法、程序设计与编译器基础
2021/2/4
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作例如移动自增因此汇编源程序一般比较冗长复杂容易出错而且使用汇编语言编程需要有更多的计算机专业知识但汇编语言的优点也是显而易见的用汇编语言所能完成的操作不是一般高级语言所能实现的而且源程序经汇编生成的可执行文件不仅比较小而且执行速度很快
pascal教程-自学完整版
• 全屏/小窗口转换
• 关闭
• 单步执行当前程序
• 单步执行当前程序
• 导出exe程序
• 纠错
1
• 调试并导出exe25程序
.pas .bak .o .exe .ppu .tpu
2021/2/4
文件关联
1
26
第二章
Pascal基础
2021/2/4
1
27
目录
• 第一讲 Pascal语言特点、优点与缺点 • 第二讲 Pascal程序结构 • 第三讲 Pascal基本符号、保留字和标识符 • 第四讲 Pascal标准数据类型、常量与变量 • 第五讲 Pascal标准函数、过程、运算符与表达
是机器语言编写的程序无明显特征,难以
忆,不便阅读和书写,且依赖于具体机种
局限性很大,机器语言属于低级语言。
2021/2/4

《高级语言程序设计》教案

《高级语言程序设计》教案第一章:概述1.1 课程介绍介绍《高级语言程序设计》课程的目的、意义和主要内容讲解高级语言程序设计与低级语言程序设计的区别和联系1.2 高级语言的发展历程介绍高级语言的发展历程,如Fortran、Cobol、Pascal、C、C++、Java等讲解各种高级语言的特点和应用领域1.3 编程规范和编程习惯讲解编程规范和编程习惯的重要性介绍一些通用的编程规范和编程习惯第二章:C语言基础2.1 C语言简介介绍C语言的历史、特点和应用领域讲解C语言的优点和缺点2.2 基本数据类型和运算符讲解C语言的基本数据类型,如整型、浮点型、字符型等介绍各种运算符的用法和优先级2.3 控制语句讲解C语言的控制语句,如if、switch、for、while等举例说明控制语句的使用方法和注意事项第三章:函数和编译预处理3.1 函数的定义和调用讲解函数的定义、声明和调用方式介绍函数的参数传递和返回值3.2 局部变量和全局变量讲解局部变量和全局变量的概念和作用域介绍全局变量和局部变量的相互访问问题3.3 编译预处理讲解编译预处理的概念和作用介绍宏定义、文件包含、条件编译等预处理指令的使用方法第四章:数组和字符串4.1 一维数组讲解一维数组的定义、声明和初始化介绍数组的访问和排序等基本操作4.2 二维数组和多维数组讲解二维数组和多维数组的定义、声明和初始化介绍数组的访问和应用实例4.3 字符串讲解字符串的概念和表示方法介绍字符串的常用操作,如字符串长度、字符串拷贝、字符串连接等第五章:指针5.1 指针的概念和表示方法讲解指针的概念和表示方法介绍指针的赋值和指针的运算5.2 指针与数组讲解指针与数组的关系介绍通过指针访问数组元素的方法5.3 指针与函数讲解通过指针传递函数参数的方法介绍指针作为函数返回值的使用方法5.4 指针与动态内存分配讲解动态内存分配的概念和原理介绍使用指针进行动态内存分配的方法和注意事项第六章:结构体、联合体和枚举6.1 结构体的定义和使用讲解结构体的概念和定义方法介绍结构体的使用,包括结构体的声明、初始化和访问成员6.2 联合体的概念和使用讲解联合体的概念和定义方法介绍联合体的使用,包括联合体的声明、初始化和访问成员6.3 枚举类型的定义和使用讲解枚举类型的概念和定义方法介绍枚举类型的使用,包括枚举类型的声明和访问枚举成员第七章:文件操作7.1 文件和文件系统简介讲解文件和文件系统的概念介绍文件的基本操作和文件系统的工作原理7.2 文件打开与关闭讲解文件打开和关闭的操作介绍文件指针的概念和文件的状态7.3 文件的读写操作讲解文件的读写操作介绍文件的读写模式和缓冲区7.4 文件的定位操作讲解文件的定位操作介绍文件的位置指针和文件定位的方法第八章:标准库函数8.1 标准输入输出库函数讲解标准输入输出库函数的使用介绍常用的输入输出函数,如printf、scanf、puts、getchar等8.2 字符串处理库函数讲解字符串处理库函数的使用介绍常用的字符串处理函数,如strlen、strcpy、strcat、strcmp等8.3 数学计算库函数讲解数学计算库函数的使用介绍常用的数学计算函数,如sin、cos、tan、sqrt等第九章:编程实践9.1 程序设计的基本步骤讲解程序设计的基本步骤,包括需求分析、设计算法、编写代码、调试和优化等强调编程实践中的规范性和团队合作的重要性9.2 常见编程问题和解决方案分析常见的编程问题和错误,如内存泄露、指针错误、逻辑错误等提供解决编程问题的方法和技巧9.3 编程实例和案例分析提供典型的编程实例,如计算器、文本编辑器、小游戏等分析实例中的关键算法和编程技巧强调重点概念和技能的重要性10.2 高级语言程序设计的展望介绍高级语言程序设计的发展趋势和新技术探讨高级语言程序设计在未来的应用前景重点和难点解析重点环节1:高级语言程序设计与低级语言程序设计的区别和联系重点环节2:C语言的特点和应用领域重点环节3:编程规范和编程习惯的重要性重点环节4:C语言的基本数据类型和运算符重点环节5:控制语句的使用方法和注意事项重点环节6:函数的定义、声明和调用方式重点环节7:局部变量和全局变量的概念和作用域重点环节8:编译预处理的概念和作用重点环节9:数组、字符串和指针的关系和操作重点环节10:结构体、联合体和枚举的使用场景重点环节11:文件操作的实现方法和注意事项重点环节12:标准库函数的使用和作用重点环节13:编程实践中的规范性和团队合作的重要性重点环节14:常见编程问题和解决方案重点环节15:编程实例和案例分析重点环节16:高级语言程序设计的发展趋势和新技术本文档对《高级语言程序设计》课程的十个重点环节进行了详细的解析和补充。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章枚举型和子界型
6.1类型定义
类型定义的语法格式:
type
<标识符1>=<类型1>;
<标识符1>=<类型1>;
……
<标识符n>=<类型n>;
6.2枚举类型
通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序识一致的。

枚举类型的形式:(标识符1,……,标识符n)
例如:type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday) 枚举元素只能是标识符,而不能是数值常量或字符常量。

例如以下的定义是错误的:type daystype=('sun','mon','tue','wed','thu','fri','sat')
枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。

同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。

例如以下的定义是错误的:
type daytype1=(monday,tuesday);
daytype2=(monday,wednesday);
可以将枚举类型的定义和变量的定义结合在一起。

例如:var a:(monday,tuesday,sunday) 枚举类型属于顺序类型。

根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始。

例如:已经定义daystype
ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday
但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。

Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。

枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。

若是才能赋给枚举变量,否则就会出错。

例如:枚举值的输出
case day of
sunday:write('sunday');
monday:write('monday');
tuesday:write('tuesday');
wednesday:write('wednesday');
thursday:write('thursday');
friday:write('friday');
saturday:write('saturday');
end;
6.3子界类型
子界类型是由整型、字符型、枚举型、布尔型的两个常量指定该类型的值域区间。

子界类型的形式:
常量..常量
两个常量必须是同一种顺序类型。

例如:a..b,要求a<=b
例如:
type a=1..3;
b='a'..'d';
一个子界类型继承它的常量类型的运算符和标准函数,常量类型相容的不同子界类型可以混合运算,可以赋值。

可以将子界类型的定义和变量的定义结合在一起。

例如:var a:1..9 例按月、日、年顺序读入一日期,输出该日期是这一年中的第几天。

program date;
var year:0..2010;
month,i:1..12;
day:1..31;
dayth:integer;
begin
read(month,day,year);
dyath:=0;
for i:=1 to month-1 do
case i of
1,3,5,7,8,10,12:dayth:=dayth+31;
2:if ((year mod 4=0)and(year mod 100<>0)or(year mod 400 =0)
then dayth:=dayth+29
else dayth=:=dayth+28;
4,6,9,11:dayth:=dayth+30;
end;
dayth:=dayth+day;
writeln(dayth)
end.
6.4类型相容和赋值相容
1.类型相容性
类型相容是对参加同一运算的两个对象的类型要求。

设有两个变量,如果满足下列条件之一,就说这两个变量的类型相容。

(1)两个变量的类型相同
a.两个变量被同一类型说明。

例如:var a,b:1..30;
b.两个变量的类型是同一类型标识符。

例如:var a:1..30;
b:1..30;
c.两个变量的类型是不同的类型标识符,但在类型定义中已经说明两个标识符相同。

例如:type date=1..100;
range=date;
var m:data;
n:range;
(2)一个变量的类型是另一个变量的子界。

(3)两个变量的类型都是同一基类型的子界。

(4)两个变量的类型是基类型相容的集合类型。

(5)两个变量的类型是成分相同的串类型。

2.赋值相容性
赋值相容是对赋值操作的两个对象的类型要求。

设赋值语句“:=”左边的变量类型为T,右边表达式的类型为E,若类型T和类型E满足下列条件之一,则称他们是赋值相容的。

(1)T和E是相同的类型,而且类型不是文件类型,也不是具有文件类成分的构造类型。

(2)T是实型,而E是整型或整型的子界。

(3)T和E是类型相容的顺序类型,并且E的值不超出T所定义的值的范围
(4)T和E是类型相容的集合类型,并且E的值不超出T所定义的值的范围
(5)T和E是类型相容的串类型。

当T和E是顺序类型或都是集合类型时,不仅要求这两个类型是相容的,而且要求E 的值不超出T所定义的值的范围;否则将产生类型溢出,而这种错误只能在你运行程序时进行检查,因此你必须要避免不发生这种错误。

相关文档
最新文档