【转】Pascal用到的数和符号

转载自http://hi.baidu.com/liuzexin5847/item/6d7b004ef278cfeda4c0667b

 

Pascal用到的数和符号

1、PASCAL语言的字符表

是ASCII字符集,主要有:

 ⑴26个英文字母(不分大小写)

 ⑵十个数字符号

 ⑶特殊符号。如+-*/=><][:;.等

2、标识符

以字母开头的字母数字序列(大小写等效,可跟下划线_),用来标识常量、变量、程序、函数等。

自定义标识符时要注意遵循此规则。

3、标准标识符与保留字

标准标识符有40个,五类(false true maxint Boolean real integer char abs trunc read write)详见书P16。

保留字是Pascal语言中具有特定的含义的字符。在PASCAL7.0中书写保留字的时候,字符颜色会变为白色。
一共36个保留字:
(program function begin end procedure var const array if then else case for to do repeat until while and div in mod not or nil

4、常量和变量:

程序设计中经常要用到常量和变量,这些都必须先定义后才能使用。

PASCAL语言的常量与变量都必须在程序头部先加以说明,即说明常量、变量的的名称及数据类型。
PASCAL语言的数据类型很多,最常用的有以下几种:

  • 整数类型(没有小数部分)

INTEGER:取值范围 [-32768, 32767]。占用内存 2个字节( 16位)。

WORD:取值范围 [0, 65535]。占用内存 2个字节( 16位)。

BYTE:取值范围 [0, 255]。占用内存 1个字节( 8位)。

LONGINT:取值范围 [-2147483648, 2147483647]。占用内存 4个字节( 32位)。

SHORTINT:取值范围 [-128, 127]。占用内存 1个字节( 8位)。

特点:

  1. 可进行+、-、*、DIV(整除)、MOD(取余)
  2. 注意不能用/,因为得到的结果可能不为整型。
  • 实数类型

REAL:取值范围 [2.9E-39, 1.7E+38]。占用内存 6个字节( 48位)。

实数的表示法有两种:

1、十进制表示法,如: -0.4576, 123.567, -234, 0

2、科学计数法,如: 1.234E-4, -3.546E12

表示 1.234乘 10的负 4次 .方; -3.546乘 10的 12次方。

特点:

  1. 包括正实数、负实数和零。运算慢,无法精确表示。
  2. 可进行+、-、*、/运算。整数与实数运算时自动转为实数进行运算。
  • 字符类型

CHAR:单字符型,即取 1个字符,如‘ A’, ‘ 1’。

STRING:字符串型,即多个字符,如‘ ABCD! 123’,‘ %¥ #DS12’。

如果一个常 /变量只要用到 1个字符,则可把它定义成 CHAR型;如果是多个字符,但不知确切多少个,则定义成 STRING型,如果知道确切有 N个字符,则定义成 STRING[N]型。字符串在 PASCAL中使用都是加上单引号。

特点:

  1. 字符常 /变量是由单个字符组成的,所有字符都来自ASCII字符集。字符的数据是用两个单引号把单个字符括起来表示的。
  2. 每个字符都有一个序值(在ASCII字符集的位置),可以用六个关系运算符(>,=,<,>=,<=,!=)来比较大小。
  • 布尔型

BOOLEAN:布尔型即为逻辑型,取值为 TRUE、 FALSE, 即真、假。也有序,true 为1,false为0。

      布尔型有三个运算符:and or not

常量:指程序运行过程中,其值不能改变的量。 在程序头部中说明,以 CONST引导。

分为四类:

⑴整型常量

⑵实型常量

⑶字符常量

⑷布尔型常量

格式:
   const <常量标识符>=<常量>;
  例:const pi:=3.14;

变量:是指在程序执行过程中,其值可以改变的量。 在程序头部中加以说明,以 VAR引导。

变量三要素:变量名、变量类型、变量值。

⑴变量名用一个合法的标识符来表示。

⑵变量在某一固定时刻是用来存放常量的,而常量是有类型的数据,因而变量也是有类型的。类型不能有两义性。

⑶变量值。在程序中由赋值语句来赋值。

var <变量标识符列表>:<类型>;
   例:var a,b:integer; c,d:real;

5、表达式

由算术运算符( +,—, *, /)及数字、常量、变量、标准函数所组成的式子中心表达式。

如: 5+9; A*B-34*ABS( -34) /INT( B)

另外, PASCAL中有两个很有用的运算符, DIV:求商的整数值; MOD:求余数。如:

8 DIV 3 的值是 2, 10 DIV 3 的值是 3;

8 MOD 3的值是 2, 10 MOD 3的值是 1;

在 PASCAL的表达式中,不允许出现我们日常生活中的那种分式或根号等式子,我们必须按照 PASCAL的语法把它们改写成 PASCAL表达式。

Pascal语言中的运算符及其优先级

单目运算符 (最高优先级) @ 取变量或函数的地址(返回一个指针) not 逻辑取反或按位取反 乘除及按位运算符 * 相乘或集合交集 / 浮点相除 div 整数相除 mod 取模 (整数相除的余数) as 程序运行阶段类型转换 (RTTI运算符) and 逻辑或按位求和 shl 按位左移 shr 按位右移 加减运算符 + 相加、集合并集、字符串连接或指针增加一个偏移量 - 相减、集合差集或指针减少一个偏移量 or 逻辑或按位或运算 xor 逻辑或按位异或运算 关系及比较运算符(最低优先级) = 判断是否相等 <> 判断是否不相等 < 判断是否小于 > 判断是否大于 <= 判断是否小于或等于,或是否是一个集合的子集 >= 判断是否大于或等于,或是否是一个集合的父集 in 判断是否是集合成员 is 判断对象是否类型兼容 (又一个RTTI运算符)

具体优先顺序:

⑴括号内先算

⑵函数

⑶运算符优先顺序

⑷同级运算按从左到右的次序。

注意:

1、与大多数编程语言相反,Pascal语言中and和or运算符的优先级比关系运算符高。因此,如果你的代码为a < b and c < d,编译器首先会编译and运算符,由此导致编译出错。为此你应该把每个 < 表达式用小括号括起来: (a < b) and (c < d)。 
2、 同一种运算符用于不同数据类型时它的作用不同。例如,运算符 + 可以计算两个数字的和、连接两个字符串、求两个集合的并集、甚至给PChar 指针加一个偏移量。然而,你不能象在C语言中那样将两个字符相加。
3、 另一个特殊的运算符是 div。在Pascal 中,你能用 / 计算两个数字(实数或整数)的商,而且你总能得到一个实型结果。如果计算两个整数的商并想要一个整型结果,那么就需要用 div 运算符。


  • 运算符两端,除实型和整数型外不允许为两种不同的数据类型。
  • PASCAL表达式中没有分式,只能以除号“ /”来隔开;
  • PASCAL表达式中的分子与分母应该用括号括开;
  • PASCAL表达式中只有小括号,不能有中括号或大括号,小括号可以有很多层;
  • PASCAL表达式中没有乘幂,只能用乘法来表达;
  • PASCAL*表达式中任意两个常量、变量、数值、括号、函数之间都必须不能缺省运算符,即乘号必不可少;

这些要求希望大家记熟,这是我们编写 PASCAL程序的必要基础。

表达式的数据类型根据它的值来划分。(所以表达式分为算术表达式、字符表达式、布尔表达式)

6、标准函数的使用。

PASCAL语言提供数量非常大的标准函数供我们使用,这些函数有些可以直接调用,有些放在另外的单元( UNIT)中。 PASCAL也提供了大量的标准过程,和标准函数一样供用户直接或间接调用。

如果一个函数或过程不在 SYSTEM(即默认调用的单元)中,而在其它单元中话,即在程序头部的第一行正式行中加上 USES 单元名;如,如果要使用 CLRSCR(清屏过程,在 DOS单元中)的话,就必须在程序头部加上: USES DOS;

函数的调用:如: A: =ABS( -34),即把 -34的绝对值赋给变量 A;(注意:函数只能出现在表达式中,即赋值语句中)。此时: A的数据类型与括号中的参数 -34是一致的。函数的语法中都会说明,这个函数的参数的类型及这个函数的值(结果)的类型。

过程的调用:过程即命令,如: CLRACR; 程序运行结果是清屏。

常用标准函数与过程很多,这里只列出最常用的几个。

标准函数

函数名

语法

说明

Abs

Abs ( r:real/integer) :real/integer

返回参数 R的绝对值,类型与参数相同

Chr

chr ( i: integer): char

返回参数所对应的 ASCII码值,类型为 CHAR

Copy

Copy(s:string;n,m:integer):string

返回字串 S的第 N个字符开始的 M个字符

Cos

Cos(r:real):real

返回参数 R的余弦值

Exp

Exp(r:real):real

返回参数 R的以 e为底的幂

Int

Int(r:real):real

返回参数 R的整数部分,返回的值是实数类型

Length

Length(s:string):integer

返回字串 S的长度

Ln

Ln(r:real):real

返回参数 R的自然对数

odd

Odd(I:integer):boolean

判断参数 I是否奇数,如是,则返回 TRUE

ord

Ord(s:scalar):integer

返回任意有序量的序值

random

Random

返回 0至于间的任意一个小数(随机数)

round

Round(r:real):longint

返回参数 R的四舍五入取整值

sin

Sin(r:real):real

返回参数 R的正弦值

sqrt

sqrt(r:real):real

返回参数 R的平方根

sqr 返回参数 R的平方

trunc

Trunc(r:real):integer

返回参数 R的整数部分,返回的值是整数类型

标准过程

过程名

语法

说明

Delay (CRT 单元 )

Delay(ms:word)

延迟发声 MS毫秒

Delete

Delete(s:string;n,m:integer)

把串 S中的第 N个字符开始的 M个字符删除

Exit

Exit

从当前执行的程序中退出

Gotoxy (CRT 单元 )

Gotoxy(x,y:integer)

把光标定位到第 X列 Y行处

halt

Halt

中断程序的运行

nosound

Nosound

关闭机器喇叭

Sound (CRT 单元 )

Sound(f:word)

让机器喇叭发出频率为 F的声音,直到 nosound

str

Str(I:integer;var s:string)

把数值 I转换为字符串 S

val

Val(s:string;var r:real;var c:word)

把字符串 S转换为数值 R,并返回错误代码 C

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值