首页
社区
课程
招聘
[旧帖] 知识整理2 0.00雪花
发表于: 2012-8-11 12:54 1460

[旧帖] 知识整理2 0.00雪花

2012-8-11 12:54
1460
           Delphi数据类型与循环语句
标识符:
Delphi 是由多重语法单元构成的,包括常量,变量,过程,函数,类型名,属性,对象,单元,程序等。标识符就是这些语法单元的名字。 定义标识符一般采用一个或多个具有失单意义的英文单词,但是要注意以下5点。
标识符由字母,数字,或下划线组成,不能包含空格。
必须以字母或下画线开始。
标识符可以是任意长度,但只有前面的255个字符有效
不能使用保留字做标识符。
保留字:
and        array        as        asm        begin
case        class        const        constructor        destructor
dispinterface        div        do        downto        else
and        except        exports        file        finlization
finally        for        goto        function        if
implementation        initialization        inherited        in        inline
nil        not        object        of        or
out        packed        procedure        program        property
raise        record        repeat        resourcestring        set
shl        shr        string        then        threadvar
to        try        type        unit        until
uses        var        while        with        xor
                               
标识符不区分大小写
变量:就是在程序运行过程中,其值可以发生改变的标识符。
申明变量的语法:
var
变量名清单:数据类型;
若同时定义多个数据类型一样的变量,中间用,分开。
例:
asd,asdf,adfg:string;

常量:就是在程序运行过程中,其值不可改变的标识符。常量申明表以保留字const开始。
例:
const
pi=3.1415926;
常量是只读的,如果用户试图在程序中改变常量的值,Delphi 将产生一个编译错误!
作用范围:每一个常量,变量,方法,类型等标识符,都有自己的有效果范围,只有在其有效的范围,才能对该标识符进行操作;超出范围之外,就不能使用了。
delphi数据类型:

整数(integer)类型
整数是所有数值的子合集,请尽量定义整数类型,因为他的实行效率最高。他有下面9种不同的类别,我们看下表:
类别        取值范围
integer        -2147483648-2147483648
cardinal        0-4294967295
shortint        -128-127
smallint        -32768-32767
longint        -2147483648-2147483648
Int64        -263-263-1
byte        0-255
word        0-65535
longword        0-4294967295

实数(real)类型
实数以浮点数表示的数值组成的集合。
注意:整数类型和实数类型是两重完全不同的数据类型。
类别        取值范围        有效精度        字节数
Real         5.0×10-324-1.7×10308        15-16        8
Real48        2.9×10-39-1.7×1038        11-12        6
single        1.5×10-45-3.4×1038        7-8        4
Double        5.0×10-324-1.7×10308        15-16        8
extended        3.4×10-4932-1.1×104932        19-20        10
comp        -263-263-1        19-20        8
currency        -922337203685477.5808-922337203685477.5808        19-20        8
                       

字符(character)类型
类别        字节数        说明
char        1        Char 是一般的字符类型,与ansichar类相同
ansichar        1        Ansichar是单字节(8bit)大小的类型,用语保存单个扩展ansi字符集
widechar        2        Widechar 是两个字节(16bit)大小的类型,用于保存unicode集,unicode字符集的前256个字符与ansi字符集相同
注意:由于操作系统平台支持不同的字符集,因此一个字符的长度并不一定是一个字节,要想得到字符的长度,可以用sizeof()函数测得。
顺便提一下和字符相关的三个函数
ord() 函数:返回一个字符的序号
chr() 函数:把一个整型数转换为相应序号的字符
upcase() 函数:把字符的小写转换成大写
布尔(boolean)类型
只有两个值,fase和true;
字符串(string)类型
申明方法:例:add:string[10];
申明add为包含10个字符的字符串变量
可用字符串连接符“+”将两个字符串连成一个新的字符串

循环语句:
repeat语句:
语法格式:
repeat
语句1;
语句2;
……
语句N;
until 表达式

解释:循环语句一到语句N,直到表达式的值为真是跳出循环

while语句
while 表达式 do
语句1;
语句2;
……
语句N;
与上面的不同之处是先判断表达式是否为真,为真执行循环,直到表达式为假时调处循环!

