收藏 分享(赏)

PASCAL语言简介.doc

上传人:精品资料 文档编号:10784761 上传时间:2020-01-09 格式:DOC 页数:19 大小:391KB
下载 相关 举报
PASCAL语言简介.doc_第1页
第1页 / 共19页
PASCAL语言简介.doc_第2页
第2页 / 共19页
PASCAL语言简介.doc_第3页
第3页 / 共19页
PASCAL语言简介.doc_第4页
第4页 / 共19页
PASCAL语言简介.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、第一个程序Pascal 语言的编译器有很多,我们这里以 Dev-Pascal 为主要编程工具。该软件界面如下:我们输入如下代码后编译运行。12345program my_program; 程序首部,程序名或简单说明begin 程序开始的标志write(Hello,World); 屏幕上输出单引号下的内容readln; 等待操作者按一次回车end. 程序结束的标志 如果没有输入错误的话,计算机应能在黑色背景上显示“Hello,World” 。例:计算 a+b 的值。1234program circle;vara,b,x:integer;定义变量begin1.点击 New source file

2、按钮新建一源文件2.输入代码并保存,保存路径不得有中文字符3.编译并运行5678910a:=100;b:=50;x:=a+b;writeln(a+b=,x);输出并换行readln;end. Pascal 字符与符号1标识符(1) 标识符的定义:标识符就是以字母开头的字母数字序列,有效长度为 63 个字符,并且大小写等效。可以用来标示常量、变量、程序、函数等。(2) 标识符的分类: a.保留字(关键字)所谓保留字是指在 Pascal 语言中具有特定的含义,你必须了解它的含义,以便于正确的使用,否则会造成错误。下面是 Pascal 语言的保留字:AND ARRAY BEGIN CASE CONS

3、T DIV DO DOWNTOELSE END FILE FOR FUNTION GOTO IF INLABEL MOD NIL NOT OF OR PACKED PROCEDUREPROGRAM RECORD REPEAT SET THEN TO TYPEUNTIL VAR WHILE WITHb.标准标识符:指 Pascal 语言预先定义的标识符,具有特殊含义。以下列举了 Turbo Pascal 语言部分常用的标准表识符:标准常量 False Maxint True标准类型 Boolean Char Real Integer标准函数 Abs Arctan Chr Cos Eof Eoln

4、 ExpLn Odd Ord Pred Round Sin SqrSqrt Succ Trunc标准过程 Dispose Get New Pack Page Put ReadReadln Reset Rewrite Unpack Write Writeln标准文件 Input OutputPascal 数据类型Pascal 提供了丰富的数据类型,在这里主要介绍整型、实型、字符型和布尔型四种常用的数据类型。1. 整型一个整型数据用来存放整数。Pascal 支持五种预定义整型,它们是 shortint(短整型) 、 integer(整型) 、 longint(长整型) 、 byte(字节型)和 w

5、ord(字类型) 。每一种类型相应的整数取值范围以及所占用的内存字节数见下表:类型 数值范围 占字节数 格式ShorIint -128-128 1 带符号 8 位Integer -3276-32767 2 带符号 16 位LongInt -2147483648-2147483647 4 带符号 32 位Byte 0-255 1 带符号 8 位Word 0-65535 2 带符号 16 位Pascal 规定了两个预定义整型常量标识符 maxint 和 maxlongint,他们各表示确定的常数值,maxint 为 32767,longint 为 2147483647,他们的类型分别是 integ

6、er 和 longint2. 实型一个实型数据用来存放实数。Pascal 支持五种预定义实型,它们是 single(单精度实型) 、real(基本实型) 、double (双精度实型) 、extended (扩展实型) 、comp(装配实型) 。每一种类型相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度见下表:类型 数值范围 占字节数 有效位数 编译开关Single 1.5e-45-3.4e+38 4 7-8 $N+Real 2.9e-39-1.7e+38 6 11-12Double 5.0e-324- 1.7e+308 8 15-16 $N+Extended 1.9e-4932-

