参考:http://blog.csdn.net/qustdong/article/details/9230743

参考:http://www.cnblogs.com/xumenger/p/4402227.html

1.根据枚举定义集合

type
TMyColor = (mcBlue, mcRed); //定义了一个枚举类型TMyColor
TMyColorSet = set of TMyColor; //定义了一个基于枚举类型的集合TMyColorSet

2.根据枚举定义数组

type
TMyEnum = (red, green, blue); //定义枚举
procedure TForm1.ButtonClick(Sender : TObject);
const
ColorArr : array[TMyEnum] of string = ('红', '绿', '蓝'); //定义数据
var
myEnum : TMyEnum; //定义枚举类型
begin
for myEnum := Low(ColorArr) to High(ColorArr) do
begin
ShowMessage(ColorArr[myEnum]);
end;
end.

  注意其中根据枚举定义相关的数组的语法

  注意其中使用枚举进行循环控制的方法

3.枚举类型的相关知识,参考http://www.cnblogs.com/xumenger/p/4402227.html

4.子界类型

  如果我们定义一个变量为Integer型,那么它的取值范围一般为-32768~32767.而事实上,每个程序所用到的变量的值都有一个确定的范围。例如,人的年龄一般为1~120岁,一年中的月数为1~12,一个月中的天数为1~31天等等

  如果能在程序中对所用的变量的值域做具体规定,就便于检查出那些不合法的数据,这样就能更好的保证程序运行的正确性且在一定程度上节省了内存空间

  子界类型就能很好的解决上面的问题。此外,在数组的定义中,常用到子界类型,以规定数组下标的范围

  1)定义格式:

    type 子界类型标识符 = 常量1..常量2  //其中常量1称为子界的下界,常量2称为子界的上界

    上界和下界必须是同一顺序类型(该类型称为子界类型的基类型),且上界的序号必须大于下界序号,例如

type
age = 1..100;
letter = 'a'..'z';

    可以直接在变量说明中定义子界类型,如

type
letter = 'a'..'z';
var
ch1, ch2 : letter;

    可以合并成

var
ch1, ch2 : 'a'...'z';

  2)子界类型数据的运算规则

    凡是可以使用基类型的运算规则同样适用于该类型的子界类型

      例如,可以使用整型变量的地方,也可以使用以整型为基类型的子界类型数据

    对基类型的运算规则同样适用于该类型的子界类型

      例如,div,mod要求参数运算的数据为整型,因而也可以为整型的任何子界类型数据

    基类型相同的不同子界类型可以进行混个运算,比如有以下说明

var
x : 1..100;
y : 1..500;
z : 1..1000;
a : integer;

      则下面的语句是合法的

a:=Sqr(x) + y + z;
z := x + y;

      下面的语句:

y := x + z + a;

      当x+z+a的值在1~500范围内也就是(y所属的子界类型的范围)就是合法的,否则就会出错

  3)子界类型的应用举例

    例1,使用子界类型情况语句,当输入月、日、年(10 30 1986),输出30 oct 1986

var
month : 1..12;
day : 1..31;
year : 1900..2003;
begin
write('Enter date(mm dd yyyy):');
readln(month, day, year);
write(day);
case month of
1:write('Jan' :5);
2:write('Feb' :5);
3:write('Mar':5);
4:write('Apr':5);
5:write('May':5);
6:write('Jun':5);
7:write('Jul':5);
8:write('Aug':5);
9:write('Sep':5);
10:write('Oct':5);
11:write('Nov':5);
12:write('Dec':5);
end;
writeln(year:7);
end.

    例2,将一个四位的十六进制数转换成十进制

var
ch : char;
n : 1..4;
d1, d2, d3, d4, t : 0..15;
s : real;
begin
write('The hex number is');
for n:=1 to 4 do
begin {将四位的十六进制数分四次作为字符读入}
read(ch);
write(ch);
{分别转换为十进制的数d1, d2, d3, d4}
if (ch >= '0') and (ch <= '9') then
t := ord(ch) - 48;
if (ch >= 'a') and (ch <= 'z') then
t:=ord(ch)-87;
if (ch >= 'A') and (ch <= 'Z') then
t:=ord(ch)-55;
case n of
1 : d1 := t;
2 : d2 := t;
3 : d3 := t;
4 : d4 := t;
end;
end;
s := d1*16*16*16 + d2*16*16 + d3*16 + d4;
writeln('dec:', s);
end.