For语句
For 循环变量:=初值to 终值 do
语句;
需要说明的7点
循环变量是用来控制循环次数的,在程序的开头需要定义变量,起类型一般为整型
初值及终值可以是常数或表达式。在执行FOR语句中,初值及终值的表达式都只计算一次
for 语句的执行过程是:开始时,令循环变量等于初值,如果在初值后面的保留字是to ,而且循环变量小于或等于终值,则执行do后面的语句一次,同时,循环变量的值加1直到大于终值
for语句中的do 也可用 downto取代,此时,首先是循环变量的初值与终值比较,如果初值大于或者等于终值,则执行循环一次,同时循环变量减1,直到循环变量小于终值为止.
for 语句可以嵌套使用
使用for语句时,应注意不要在循环内改变循环变量的值,以免造成不确定性
当for语句循环结束后,一般不应直接使用循环变量的值。

                 条件语句

  所谓的条件语句根据一些判断的条件,决定要执行的任务。
两种基本形式:if 语句和CASE语句

  IF 语句:
  If语句可以分成3种不同的形式
简化的if语句 其语法格式为:
if 表达式 then
语句;

解释:比较表达式当值为真的时候,就执行 then 后面的语句,如果为假,就跳过此语句
   例:if a=1 then
         label1.caption:=’我爱你!’;
标准的IF语句
格式: if 表达式 then
    语句1
    else
    语句2;
  解释:比较表达式,当值为真的时候,就执行语句1 为假执行语句2
  例:if a=1 then
    label1.caption:=’我爱你’
    else
    label1.caption:=’其实,我真的不想考虑这个问题,太早了!’;
注意的一个问题:因为复合语句在Delphi中被看做是一个语句,因次,只有在语句2后面加分号!

嵌套的if语句
格式 if 表达式1 then
    语句1
    else if 表达式2 then
    语句2
    ……..
    else if 表达式n-1 then
    语句n-1
    else
    n-1
    else
    语句n;
    
    例:
    if a>30 then
    b:=a*a
    else if a>20 then
    b:=-a*a
    else if a>10 then
    b:=a
    else
    b:=0;
    
    上面例子的解释:
    当a大于30的时候 b的值等于A的平方,也就是A*A
    当A的值小于30但是大于20的话 b的值等于-a*a
    当A的值小于20但大于10的话,a的值等于A
    否则 B的值为0
    
CASE语句:
    If 语句是根据某种条件,最多仅有两种的后继流程流向。如果想在多个语句中选择后继续流向,就要用case语句。Case在很多情况下是可以替代嵌套if语句,q去实现不同情况的选择。
    例如:
    case 表达式 of
    常数1:语句1;
    常数2:语句2;
    …………..
    常数N:语句N;
    end;
    这里,有如下8点需要说明.
表达式必须是序数类型,不能是实型值或字符串
常数1,常数2…常数N 成为case 常数。常数必须与表达式类型一至
case语句的执行过程是:当表达式的值与某一case 常数相等时,就去执行该常数后的语句。例如:
case a of
1:b:=a-1; //当a的值等于1时,b的值为a-1
2:b:=a+1; //当a的值等于2时,b的值为a+1
3:b:=a;  //当a的值等于3时,b的值为a
end;
这里A 是整形变量,可以取值为1.2.3 。
case 常数冒号右边的语句可以是函数,过程调用,条件语句,复合语句等,这为我们提供了极大的灵活性。
case 常数可以是一个常数区间,在下界与上界之间用两个连续的圆点分开,例如:1..100   代表从1-100
应注意个case常数不能互相覆盖。例如:
case a of
1:edit1.text:=’Computer’;
5:edit1.text:=’car’;
2..10:edit1.text:=’money’;
end;
大家注意看,这个例子中,5和下一句的2...10 互相覆盖了,这样是不允许的。

在case 语句中也可包含else 部分,格式:
case 表达式 of
常数1:语句1;
常数2:语句2;
……..
常数n:语句n;
else
语句n+1
end;
其含义是,当表达式的值与某个case常数相等,就去执行后面的语句,如果表达式的值与所有的case 常数都不相等时,就去执行else 后的语句n+1.注意,else 后面的结尾没有分好。
         
多个case 常数可以共用一条公共语句,各case常数间用逗号分开.
例如:
case n of
1,3,5,7,9:edit1.text:=’odd digit’;
2,4,6,8,10:edit1.text:=’even digit’;
end;

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看起来还好吧。
2012-8-12 11:37
0
游客
登录 | 注册 方可回帖
返回
//