7、1.1E+4932 10 19-20 $N+Comp -263+1-263-1 之间的整数 8 19-20 $N+除 real 型外,其它几种关数类型使用时必须要打开编译开关才可使用。例如下面的程序:1234567891011$n+program compute;vara,b:integer;divide:Extended;beginwrite(Enter a,b=);ReadLn(a,b);divide:=a/b;writeln(a,/,b,=,divide);readln;end. 3. 布尔型一个布尔型数据用来存放逻辑值(布尔值) 。布尔型的值只有两个:false 和 true,并且fa

8、lse 的序号是 0,true 的序号是 1。false 和 true 都是预定义常数标识符,分别表示逻辑假和逻辑真。并且 true=;例如:constcounter:integer=0;flag:boolean=true;index:0100=0;2.变量:它的语法格式是:var:;例如:vara,b,c:integer;m,n:real;标准函数1.算术函数函数标识符 自变量类型 意义 结果类型abs 整型、实型 绝对值 同自变量arctan 整型、实型 反正切 实型cos 整型、实型 余弦 实型exp 整型、实型 指数 实型frac 整型、实型 小数部分 实型int 整型、实型 整数部分

9、 实型ln 整型、实型 自然对数 实型pi 无自变量 圆周率 实型sin 整型、实型 正弦 实型sqr 整型、实型 平方 同自变量sqrt 整型、实型 平方根 实型例:abs(-4)=4 abs(-7.49)=7.49 arctan(0)=0.0sin(pi)=0.0 cos(pi)=-1.0 frac(-3.71)=-0.71int(-3.71)=-3.0 sqr(4)=16 sqrt(4)=22. 标准函数函数标识符 自变量类型 意义 结果类型odd 整型 判断奇数 布尔型pred 离散类型 求前趋 同自变量succ 离散类型 求后继 同自变量例:odd(1000)=false pred(

10、2000)=1999 succ(2000)=2001odd(3)=true pred(x)=w succ(x)=y3.转换函数函数标识符 自变量类型 意义 结果类型chr byte 自变量对应的字符字符型ord 离散类型 自变量对应的序号longintround 实型 四舍五入 longinttrunc 实型 截断取整 longint例:chr(66)=B ord(A)=65 round(-4.3)=-5 trunc(2.88)=24 杂类函数函数标识符 自变量类型 意义 结果类型random 无自变量 0,1间的随机实数 realrandom word 0,自变量间的随机整数) wordra

11、ndomize 无自变量 初始化内部随机数产生器 longintupcase 字符型 使小写英文字母变为大写 字符型downcase 字符型 使小写英文字母变为大写 字符型运算符和表达式.算术运算符运算符 运算 运算对象 结果类型+ 加 整型、实型- 减 整型、实型* 乘 整型、实型/ 除 整型、实型div 整除 整型 整型mod 取余 整型 整型逻辑运算符运算符 运算 运算对象 结果类型not 逻辑非 布尔型 布尔型and 逻辑与 布尔型 布尔型or 逻辑或 布尔型 布尔型xor 逻辑异或 布尔型 布尔型.关系运算符运算符 运算 运算对象 结果类型= 等于 简单类型 布尔型,=, 4(低)表

12、达式数学表达式 PASCAL 表达式 注意2a 2*a *号不能省略ab a/b 除号的写法ab ab then writeln(a)else writeln(b);end. CASE 语句 分情况语句适用于对一个条件的多种情况的响应。格式:case 表达式 of标号 1:语句 1;标号 2:语句 2;标号 n:语句 n;else 语句 n+1end; 例如:12345678910111213141516program tt;Varx,y:integer;BeginReadln(x);Case x of1:y:=10;2:y:=14;Else y:=45;End;Writeln(y);end.

13、 Repeat 语句:该语句执行过程是:(1) 首先顺序执行循环体;(2) 然后判断条件表达式的值,若为假,则返回(1)重新执行,若为真,则结束循环。例如:从键盘输入非零数,计算其积,输入 0 结束,并输出结果。12345678910111213141516program compute;vars,x:real;begins:=1; x:=1;repeats:=s*x;readln(x);until x=0;writeln(s=,s);readln;end.从While-do 语句:该语句执行过程是:1 当语句先判断后执行。2 条件表达式为假的时候,退出循环,为真时继续循环。3 循环 do 后

14、面的一条语句。一般 do 后面为复合语句。4 在循环体内要有改变条件表达式值的语句即改变循环变量的语句。否则循环没有意义。将出现死循环或一次也不运行。例如求 1-100 之间的偶数和:12345678910111213141516program compute;vars,i:integer;begins:=0; i:=2;while i. then p;write(ch);end;Begin1718192021222324252627p;readln;end.数组和字符串例:从键盘输入 10 个数,将这 10 个数逆序输入,并求这 10 个数的和,输出这个和。12345678910111213

15、141516program p1;Vara:array 110 of integer;i,s:integer;Beginfor i:=1 to 10 do read(ai);for i:=10 downto 1 do write(ai, );writeln;s:=0;for i:=1 to 10 do s:=s+ai;writeln(s=,s);end.Pascal 的下标是从 1 开始的。例:竞赛小组共有 20 位同学,这学期每位同学共参与了三项比赛,请统计每位同学的平均分。分析:定义一个 20 行 3 列的二维数组来存放这些成绩。定义一个 20 个元素的一维数组来存放平均分。1234567

16、891011121314program p1;Vara:array 120,13 of integer;b:array 120 of real;i,j:integer;Beginfor i:=1 to 20 doBeginfor j:=1 to 3 do read(ai,j);readln;end;从键盘上读入 20 个同学的三次竞赛成绩1516 for i:=1 to 20 do bi:=0;先将平均分数组清 0for i:=1 to 20 doBeginfor j:=1 to 3 do bi:=bi+ai,j;计算总分bi:=bi/3;计算平均分end;for i:=1 to 20 do

17、write(bi:5:1);输出平均分writeln;end.字符串 1.字符串用于存放整批的字符数据。通常编程中使用字符串存放字符化了的数字数据。如高精度运算时存放操作数和运算结果。字符串可以看作是特殊的字符串数组来处理。当然,它也有自已的特点。下面是字符串定义的格式:Vars:string; s1:string15;字符串定义时,如不指定长度,则按该类型的最大长度(255 个字符)分配空间,使用时最大可用长度为 255 个;如果在中括号中给出一个具体的值(1255 之间),则按这个值的大小分配空间。使用时,最大的可用长度即为该值。2.字符串的输入、输出:字符串类型既可按数组方式输入、输出,

18、也可直接输入、输出:readln(s);writeln(s);多个字符串输入时以回车作为数据间的分隔符;每个 readln 语句只能读入一个字符串。 3.有关字符串的操作:操作 类型 作用 返回值 例子 length(s)函数 求字符串 s的长度整型s:=123456789;l:=length(s);l 的值为 9copy(s,w,k) 函数 复制 s 中从w 开始的 k位字符串s:=123456789;s1:=copy(s,3,5);s1 的值是34567val(s,k,code)过程 将字符串 s转为数值,存在 k 中;code 是错误代码var s:string;k,code:integ

19、er;begins:=1234;val(s,k,code);write(k);k=1234str(i,s)过程 将数值 i 转为字符串 s i:=1234;str(i,s);write(s);s=1234Delete(s,w,k)过程 在 s 中删除从第 w 位开始的 k 个字s := Honest Abe Lincoln;Delete(s,8,4);Writeln(s); Honest Lincoln 符Insert(s1, S, w)过程 将 s1 插到s 中第 w 位 S := Honest Lincoln;Insert(Abe , S, 8); Abe Lincoln Pos(c, S

20、)函数 求字符 c 在s 中的位置整型S := 123.5;i :=Pos( , S);i 的值为 1+运算符 将两个字符串连接起来 s1:=1234;s2:=5678;s:=s1+s2;12345678子界和枚举子界类型: 当某些变量的取值范围很具体时,可用子界类型,它更符合实际、便于查错和节省内存。 定义如下: type riqi=131; zimu=AZ; var day:riqi; ch1:zimu; 也可以直接定义: day:131; year:0200; ch1:AZ; 枚举类型: 通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。

21、枚举类型的形式:(标识符 1,标识符 n)例如:type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:type daystype=(sun,mon,tue,wed,thu,fri,sat)枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:type daytype1=(monday,tuesday);daytype2=(monday,w

22、ednesday);可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday)枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从 0 开始。例如:已经定义 daystypeord(sunday)=0,succ(sunday)=monday,pred(friday)=Thursday但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Pascal 不允许直接读写枚举值,所以枚举值的输出常用 case 语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。例

