{
本程序演示 Delphi Pascal 的基本语法
1、变量及变量的初始化
2、常量
3、运算符
3、
4、
}
program Syntax;
{$APPTYPE CONSOLE}
uses
SysUtils,Windows,StrUtils;
{ 变量
1、Delphi中变量必须在固定的地方进行定义
2、Delphi中通过关键字 var 来定义变量
3、语法格式为:
var 变量名标识符列表 : 变量类型 ;
变量名列表中的各个变量名之间用逗号隔开
4、初始化格式为
var 变量名标识符列表 : 变量类型 = 初始化值;
5、注意三个符号的位置 冒号 等于号 和 分号
}
var
//第一种形式的变量定义
greetWord:string;
//第二种形式的变量定义
nAdd,nAddFactor:integer;
//变量的初始化
rad : single = 5.0 ;
//宽字符字符串
chinaName:WideString;
//ansichar 类型单字节字符串
englishName:AnsiString;
//定义一个没有初始化的字符串
noInitString:string;
//定义一个与win32兼容的字符串
dirWideString:widestring;
dirString:ansistring;
{ 常量
1、Delphi中预定义了一部分常量
true Boolean 类型的true
false Boolean 类型的false
2、在Delphi中利用 const 关键字定义常量
3、语法格式为
const 常量名标识符 : 常量的数据类型 = 初始化值。
4、初始化值必须有,常量的数据类型可以省略,Delphi会根据初始化值自动确定
常量的数据类型,进而分配相应的内存空间。 但是对于整数型的常量,内存
空间的分配遵循能容纳初始化值的最小空间数据类型确定。
例如:
10 会确定为 shortint类型
5、常量还有一种常量字面值,就是和C语言中一样的字面值,例如
10 整数常量
2.06 实数常量
'Hello world' 字符串常量
'a' 字符常量
}
const
pi:single=3.1415926;
{ 要点
1、Delphi中允许在定义变量和常量的时候使用编译期函数来初始化变量。
2、常见的编译期函数有:
Sizeof()
Ord()
Chr()
Trunc()
Round()
High()
Low()
这里就不举例啦,一般不太会用到,
}
begin
//赋值运算符 :=
greetWord := 'Hello, Wellcome to Delphi world!';
//比较运算符 = 判断是否相等
nAdd := 10;
nAddFactor := 1;
if nAdd = nAddFactor then
begin
writeln('Equal.');
end;
//比较运算符 <> 不等于运算符, 如果不相等则返回TRUE
if nAdd <> nAddFactor then
begin
writeln('Not Equal.');
end;
//逻辑运算符 and 与 ,注意Delphi中逻辑运算符的优先级要高于比较运算符
if (1 = nAdd) and (2 <> nAddFactor )then
begin
writeln('The judge is ture.');
end;
//逻辑或 or 非 , 注意Delphi中逻辑运算符的优先级要高于比较运算符
if (1 = nAdd) or (2 <> nAddFactor )then
begin
writeln('The judge is ture.');
end;
//逻辑非 not 非, 注意Delphi中逻辑运算符的优先级要高于比较运算符
if not (1 = nAdd) then
begin
writeln('1 is not equal nAdd.');
end;
{ 数学运算符
1、数学运算符基本与C语言类似,但是有几个特殊的需要说明一下
2、mod 求模运算符
3、div 整数除法, 得到的结果是整数
4、/ 浮点数除法,得到的结果是浮点数
}
writeln('整数除法 3 div 2 的结果是:');
writeln(3 div 2);
writeln('浮点数除法 3 / 2 的结果是:');
writeln(3 / 2);
writeln('求余数 3 mod 2 的结果是:');
writeln(3 mod 2);
{ 按位运算符
1、Delphi也提供了按位运算的运算符
2、and 按位与
3、or 按位或
4、not 按位非
5、xor 按位异或
6、shl 按位左移
7、shr 按位右移
}
writeln('2 and 5 按位与的结果是:');
writeln(2 and 5);
writeln('2 or 5 按位或的结果是:');
writeln(2 or 5);
writeln('not 2 按位非的结果是:');
writeln(not 2);
writeln('2 xor 5 按位异或的结果是:');
writeln(2 xor 5);
writeln('2 shl 5 按位左移的结果是:');
writeln(2 shl 5);
writeln('2 shr 5 按位右移的结果是:');
writeln(2 shr 5);
{ 增量运算符
1、inc 增加
2、dec 减小
3、有两种形式 inc(a); 得到的结果是 a := a + 1
inc(a, b); 得到的结果是 a := a + b
}
writeln('nAdd is:');
writeln(nAdd);
writeln('Inc(nAdd) is:');
Inc(nAdd);
writeln(nAdd);
Dec(nAdd);
writeln('Dec(nAdd) is:');
writeln(nAdd);
{ 数据类型
1、整数 8位、16位、32位有符号无符号整数,64位有符号整数
2、4位、6位、8位、10位浮点型,64位货币类型
3、1字节字符、2字节字符
4、定长字符串、变长字符串
5、NULL结尾字符串、NULL结尾宽字符串
6、动态两字节字符串
7、1字节、2字节、4字节boolean类型
}
//ansichar 具有标准一字节大小
if sizeof(char)=sizeof(ansichar) then
begin
writeln('char and ansichar have the same size.');
end;
//char 具有和widechar一样的有两字节大小
if sizeof(char)=sizeof(widechar) then
begin
writeln('char and widechar have the same