Pascal教程.docx
- 文档编号:6798559
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:131
- 大小:446.30KB
Pascal教程.docx
《Pascal教程.docx》由会员分享,可在线阅读,更多相关《Pascal教程.docx(131页珍藏版)》请在冰点文库上搜索。
Pascal教程
第一课时:
初识Pascal语言
信息学奥林匹克竞赛是一项益智性的竞赛活动,同数学、物理、化学、生物一起被称为五大联赛,其核心是考查选手的智力和使用计算机解题的能力。
选手首先应针对竞赛中题目的要求建构数学模型,进而构造出计算机可以接受的算法,之后要写出高级语言程序,上机调试通过。
程序设计是信息学奥林匹克竞赛的基本功,在青少年朋友参与竞赛活动的第一步必须掌握一门高级语言及其程序设计方法。
一、Pascal语言概述
PASCAL语言也是一种算法语言,它是瑞士苏黎世联邦工业大学的N.沃思(N.Wirth)教授于1968年提出来的,它命名是为了纪念法国数学Pascal。
它的建立基于两个目的:
第一,提供一种能够清晰、自然地表述某些基本概念的语言,使其成为基本概念系统的训练工具,适合于程序设计教学,第二,使新定义的语言能在现有的计算机上可靠的、有效的加以实现。
二、Pascal语言的特点
从使用者的角度来看,PASCAL语言有以下几个主要的特点:
⒈它是结构化的语言。
PASCAL语言提供了直接实现三种基本结构的语句以及定义"过程"和"函数"(子程序)的功能。
可以方便地书写出结构化程序。
在编写程序时可以完全不使用GOTO语句和标号。
这就易于保证程序的正确性和易读性。
PASCAL语言强调的是可靠性、易于验证性、概念的清晰性和实现的简化。
在结构化这一点上,比其它(如BASIC,FORTRAN77)更好一些。
⒉有丰富的数据类型。
PASCAL提供了整数、实型、字符型、布尔型、枚举型、子界型以及由以上类型数据构成的数组类型、集合类型、记录类型和文件类型。
此外,还提供了其它许多语言中所没有的指针类型。
沃思有一个著名的公式:
"算法+数据结构=程序"。
指出了在程序设计中研究数据的重要性。
丰富的数据结构和上述的结构化性质,使得PASCAL可以被方便地用来描述复杂的算法,得到质量较高的程序。
⒊能适用于数值运算和非数值运算领域。
有些语言(如FORTRAN66,ALGOL60)只适用于数值计算,有些语言(如COBOL)则适用于商业数据处理和管理领域。
PASCAL的功能较强,能广泛应用于各种领域。
PASCAL语言还可以用于辅助设计,实现计算机绘图功能。
⒋PASCAL程序的书写格式比较自由。
不象FORTRAN和COBOL那样对程序的书写格式有严格的规定。
PASCAL允许一行写多个语句,一个语句可以分写在多行上,这样就可以使PASCAL程序写得象诗歌格式一样优美,便于阅读。
由于以上特点,许多学校选PASCAL作为程序设计课程中的一种主要的语言。
它能给学生严格而良好的程序设计的基本训练。
培养学生结构化程序设计的风格。
但它也有一些不足之处,如它的文件处理功能较差等。
三、Pascal语言程序的基本结构
任何程序设计语言都有着一组自己的记号和规则。
PASCAL语言同样必须采用其本身所规定的记号和规则来编写程序。
尽管不同版本的PASCAL语言所采用的记号的数量、形式不尽相同,但其基本成分一般都符合标准PASCAL的规定,只是某些扩展功能各不相同罢了。
下面我们首先来了解Pascal语言的程序基本结构。
为了明显起见先举一个最简单的PASCAL程序例子:
从这个简单的程序可以看到:
⒈一个PASCAL程序分为两个部分:
程序首部和程序体(或称分程序)。
⒉程序首部是程序的开头部分,它包括:
⑴程序标志。
用"program"来标识"这是一个PASCAL程序"。
PASCAL规定任何一个PASCAL程序的首部都必须以此字开头。
在turbopascal语言中,首部也可省略。
⑵程序名称。
由程序设计者自己定义,如例中的exam1。
在写完程序首部之后,应有一个分号。
⒊程序体是程序的主体,在有的书本里也称"分程序"。
程序体包括说明部分(也可省略)和执行部分两个部分。
⑴说明部分用来描述程序中用到的变量、常量、类型、过程与函数等。
本程序中第二行是"变量说明",用来定义变量的名称、类型。
PASCAL规定,凡程序中用到所有变量、符号常量、数组、标号、过程与函数、记录、文件等数据都必须在说明部分进行定义(或称"说明")。
也就是说,不允许使用未说明先使用。
⑵执行部分的作用是通知计算机执行指定的操作。
如果一个程序中不写执行部分,在程序运行时计算机什么工作也不做。
因此,执行部分是一个PASCAL程序的核心部分。
执行部分以"begin"开始,以"end"结束,其间有若干个语句,语句之间以分号隔开。
执行部分之后有一个句点,表示整个程序结束。
⒋PASCAL程序的书写方法比较灵活。
当然,书写不应以节省篇幅为目的,而应以程序结构清晰、易读为目的。
在编写程序时尽量模仿本书中例题程序格式。
⒌在程序中,一对大括号间的文字称为注释。
注释的内容由人们根据需要书写,可以用英语或汉语表示。
注释可以放在任何空格可以出现的位置。
执行程序时计算机对注释不予理睬。
适当的注释一方面可以增加程序的可读性,另一方面可以在程序调试中运用。
四、TurboPascal语言系统的使用
目前,常用的Pascal语言系统有TurboPascal7.0与BorlandPascal7.0,目前最常用的是TurboPascal,下面我们就来学习TurboPascal7.0系统的使用。
1.系统的启动
在桌面上运行快捷方式或在系统目录下的启动程序TURBO.EXE,即可启动系统。
屏幕上出现如图1所示的集成环境。
2.TurboPascal系统集成环境简介
最顶上一行为主菜单。
中间蓝色框内为编辑窗口,在它的编辑窗口内可以进行程序的编辑其使用方法同其它文本编辑器相类似。
最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,获得系统帮助的快捷键为F1,等等。
3.菜单选择:
菜单的选取可使用鼠标,或者使用相应的快捷方式,如:
选择”file”,可以使用ALT+F;
4.新建程序窗口
按F10进行主菜单,选择FILE菜单,执行其中New命令。
就可建立一个新的程序窗口(默认文件名为Noname00.pas或Noname01.pas等)。
5.程序的输入、编辑与运行
在当前程序窗口中,一行一行的输入程序。
事实上,程序窗口是一个全屏幕编辑器。
所以对程序的编辑与其它编辑器的编辑方法类似,这里不再重复。
当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令)对程序进行编译。
如果程序有语法错误,则会在程序窗口的第一行处显示第一个红色错误信息。
若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。
接下来,我们可以运行程序了。
程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9。
则可以在用户窗口中输出运行结果。
通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要按ALT+F5将屏幕切换到用户屏幕。
5.程序的保存与打开
当我们想把程序窗口中的程序存入磁盘时,可以通过按F2键(或执行File菜单中的save命令)来保存程序。
第一次保存文件时屏幕上会出现一个对话框要求输入文件名(默认扩展名为.pas)。
当我们要将磁盘上的程序文件中的PASCAL程序装入窗口时,可按F3(或执行File菜单中的Open命令)来装入程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要的文件,然后回到打开文件。
五、第一个程序
输入正方形(rectangle)的长和边,求其周长。
programrectangle(input,output);
var
l,a,b:
integer;
begin
read(a,b);
l:
=2*a*b;
write(l);
end.
请输入上面的程序,并练习将其存盘、打开与运行上面程序。
【作业】
1、输入长方形的长和宽,求其面积。
第二课:
标准数据类型
(一):
实型和整型
在上节课我们学习了Pascal语言的程序结构,在一程序中,程序的所有操作都由begin...end.中的的语句来完成,语句的执行依赖于数据的类型,如果运算和它的数据类型不一致,编译将给出错误的信息,导致程序无法运行。
这节课我们将学习Pascal标准的数据类型(实型、整型、字符型、布尔型)。
一、实型(real)
实型是最常用的数据类型,包括正数、负数和0。
1.在Pascal中,实数有两种表示方法:
小数表示法和指数表示法(或称科学表示法)。
小数表示法:
以小数的形式来表示,如:
1.25,3.1415926,0.0等。
科学表示法:
用e后的数字代表10的幂,如:
1.25e0=1.25
1.23e+2=123
2.4e-3=0.0025
-1.56e1=-15.6
『注意』:
在小数表示法中必须有小数点,且小数点前后必须有数字(0~9)。
在科学表示法中必须有e,且有的前后必须有数字。
如果实数太大或太小,用科学表示法比较方便。
2.实数表示的范围。
在turboPascal中实数表示的范围为:
-1.7e38~-2.9e39,0,2.9e-39~1.7e38。
3.实型量的运算
实型量的运算有:
+(加)、-(减)、*(乘)、/(除),在pascal语言中表达式的计算先乘后加减的次序进行。
通过括号可以改变运算的先后顺序。
在有括号时,先执行括号内的运算,再执行括号外的运算。
如以下数学表达式和Pascal表达式的不同。
数学表达式
Pascal表达式
b*b-4*a*c
(a+b)/(c+d)
(a+b)/c+d
e-a*b/(c*d)或e-a*b/c/d
4.实型量常用的标准函数
abs(绝对值)、sqr(平方)、sqrt(开方)、trunc(取整)、round(舍入),Pascal语言规定,所有函数的自变量必须写在括号内。
例如:
可表示为:
abs(-5)
可表示为:
x*x*x或aqr(*)*x
可表示为:
sqr(a+b)
可表示为:
sqrt(sqr(b)-4*a*c)
trunc是去掉小数部份,取其整数。
round是将小数部份四舍五入后变为整数,其返回值均为整型。
如:
trunc(1.3)=1 round(1.3)=1
trunc(1.5)=1 round(1.5)=2
turnc(-2.6)=-2 round(-2.6)=-3
二整型(integer、longint)
整型包括正整数、负整数和零。
1.整的范围:
在Pascal语方中有两种整型,一种是普通整型,另外一处是长整型。
整型(integer):
-maxint-1~maxint
长整型(longint):
-maxlongint-1~maxlongint
在pascal系统语言中,定义了两个特殊的整型变量,maxint,maxlongint
在不同的系统中有不同的值。
2.整型量的运算符。
+(加)、-(减)、*(乘)、/(除)、DIV(整除)、MOD(取余)
DIV的结果是整数商、MOD的结果是整数后的余数。
7DIV3=1 7mod3=1
-7DIV3=-1 -7MOD3=-2
7DIV-3=1 7MOD-3=-2
3.整型量的标准函数。
abs(绝对值)、sqr(平方)、pred(前导)、succ(后继)、odd(奇函数)chr(取字符)等。
pred(5)=4、pred(-5)=-6
succ(5)=6、succ(-5)=-4
对于odd函数,当自变量为奇数时,返回值为(true)、当自变量为偶数时,返回值为假。
如:
odd(5)=ture odd(6)=false
取字符函数(chr)是将自变量(整型)作为字符的序号,并将与此序号对应的字符作为函数的结果。
如:
chr(65)='A' chr(66)=‘B’
三、常量与变量
(1)常量:
在程序运行过程中,其值不能被改变的量称为常量。
3.1415926、‘A’、100等。
在程序中常见的常量有整型常量、实型常量、字符型常量、布尔常量。
常量的定义。
定义符号常量的一般格式:
CONST
<常量标识符>=<常量>
『说明』:
常量说明部分以关键字const开头,后面的标识符为常量标识符,其中"="号后的常量为整数、实数、字符、字符串(字符、字符串常量在后面章节中将作介绍)。
而且,在常量说明部分可以将几个常量说明成符号常量,共用一个关键字"const"。
例如:
const
pi=3.1415926;
ch='A';
在以上的定义中pi作实型常量、ch作为符号常量,分别代表实数3.1415926和字符'A'。
也就是说,常量说明部分既定义了常量名及其值,又隐含定义了常量的类型。
对于符号常量,应注意下列几点:
(1)符号常量一经定义,在程序的执行部分就只能使用该常量标识符,而不能修改其值。
(2)使用符号常量比直接用数值更能体现"见名知义"的原则,也便于修改参数,故一个较好的程序中,应尽量使用符号常量,在执行部分基本上不出现直接常量。
(2)变量
变量代表了一个存储单元,在程序运行中的值是可变的,故称为变量。
变量有三个要素是:
变量名、变量类型、变量值。
一个程序中可能要使用到若干个变量,为了区别不同的变量,必须给每个变量(存贮单元)取一个名(称为变量名),该变量(存贮单元)存放的值称为变量的值,变量中能够存放值的类型为变量的类型。
1.变量名
用一个合法的标识符代表一个变量。
如n,m,rot,total等都是合法变量名。
在程序中用到的变量必须在说明部分加以说明,变量名应遵循自定义标识符的命名规则,并注意"见名知义"的原则,即用一些有意义的单词作为变量名。
"自定义标识符"的命名规则为:
自定义标识符必须以字母(包含下划线"_")开头,后面的字符可以是字母或数字。
标识符长度不超过63个字符。
2.变量的类型
常量是有类型的数据,变量在某一固定时刻用来存放一个常量,因此也应有相应的类型。
如整型变量用来存放整数,实型变量用来存放实数(也可用于存入整数)。
3.变 量说明
在程序中若要使用变量,变量的名称及类型在程序的变量说明部分加以定义,变量的值则在程序的执行部分中才能赋给。
变量说明的一般格式:
VAR
<变量标识符>[,<变量标识符>]:
<类型>;
(中括号内部分表示可省,下同)
其中VAR是pascal保留字,表示开始一个变量说明段,每个变量标识符或由逗号隔开的多个变量标识,必须在它的冒号后面说明成同一类型。
一个程序中,可以说明许多不同类型的变量,每种类型变量之间用分号隔开,共用一个VAR符号。
例如:
var
r,l,s:
real;
其中,Integer(整型)、Real(实型)是标准标识符,它们是"类型标识符",代表了确定的类型,如r,l,s定义为实变量。
一旦定义了变量,就确定了它的类型,也就是说,就确定了该变量的取值范围和对该变量所能进行的运算。
四、具体实例
例1:
输入两位整数,反序输出。
输入形式:
23
输出形式:
32
programexp1;
var
n,a,b:
integer{n代表整数、a代表十位、b代表个位}
begin
read(n);{读入整数n}
a:
=ndiv10;{求十位数字}
b:
=nmod10;{求个位数字}
n:
=b*10+a; {反序}
write(n);
end.
例2:
求二元一次方程的解(输入系数要确保二元一次方程有解,且为标准二元一次方程)。
输入形式:
112
1-10
输出形式:
1.001.00(保留两位有效数字)
分析:
设二元一次方程的一般表达式为:
程序如下:
programexp2;
var
a,b,c,d,e,f:
real;
begin
read(a,b,c,d,e,f);
x:
=(b*f-e*c)/(d*b-a*c);
y:
=c-a*x/b;
write(x:
4,y:
4);
end.
【作业】
1.将下列数学表达式转换成Pascal表达式。
2.写一个程序,输入三角形的三个边a,b,c,计算并打印的面积S。
计算三解开公式为:
3.输入三位数,反序输出。
输入形式:
123
输入形式:
321
第三课:
标准数据类型
(二):
字符型、布尔型
一、字符型(char)
1.在pascal语言中,字符型是括在单引号中的一个字符,所有字符来ASCII字符集,共有256个字符。
如'a','A'.'0'等,而'abc'则不是字符类型。
特殊地,对于单引号字符,则示成''',对于ASCII字符集中,按每个字符在字符集中的位置,每个字符集编号为0~255,编号对应字符集序号(见ASCII表)。
2.用于字符集的标准函数。
ord(取序号) pred(前导) succ(后继)如:
ord('A')=65 ord('a')=97ord与chr是互逆函数,即:
ord(chr(97))=97chr(ord('a'))='a'
pred('b')='a'succ('a')='b'
pred与succ也是互逆函数。
pred(succ('b'))='b'succ(pred(b))='b'
二.布尔型(boolean)。
1.布尔类型的值只有两个:
false(假)和true(真)。
且false对应的序号为0,true对应的序号为1。
2.布尔类型的标准函数。
ord(取序号)pred(前导)succ(后继)
ord(false)=0ord(ture)=1
pred(ture)=falsepred(false)=true
『注意』false没有前导,true没有后继。
三、算术表达式与赋值语句。
(一)表达式,在这里我们只介绍算术表达式。
1.算术表达的定义
Pascal语言的算术表达式是由符合pascal语法规定的运算对象(包括常量、变量、函数)、算术运算符、圆括号组成的有意的式子。
如:
pi*r*r。
2.算术运算符
常用的有以下6个算术运算符。
① +(加)
② -(减)
③ *(乘)
④ /(实数除)得到结果为实型.如5.0/2.0=2.5,5/2=2.5,4/2=2.0而不等于2。
⑤ DIV(整除)DIV它要求除数和被除数均为整型,结果也为整型。
如10DIV2=5,10DIV3=3,5DIV10=0.-15DIV4=-3。
DIV运算只取商的整数部分,参与DIV运算的两个对象不能为实型。
⑥ mod(求余),也只能用于整数运算,结果为整数。
例如:
10mod4=2,-17mod4=-1,4mod(-3)=1,-4mod3=-1,即amodb=a-(adivb)*b。
3.运算优先顺序
如果一个表达式里出现两个或两个以上的运算符,则必须规定它们的运算次序。
pascal规定:
①表达式中相同优先级的运算符,按从左到右顺序计算;
②表达式中不同优先级的运算符,按从高到低顺序计算;
③括号优先级最高,从内到外逐层降低;
在算术运算中运算符的优先顺序与数学上的四则运算一致,即"先乘除后加减"(注:
"MOD"、"DIV"运算的优先级与"*"、"/"相同)。
『注意』:
a.所有表达式必须以线性形式写出。
因此分子、分母必须写在同一行上。
b.只以使用合法的标识符。
c.为了指定运算的顺序可以使用括号,括号必须是成对出现,且括号只能使用小括号“()”,而不能使用其它括号。
如"{","}",或"[","]"。
(二)赋值语句
变量既然代表一个存储单元,其值是可变的,那么其中的值是怎么提供的,又是怎么改变的呢?
可以通过赋值语句来进行。
1、赋值语句的格式
变量名:
=表达式;
其中":
="称为赋值号。
2、执行过程
计算机先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。
如:
x:
=(2+3)*4;x:
=-x(其意义是将变量x值取反后,存入x)。
『注意』:
a.表达式的类型与左边的变量类型应相同。
b.表达式的类型为整型,变量的类型可为实型。
四.输入、输出语句
(一)输入语句(read、readln)
1.read语句
read语句的形式为:
read(<输入表>)
即:
read(x1,x2,x3...xn)
read语句的输入表至少包括一个变量,且变量必须先定义,变量的数据类型必须与输入类型相同,并且顺序相同。
如果输入变量是实型。
输入时也可输入整型。
演示程序
programexe;
var
x1,x2:
integer;
begin
read(x1,x2);
writeln('x1=',x1);
writeln('x2=',x2);
end.
运行程序后,输入以下数据,观察结果。
①12[ENTER]
②123[ENTER]
③1[ENTER]{程序会等待继续输入}
④1[enter]
2[enter]
⑤1a [enter]{出错}
『注意』:
在turbopascal中不同类型的数据,不能用同一个read语句输入。
在字符变量输入时,中间不需用空格。
a.表达式的类型与左边的变量类型应相同。
b.表达式的类型为整型,变量的类型可为实型。
2.readln语句
readln语句的表现形式:
readln(<变量表>)
即:
readln;或readln(x1,x2,...,xn);
readln语句后面可以没有变量,起到换行作用。
readln语句执行完后,会自动地跳转到下一行。
演示程序
programexe;
var
x1,x2,x3,x4:
integer;
begin
readln(x1,x2);
readln(x3,x4);
writeln('x1=',x1,'x2=',x2,'x3=',x3,'x4=',x4);
end.
运行程序后,输入以下数据,观察结果。
①12[ENTER
34[enter]
②1234[ENTER]{程序会等待继续输入}
③1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Pascal 教程