23、如:枚举值的输出case day ofsunday:write(sunday);monday:write(monday);tuesday:write(tuesday);wednesday:write(wednesday);thursday:write(thursday);friday:write(friday);saturday:write(saturday);end; 集合类型1集合的定义:type 类型名=set of 基类型例如:typenum=set of char;varn:num;或varn: set of char; 集合的表示:用一组方括号括号一组元素来表示,元素之间用逗号分隔

24、。如:A,B,C,D有四个枚举量的集合A,B,C,D有四个字符的集合120包含了 1 到 20 中所有整数的集合0只有一个元素 0 的单元素集空集.集合的运算:(1)并(a+b):属于 a 或属于 b07+04 的值为 07(2)交(a*b): 既属于 a 又属于 b07*04的值为04(3)差(a-b):属于 a 但不属于 b07-04的值为57(4)相等(a=b):a,b 的元素完全一样07=04 的值为 false(5)不等(04的值为 true(6)包含于(=):07=04的值为 true(8)成员(in):1 in 04的值为 true .注意事项:(1)集合运算相当快,在程序中常用

25、集合表达式来描述复杂的测试。如A)条件表达式: (ch=T) or (ch=t) or (ch=Y) or (ch=y) 可用集合表达式表示为:ch in T,t,Y,yB)if (ch=20) and (ch=50) then .;可写成:if ch in 2050 then .;(2)集合类型是一种使用简便,节省内存面又运算速度快的数据类型。(3)Turbo Pascal 规定集合的元素个数不超过 256 个( 当实际问题所需的元素个数大于 256时, 可采用布尔数组代替集合类型)。所以如下定义是错误的: var i: set of integer;(4)集合类型变量不能进行算术运算,不允

26、许用读/写语句直接输入/输出集合。 所以集合的建立:A)要通过赋值语句实现;B)或先初始化一个集合,然后通过并运算向集合中逐步加入各个元素.(5)集合元素是无序的,所以 ord,pred 和 succ 函数不能用于集合类型的变量。 记录1.记录的定义:type 类型标识符=record字段名 1:类型 1;字段名 2:类型 2;.字段名 n:类型 n;end;如:Typestudata=recordnum:string6;name:string8;sex:boolean;s:array15 of real;end;varstudent:studata;students:array110 of

27、studata;2.记录的运用:(1)对记录中和个域的引用,要写出记录名和域名,如:student.num(2)开域语句:with。with 记录名 do 语句;或with 记录名 1,记录名 2,. do 语句;注意:1. 在 do 后面语句中使用的记录的域时,只要简单地写出域名就可以了, 域名前的记录变量和“.“均可省略。2. 在关键字 with 后面,语句可以是一个简单语句,了可以是一个复合语句。3. 虽然在 with 后可以有多个记录变量名,但一般在 with 后只使用一个记录变量名。指针在 Pascal 中,指针变量用来存放某个存储单元的地址,即指针变量指向某个存储单元。一个指针变量

28、仅能指向某一种类型的存储单元,这种数据类型是在指针类型的定义中确定的,称为指针类型的基类型。指针类型定义如下:类型名基类型名;例如:type q=integer;var a,b,c:q;说明:q 是一指向整型存储单元的指针类型,其中“为指针符。 a,b,c 均定义为指针变量,分别可以指向一个整型存储单元。上例也可用变量说明为:var a,b,c:integer;文件读写文本文件的读操作:(1)调用 assign 过程,把磁盘文件赋予文本文件变量;assign(fp,filename);(2)调用 reset 过程,为读操作做准备;reset(fp);(3)在需要读数据的位置调用 read 过程或 readln 过程。readln(fp,var1,var2,.,varn);文本文件的写操作:(1)调用 assign 过程,把磁盘文件赋予文本文件变量;assign(fp,filename);(2)调用 rewrite 过程,为读操作做准备;rewrite(fp);(3)在需要读数据的位置调用 write 过程或 writeln 过程。writeln(fp,var1,var2,.,varn);文本文件的关闭操作:close(fp);文本文件的其他操作:(1)EOF(fp)布尔函数,用于判断文件结束否。(2)EOLN(fp) 布尔函数,用于判断行结束否。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报