PASCAL基础知识
第一节 数据类型
1. 常量:
整型常量 Maxint表示计算机系统所允许的最大整数,-Maxint-1表示最小整数
实型常量:实型常量包括正实数,负实数,零。表示方法有两种:十进制表示法和科学 计数法。
科学计数法:有位数,底数和指数构成。 字符常量:单个引号括起来 布尔常量:
符号常量:符号常量必须先定义后使用 CONST
2. 变量:自定义标识符必须以字母(包括下划线)开头,后面的字符可以是字母或数字。 3. 算术表达式:常用的6个算术运算符:+,-,*,/(实数除),DIV(整除),mod(求余)。
/(实数除)得到的结果为实数4/2=2.0而不等于2。
DIV(整数除)要求参与运算的两个数都是整型,结果也为整形。10 DIV 3=3,5 DIV 10=0,DIV运算只取商的整数部分。
mod(求余)也只能用于整数运算,结果也为整形 4. pascal标准函数:
odd() 判断变量是否为奇数 Abs() 绝对值 Sqr() 求平方 Sqrt() 求平方根
Chr(数值表达式) 返回以数值表达式值为编码的字符。数值表达式的取值范围0-255。 ord() 返回字符的ASCII码,结果为整形。在字符范围内和chr()函数互为反函数。 Trunc(1.999)为截尾函数 其值为1。 round() 舍入函数 random()随机函数 mod()求余函数
succ(x) 求x的后继 succ(‘b’)=’c’ succ(5)=6 succ(false)=true pred(x) 求x的前导 pred(‘b’)=’a’ pred(5)=4 pred(true)=false
第三节 输出语句(WRITE语句)
1. write 语句 write(表达式1,表达式2,表达式3,....);
2. writeln 语句 writeln(表达式1,表达式2,表达式3,...);和write的不同之处是输出后
有换行。
第四节 输入语句
1. 写语句的输出格式:对整数的默认输出格式是十进制形式,对实数的输出,默认的形式
是科学计数法形式。在pascal中一个数据所占的宽度称为“场宽”或“字段宽”。 turbo pascal中默认的字段宽为:
整形:实际长度 实型:17 布尔型:4或5 字符串:串长 2. 指定场宽:
1)指定单场宽:指定单场宽后,所有数据不再按标准场宽输出,而按指定场宽输出。若数据的实际长度小于指定场宽时,一律“向右靠齐,左留空格”。对于标准实型数据
指定单场宽时,如果场宽大于标准场宽时,右对齐按标准场宽格式输出17位,左留空格。若场宽小于标准场宽时,第一位为符号位,最后四位仍为“E+nn”,中间部分为尾数显示部分(四舍五入过的数据),如果指定的宽度小于8位,则数据按8位格式输出。 2)指定双场宽:用于实型数据不想用科学计数法的形式输出,而按小数的格式输出这种情况。Write(实型表达式:m:n)其中m是指整个数据所占宽度,n是小数部分的宽度。当双场宽不能满足数据输出的最低要求,系统自动突破指定的场宽限制,按实际长度输出。
3. 输入语句:read()和readln()的重要区别:前者后面一定要带参数表,而后者可以不带参
数表,即没有任何输入项,只是等待一个回车,经常用于暂停程序的运行,直到输入一个回车。
建议按下列原则使用读语句:1.如果没有特殊需要在一个程序中尽量避免混合使用read语句和readln语句。2.尽量用readln语句来输入数据,一个数据行对应一个readln语句。3.由于在执行read或者readln语句时,系统不会出现任何提示信息,因此在realn语句前加以适当提示。
第三张 选择结构的程序设计
第一节IF语句
Integer和real型的数据都是数值型的,其中integer类型的数据取值范围为:-32768到32767。布尔类型是一种数据类型,由于这种类型只有两个常量,pascal中规定:ture的序列号位1,false的序列号为0。若某种类型的常量是有限的,那么这种类型的常量通常都有一个序号,称这种类型为顺序类型。如前面我们学的整形(integer)和字符型(char)。布尔类型的变量不能通过读语句给他们赋值。 运算符的优先顺序: 括号-》函数-》not-》*、/、div、mod、and-》+、-、or、xor-》关系运算符 例:超市里卖电池,每个电池8毛钱,若数量超过10个,可打7.5折 .... Writeln(‘total=’,total:0:2); //这里total的场宽应设为小数部分为2,数值场宽为0,这样在保证了两位小数的基础上,保证了数值的正确不溢出。记住。 ..... 例:输入三个正整数,然后按从小到大的顺序输出 var a,b,c,t:longint; begin readln(a,b,c); if a>b then begin t:=a; a:=b; b:=t; end; if a>c then begin t:=a; a:=c; c:=t; end; if b>c then begin t:=b; b:=c; c:=t; end; writeln(a,' ',b,' ',c); end. 例:输入一个不多于三位的正整数,求出它是几位数,并打出各位上的数字。 ....var i,m,n,k:integer; ..... M:=i div 100; N:=(i-m*100) div 10; k:=(i-m*100-n*10) mod 10; writeln(m,’ ‘,n,’ ‘,k); 第三节 情况语句
1. 情况语句的一般格式:
case <表达式> of
<情况标号表1>:语句1; <情况标号表2>:语句2; ..
<情况标号表n>:语句n end;
表达式的值必须是顺序类型,它可以是整型,布尔型,字符型,枚举型,子界型。情况标号表是一串用逗号隔开的与表达式类型一致的常量序列。语句可以是任何语句,包括复合语句和空语句。 2. case语句的执行过程:
先计算表达式的值,如果它的值等于某一常量(称为情况常量,也称为情况标号),则执行该情况常量后面的语句,在执行完语句后,跳到case语句的末尾END处。 3. 说明:
1. 情况表达式必须是顺序类型的。
2. 情况常量是情况表达式可能具有的值,因而应与情况表达式具有相同类型。 3. 情况常量出现的次序可以是任意的。
4. 同一情况常量不能在同一case语句中出现两次以上。 5. 每个分句前可以有一个或若干个用逗号隔开的情况常量。
6. 如果情况表达式的值落在情况常量的范围外,则认为本case语句无效,执行下一个语句。可以有一个else语句,也可以省略。
7. 每个常量后面只能是一个语句或一个复合语句。 例: 根据输入的字符,判断是字母还是数字 Program zijie; Var x:char; Begin Writeln(‘input a char:’); Read(x); Case x of ‘0’..’9’:writeln(‘shuzi’); ‘a’..’z’,’A’..’Z’:writeln(‘zimu); //分句前可以有一个或若干个用逗号隔开的情况常量。 Else writeln(‘qita’); Readln; End; End.
第四章 循环结构程序设计 第五章 枚举和子界类型
1. 枚举类型的定义:
枚举类型的一般格式:(标识符1,标识符2,...,标识符n) 说明:1. 括号中的每一个标识符都称为枚举元素或枚举常量。
2. 定义枚举类型时列出的所有枚举元素构成了这种枚举类型的值域(取值范 围),也就是说,该类型变量的所有可能的取值都列出来了。
注意:标识符必须以字母(包括下划线)开头,后面的字符可以是字母或数字。 下列类型的定义是错误的:
type colortype=(‘red’,’yellow’,’green’,’blue’); //标识符中不能有单引号 number=(1,3,5,7,8); //标识符必须以字母开头 ty=(for,do,while) //含有系统内置标识符。 2. 枚举类型的性质
1. 枚举类型属于顺序类型 succ(x) 求x的后继, pred(x)的前继。枚举类型中的第一个元素无前继,最后一个元素无后继。
2. 枚举类型只能进行数值运算和关系运算 3. 枚举变量的值只能用赋值语句来获得,而不能用read(readln)来读一个枚举型的值,同样也不能用write(writeln)来输出一个枚举型的值。
4. 同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。
第二节 子界类型
1. 定义:<常量1>..<常量2>
1. 常量1称为子界的下界,常量2称为子界的上界。
2. 下界和上界必须是同一顺序类型(给类型称为子界的基类型),且上界的序号必须大于下界的序号。
3. 可以在变量说明中直接定义子界类型。 2. 子界类型数据的运算规则:
1. 凡可使用基类型的运算规则同样适用该类型的子界类型。 2. 对基类型的运算规则同样适用于该类型的子界类型。 3. 基类型相同的不同子界类型可以进行混合运算。
第六章 数组 第七章 函数和过程
第二节 过程
1. 过程的定义:
Procedure 过程名(形式参数); var 过程变量说明; begin 过程体 end;
对该格式说明如下:1.过程的首部。括号里是形式参数,如形式参数不止一种,则中间用“;”隔开,同类参数如不止一个,则中间用“,”隔开。另:有时候过程不用加参数。2. 过程的说明部分,用var开头,它只能对过程中的变量进行时说明,同样是局部变量。另:如过程不用变量,则可将说明部分省略。
2. 过程的调用:
在过程定义的语句中,有个参数表,在参数表中除了形参以外,还有变量形参。变量形参的作用是:他可以作为过程的出口参数。我们可以把过程中求出的结果用变量形参输出到过程外,在过程外可以调用该参数,因此,该参数是全局变量。其格式上的区别是在变量形
参的前面加上VAR即可。
1. 形参:在函数或过程的定义中,没有参加var说明的参数,在调用函数或过程时,调用程序将实参的值直接传递给形参,起着赋值的作用。
2.变量形参:在函数或过程的定义中,加有VAR说明的参数,在调用函数或过程时,调用程序将实参的变量地址传递给变量形参,因此当过程或函数处理中,改变变量形参的值,则实参变量的值也随之改变。(共享同一个存储单元) 小结:形参和变量形参的区别:
1. 形参传值:为形参分配存储单元,将实参的值赋予形参,过程体内对形参的操作不影响实参的值。一旦过程体执行完毕,系统将回收形参所占的存储单元,形参的值也就不复存在。
2. 变量形参传地址: 将实参的地址传给对应的变量形参,即变量形参和实参共享实参的地址,因此对变量形参的的操作就是对实参的操作。一旦过程执行完毕,系统将回收变量形参所占的存储单元,但运算结果以保留在对应的实参中。 3. 函数和过程的区别: 1. 标识符不同
2. 函数中一般不用变量形参,用函数名直接返回函数值,而过程如有返回值,则必须用变
量形参返回。
3. 过程无类型,不能给过程名赋值;函数有类型,最重要将函数值传送给函数名。 4. 函数在定义时一定要进行函数类型的说明,过程则不进行过程类型的说明。
5. 调用方式不同。函数的调用出现在表达式中,过程的调用,有独立的过程调用语句来完
成。
6. 过程一般会被设计成求若干个运算结果,完成一系列的数据处理,或与运算无关的各种
操作;而函数往往只为了求的一个函数值。
3. 变量及其作用域
全程变量:主程序中被说明的变量。
局部变量:在过程或函数中被说明的变量。 局部变量的作用域是他们所在的子程序。因形式参数也只是在子程序中有效,因此也属于 局部变量。
全程变量的作用域分为两种情况:
1. 在全程变量和局部变量不同名时,其作用域是整个程序。 2. 在全程变量和局部变量同名时,局部变量屏蔽了全程变量。
第九章 文件
在pascal中,文件被定义为同一类型的元素组成的顺序集合。文件所含的元素个数,称为文件的长度。文件具有以下三个特点: 1. 顺序性 2. 永久性 3. 容量大
文件的分类:按文件的结构分,可以分为文本文件,类型文件和无类型文件。文本文件又称为text文件,文件的内容是以字符形式(ASCII码)存放的。类型文件又称为file文件、二进制文件,它的内容以二进制代码形式存放的。无类型文件是一个低层的I/O通道,主要直接来访问固定长度的元素的任意磁盘文件。 按照文件的存取方式分,文件可以分为顺序存取文件和随机存取文件两种。顺序文件的读写都要从文件的开头顺次
进行,而随机文件可以从文件的任意指定位置进行读写。在PASCAL中文本文件属于顺序存取文件,而类型文件属于随机存取文件。
1. 文件操作的一般步骤。
1、在使用文件前,必须对文件的类型和变量进行说明;
2、把磁盘上的实际文件(外部文件)和pascal程序当中的文件(内部文件)建立关联。 3、打开文件,将文件的指针指向开始位置,为文件的读写做准备。 4、对文件进行读写操作;
5、在使用文件结束,一定要记住关闭文件,确保文件的完整性和可靠性。 2. 文本文件的操作步骤:
1、文本问价的变量在使用前必须说明其类型为text; var f1:text;
2、在使用文本前,要先调用assign过程,把外部文件名赋予文本文件变量。 assign(f1,’a:/test/input1.txt’) 3、当将数据写入(输出)到文件时,应先rewrite或append过程打开文件,在调用write或writeln将实际数据写入到该文件中。 rewrite(f1); append(f1);
write(f1,var1,var2....varn); writeln(f1,var1, var2....varn);
4、当需要从文件中读取(输入)数据到内存时,应先调用reset过程打开该文件,再用read或readln将数据度入到内存变量中。 reset(f1);
read(f1,var1,var2...varn); readln(f1,var1,var2.....varn);
5、对文件的输入、输出操作必须以行为单位进行,读写完毕要用close命名关闭文件。 close(f1);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库PASCAL基础知识在线全文阅读。
相关推荐: