当前位置:文档之家› 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 分别用不相同的名字作为他们的标识符。

每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度类型数值范围占字节数有效位数real 2.9e-39..1.7e38611..12single 1.5e-45..3.4e3847..8double 5.0e-324..1.7e308 815..16extended 3.4e-4932..1.1e49321019..20comp-2**63+1..2**63-1819..20PASCAL使用的保留字有:AND、ARRAY、BEGIN、CASE、CONST、DIV、DO、DOWNTO、ELSE、END、FILE、FOR、FUNCTION、GOTO 、IF、IN、LABEL、MOD、NIL、NOT、OF、PACKED、PROCEDURE、PROGRAM、RECORD、REPEAT、SET、THEN、TO、TYPE、UNTIL、V AR、WHILE、WITH、FORWARD常用的标准标识符有:标准常量:FALSE TRUE MAXINT MAXLONGINT标准类型:INTEGER BOOLEAN REAL CHAR TEXT标准文件:INPUT OUTPUT标准函数:ABS ACTAN CHR COS EOF ELON EXP LN ODD ORDPRED ROUND SIN SQR SQRT SUCC TRUNC标准过程:ASSIGN GET NEW DISPOSE PACK PUT READ READLNRESET REWRITE UNPACK WRITE WRITELN运算符Pascal语言的基本运算符有五种:算术运算符:+、—、*、/、div(整除)、mod(取余)。

关系运算符:=、<>(不等于)、<、>、<=、>=、in。

逻辑运算:not、and、or。

集合运算:+、—、*。

赋值运算::=。

表达式中运算符的优先级别如下:括号优先级别为5最高,从内到外逐层降低。

只允许使用圆括号,且成对出现。

not优先级别为4。

*、/、div、mod、and优先级别为3。

+、—、or优先级别为2。

关系运算符和in优先级别最低为1。

同级运算从左至右,不同级运算从高到低。

完全的Pascal程序结构:program 程序名;uses已知单元说明;label 标号说明;const 常量说明;type 类型说明;var 变量说明;function函数说明;procedure 过程说明;begin语句;……语句;end.函数格式:function fun_name(参数表):数据类型;var 变量声明;begin函数体;end;过程格式:procedure proc_name(参数表);var 变量声明;begin过程体;end;基本的程序语句:赋值语句:<变量>:=<表达式>;输入语句read(<变量名表>);readln(<变量名表>);<变量名表>是一个或几个由逗号隔开的变量标识符,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型,布尔型不可以直接读入。

readln语句和read语句不同之处在于输入数据到各变量之后,readln自动换行,从下一行开始再输入数据。

一个read语句执行完后,数据行中多余的未读数据可以被下一个输入语句读入;而一个readln于执行完后,数据行中多余未读数据就没有用了。

readln 语句中可以不包含变量名表,表示等待,回车后转入执行下一语句。

输入语句输入的数据类型必须和变量一一对应。

如果输入的是一串整数或实数,数据间用空格或回车分隔;若输入的是一串字符,则不用分隔。

输出语句输出是将内存中的数据送到外设的过程。

write(<输出项表>);writeln(<输出项表>);<输出项表>是一串用逗号分隔的常量、变量、函数名、表达式或字符串。

如果是变量、函数名、表达式,则将其计算结果输出;如果是常量或字符串,则直接输出其值。

write和writeln的区别在于:write语句是输出项输出后,不换行,光标停留在最后一项后,writeln语句按项输出后,自动换行,光标则停留在下一行的开始位置。

writeln语句允许不含有输出项,即仅writeln;表示换行。

Pascal语言把输出项的数据显示占用的宽度称为域宽,分为单域宽和双域宽。

单域宽输出格式:writeln(I:n);在n个字符宽的输出域上按右对齐方式输出I的值,若n大于I的实际位数,则在I 值前面补(n-I的实际位数)个空格。

若I的实际位数大于n,则自动突破限制。

n必须是整数。

双域宽输出格式:writeln(a:n:m);双域宽主要用于实型数据的输出。

n的用法同上。

在n个字符宽的输出域上按右队齐方式用小数点形式输出a的数值,m是小数点后的位数。

原来的数据按该格式指定的小数位数四舍五入。

若m=0 ,则不输出小数部分和小数点,原数据四舍五入取整。

n,m必须是整数。

复合语句复合语句是由若干语句组成的序列,语句之间用分号“;”隔开,并且以begin和end 括起来,作为一条语句。

复合语句的一般形式:begin语句1;语句2;……语句n;end;IF分支结构if<布尔表达式>then <语句>;if<布尔表达式>then <语句1>else <语句2>;当if 语句嵌套时,else总是和最近的一个if配对。

Case分支结构case表达式of常量1:语句1;常量2:语句2;……常量n:语句n;else语句n+1; {可选项}end;表达式只能是顺序类型(除了实型以外的简单类型),其值必须是唯一确定并且和表达式类型相同。

case语句执行和表达式值相匹配的case常数所指向的那条语句,如果没有相匹配的值,则执行else部分(如果有的话)或者什么也不做。

在else前面的语句末尾有分号,这是和if语句不同的。

for循环结构(两种形式)升序形式:for <控制变量>:=<初值> to <终值> do <语句>降序形式:for <控制变量>:=<初值> downto <终值> do <语句>while循环结构While <条件> do <语句>Repeat循环结构Repeat<语句>;{循环体部分}Until <条件> ;{循环结束条件}数据类型简单数据类型Pascal语言基本数据类型由:integer(longint,shortint,byte),real,char,Boolean.等构成。

自定义数据类型:在基本数据类型的基础上定义新的数据类型,类型定义的保留字为“Type”,枚举类型:TYPE枚举类型名=(枚举值1,枚举值2,…,枚举值n);子界类型:子界类型是在其它的离散类型的值域中取出一部分构成独立的类型。

子界类型的一般定义形式如下:TYPE<子界类型标识符> = <下界常量> .. <上界常量>;数组类型:一维数组定义:Type数组类型标识符=Array[常量1..常量2] OF 基类型(数组元素类型)数组元素类型本身也可以是复杂的自定义类型,如子界类型,数组类型,记录等。

二维数组定义:Type数组类型标识符=Array[行标下界..行标上界,列标下界..列标上界] OF 基类型; 记录类型:TYPE<记录类型标识符>=RECORD<域标识符表>:<类型>;<域标识符表>:<类型>;……<域标识符表>:<类型>;END;WITH语句又称开域语句。

它的引入使得对记录变量各个域的访问更加简单。

因为在使用WITH语句时,只需将记录变量名写在WITH语句的头部,而在其它地方只写简单的域名就可以了,而不用写出完全的域名(记录变量名.域名)。

WITH 语句的一般形式:WITH <记录变量名表> DO<语句>一个记录的某个域可以是数组类型,一个数组的分量(即数组元素)也可以是记录类型。

这就是记录数组。

例:输入全班学生的姓名及成绩,计算平均成绩,并按成绩给每个学生赋一个字母等级(高于平均成绩10分以上为A等,与平均成绩相差在10分以内为B等,其余为C 等)最后输出每个学生的姓名、成绩、字母等级。

相关主题