Delphi基本数据类型---枚举、子界、集合、数组的更多相关文章

  1. Delphi基本类型--枚举 子界 集合 数组

    [plain] view plain copy <strong>根据枚举定义集合 </strong> TMyColor = (mcBlue, mcRed); TMyColorS ...

  2. mysql 数据类型 枚举类型与集合类型

    字段的值只能在给定范围中选择,如单选框,多选框 enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female   set 多选 在给定的范围内可以选择一个或一个以上的值(爱好 ...

  3. Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单

    原文:Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单 长长的列表文字类型文件 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 214 ...

  4. Delphi 常用数据类型 字符串类型 数据类型等等

    字符串类型 Delphi有三种类型的字符: ●AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. ●WideChar这是2字节的Unicode字符. ●Char在目前Delphi早 ...

  5. { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型

    MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...

  6. Mysql数据类型《三》枚举类型与集合类型

    枚举类型与集合类型 字段的值只能在给定范围中选择,如单选框,多选框 enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female set 多选 在给定的范围内可以选择一个或一 ...

  7. Delphi基础-数据类型

    枚举类型 Pascal程序不仅用于数值处理,还更广泛地用于处理非数值的数据.例如,性别.月份.星期几.颜色.单位名.学历.职业等. ​ 1. 枚举类型的定义 格式: type 枚举类型标识符=(标识符 ...

  8. Delphi中实现MDI子窗体(转)

        Delphi中实现MDI子窗体 用MDI实现浏览子窗口,具有窗口管理功能,同屏观看多个网页的内容  ① 多文档窗体(MDI) MDI窗体是一种具有主子结构的窗体体系,微软的Word便是其中的一 ...

  9. 6-12 varchar和char 枚举类型enum 集合set

    1       字符类型char和varchar #官网:https://dev.mysql.com/doc/refman/5.7/en/char.html #注意:char和varchar括号内的参 ...

随机推荐

  1. ssh(安全外壳层)

    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程登录会 ...

  2. Android 中的消息传递,详解广播机制

    --------------------------------------广播机制简介--------------------------------------------- Android中的广 ...

  3. Dom初

    DOM基础 •什么是DOM •浏览器支持情况 lDOM节点 •childNodes  nodeType –获取子节点 <!DOCTYPE html PUBLIC "-//W3C//DT ...

  4. HTK搭建语音拨号系统实验材料下载

    选自:http://maotong.blog.hexun.com/6267266_d.html 压缩包包括全部的配置文件,脚本文件,必备的模型文件和实验手册. 全部实验材料的下载链接: 1 http: ...

  5. php过滤ascii控制字符

    还记得以前在工作中,将爬来的其它网站的数据导到xml.但是会遇到一个问题:即网页会有ascII的控制字符. 一开始以为是别人为了防止采集而加入的,然后发现一个就往过滤表里加一个.直到慢慢发现,他们都是 ...

  6. easyui datagrid中datetime字段的显示和增删改查问题

    datagrid中datetime字段的异常显示: 使用过easyui datagrid的应该都知道,如果数据库中的字段是datetime类型,绑定在datagrid显式的时候会不正常显示,一般需要借 ...

  7. 1.把二元查找树转变成排序的双向链表[BST2DoubleLinkedList]

    [题目]:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向. 比如将二元查找树 . 10 / \ 6 14 / \ / \ 4 8 12 16 转 ...

  8. ios 使用block中使用self可能产生的循环引用

    在block中调用 self,那么就会引起循环引用问题,那么这是为什么呢? 为什么self会对block进行强引用呢???? 这里推荐一篇关于block的专业文章,http://blog.csdn.n ...

  9. 1.nodejs权威指南--基础知识

    1. 基础知识 1.1 全局作用域及函数 1.1.1 全局作用域 在nodejs中,定义了一个global对象,代表nodejs中的全局命名空间,任何全局变量.函数或对象都是该对象的一个属性值 1.1 ...

  10. 2. javacript高级程序设计-在HTML中使用JavaScript

    1.1 <script>元素 向HTML页面中插入JavaScript的主要方法,就是使用<script>元素,<script>元素定义了一下6个元素: (1). ...