Pascal基础教程
第⼀课 初识Pascal语⾔
信息学奥林匹克竞赛是⼀项益智性的竞赛活动,核⼼是考查选⼿的智⼒和使⽤计算机解题的能⼒。选⼿⾸先应针对竞赛中题⽬的要求构建数学模型,进⽽构造出计算机可以接受的算法,之后要写出⾼级语⾔程序,上机调试通过。程序设计是信息学奥林匹克竞赛的基本功,在青少年朋友参与竞赛活动的第⼀步必须掌握⼀门⾼级语⾔及其程序设计⽅法。
⼀、Pascal 语⾔概述
PASCAL语⾔也是⼀种算法语⾔,它是瑞⼠苏黎世联邦⼯业⼤学的N.沃思(Niklaus Wirth)教授于1968年设计完成的,1971年正式发表。1975年,对PASCAL语⾔进⾏了修改,作为"标准PASCAL语⾔"。
PASCAL语⾔是在ALGOL 60的基础上发展⽽成的。它是⼀种结构化的程序设计语⾔,可以⽤来编写应⽤程序。它⼜是⼀种系统程序设计语⾔,可以⽤来编写顺序型的系统软件(如编译程序)。它的功能强、编译程序简单,是70年代影响最⼤⼀种算法语⾔。
⼆、Pascal 语⾔的特点
从使⽤者的⾓度来看,PASCAL语⾔有以下⼏个主要的特点:
⒈它是结构化的语⾔。PASCAL语⾔提供了直接实现三种基本结构的语句以及定义"过程"和"函数"(⼦程序)的功能。可以⽅便地书写出结构化程序。在编写程序时可以完全不使⽤GOTO语句和标号。这就易于保证程序的正确性和易读性。PASCAL语⾔强调的是可靠性、易于验证性、概念的清晰性和实现的简化。在结构化这⼀点上,⽐其它(如BASIC,FORTRAN77)更好⼀些。
⒉有丰富的数据类型。PASCAL提供了整数、实型、字符型、布尔型、枚举型、⼦界型以及由以上类型数据构成的数组类型、集合类型、记录类型和⽂件类型。此外,还提供了其它许多语⾔中所没有的指针类型。沃思有⼀个著名的公式:"算法+数据结构=程序"。指出了在程序设计中研究数据的重要性。丰富的数据结构和上述的结构化性质,使得PASCAL可以被⽅便地⽤来描述复杂的算法,得到质量较⾼的程序。
⒊能适⽤于数值运算和⾮数值运算领域。有些语⾔(如FORTRAN 66,ALGOL 60)只适⽤于数值计算,有些语⾔(如COBOL )则适⽤于商业数据处理和管理领域。PASCAL的功能较强,能⼴泛应⽤于各种领域。PASCAL语⾔还可以⽤于辅助设计,实现计算机绘图功能。
⒋PASCAL程序的书写格式⽐较⾃由。不象FORTRAN和COBOL那样对程序的书写格式有严格的规定。PASCAL允许⼀⾏写多个语句,⼀个语句可以分写在多⾏上,这样就可以使PASCAL程序写得象诗歌格式⼀样优美,便于阅读。
由于以上特点,许多学校选PASCAL作为程序设计课程中的⼀种主要的语⾔。它能给学⽣严格⽽良好的程序设计的基本训练。培养学⽣结构化程序设计的风格。但它也有⼀些不⾜之处,如它的⽂件处理功能较差等。三、Pascal语⾔程序的基本结构
任何程序设计语⾔都有着⼀组⾃⼰的记号和规则。PASCAL语⾔同样必须采⽤其本⾝所规定的记号和规则来编写程序。尽管不同版本的PASCAL语⾔所采⽤的记号的数量、形式不尽相同,但其基本成分⼀般都符合标准PASCAL的规定,只是某些扩展功能各不相同罢了。下⾯我们⾸先来了解Pascal语⾔的程序基本结构。
为了明显起见先举⼀个最简单的PASCAL程序例⼦: 【例1】
从这个简单的程序可以看到:
⒈⼀个PASCAL程序分为两个部分:程序⾸部和程序体(或称分程序)。
⒉程序⾸部是程序的开头部分,它包括:
⑴程序标志。⽤"program"来标识"这是⼀个PASCAL 程序"。PASCAL规定任何⼀个PASCAL程序的⾸部都必须以此字开头。在turbo pascal语⾔中,⾸部也可省略。
⑵程序名称。由程序设计者⾃⼰定义,如例中的exam1。
在写完程序⾸部之后,应有⼀个分号。
⒊程序体是程序的主体,在有的书本⾥也称"分程序"。程序体包括说明部分(也可省略)和执⾏部分两个部分。
⑴说明部分⽤来描述程序中⽤到的变量、常量、类型、过程与函数等。本程序中第⼆⾏是"变量说明",⽤来定义变量的名称、类型。
PASCAL规定,凡程序中⽤到所有变量、符号常量、数组、标号、过程与函数、记录、⽂件等数据都必须在说明部分进⾏定义(或称"说明")。也就是说,不允许使⽤未说明先使⽤。
⑵执⾏部分的作⽤是通知计算机执⾏指定的操作。如果⼀个程序中不写执⾏部分,在程序运⾏时计算机什么⼯作也不做。因此,执⾏部分是⼀个PASCAL程序的核⼼部分。
执⾏部分以"begin"开始,以"end"结束,其间有若⼲个语句,语句之间以分号隔开。
执⾏部分之后有⼀个句点,表⽰整个程序结束。
⒋PASCAL程序的书写⽅法⽐较灵活。当然,书写不应以节省篇幅为⽬的,⽽应以程序结构清晰、易读为⽬的。在编写程序时尽量模仿本书中例题程序格式。
⒌在程序中,⼀对⼤括号间的⽂字称为注释。注释的内容由⼈们根据需要书写,可以⽤英语或汉语表⽰。注释可以放在任何空格可以出现的位置。执⾏程序时计算机对注释不予理睬。
四、Turbo Pascal语⾔系统的使⽤
⽬前,常⽤的Pascal语⾔系统有Turbo Pascal7.0与Borland Pascal 7.0,下⾯我们就来学习Turbo Pascal 7.0系统的使⽤。 1. 系统的启动
在运⾏系统⽬录下的启动程序TURBO.EXE,即可启动系统。屏幕上出现如图1所⽰的集成环境。
2. Turbo Pascal系统集成环境简介
最顶上⼀⾏为主菜单。中间蓝⾊框内为编辑窗⼝,在它个编辑窗⼝内可以进⾏程序的编辑。最底下⼀⾏为提⽰⾏,显⽰出系统中常⽤命令的快捷键,如将当前编辑窗⼝中⽂件存盘的命令快捷键为F2,获得系统帮助的快捷键为F1,等等。
3. 新建程序窗⼝
按F10进⾏主菜单,选择FILE菜单,执⾏其中New命令。就可建⽴⼀个新的程序窗⼝(默认⽂件名为Noname00.pas或
Noname01.pas等)。
4. 程序的输⼊、编辑与运⾏
在当前程序窗⼝中,⼀⾏⼀⾏的输⼊程序。事实上,程序窗⼝是⼀个全屏幕编辑器。所以对程序的编辑与其它编辑器的编辑⽅法类似,这⾥不再重复。
当程序输⼊完毕之后,⼀般要先按Alt+F9(或执⾏compile菜单中compile命令)对程序进⾏编译。如果程序有语法错误,则会在程序窗⼝的第⼀⾏处显⽰第⼀个红⾊错误信息。若⽆语法错误,则窗⼝正中央会出现⼀个对话框,提⽰编译成功。接下来,我们可以运⾏程序了。
程序的运⾏可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9。则可以在⽤户窗⼝中输出运⾏结果。通常在程序运⾏结束后系统回到Pascal系统的集成环境,因此要查看运⾏结果,要按ALT+F5将屏幕切换到⽤户屏幕。
5.程序的保存与打开
当我们想把程序窗⼝中的程序存⼊磁盘时,可以通过按F2键(或执⾏File菜单中的save命令)来保存程序。第⼀次保存⽂件时屏幕上会出现⼀个对话框要求输⼊⽂件名(默认扩展名为.pas)。
当我们要将磁盘上的程序⽂件中的PASCAL程序装⼊窗⼝时,可按F3(或执⾏File菜单中的Open命令)来装⼊程序,此时系统也会弹出⼀个对话框要求输⼊要打开的⽂件名,或直接在⽂件对话框列表中选择所要的⽂件,然后回到打开⽂件。
五、第⼀个程序
下⾯程序在运⾏时,会提⽰输⼊⼀个圆的半径,然后会在屏幕上画⼀个圆。按回车后程序结束回到程序窗⼝。
Program ex1;
Uses graph;
Var Gm,Gd,R :integer;
Begin
Gd:=0;
Write('Please enter the radius:');readln(R);
Initgraph(Gm,Gd,' ');
Setcolor(Green);
Circle(320,240,R);
Readln;
Closegraph;
End.
注意,如果上⾯程序运⾏时会出现初始化图形错误,请将系统⽬录下BGI⼦⽬录EGAVGA.BGI和UNITS⼦⽬录中的Graph.tpu拷贝到系统⽬录下BIN⽬录即可。
请输⼊上⾯的程序,并练习将其存盘、打开与运⾏上⾯程序。
第⼆课 赋值语句、输出语句
上节课,我们学习了Pascal语⾔的程序基本结构,在⼀个程序中,所有的操作都由执⾏部分来完成,⽽执⾏部分⼜都是由⼀个个语句组成的。因此,下⾯开始我们要学习pascal语⾔的基本语句,并且在学习过程中逐步学会程序设计的基本⽅法。
这节课我们要学习两种语句,即赋值语句与输出语句。在语句学习之前我们要先了解⼀些pascal语⾔的基础知识。
⼀、 常量、变量与算术表达式
(⼀)常量
在程序运⾏过程中,其值不能被改变的量称为常量。如123,145.88,'abc',true等。
⒈整型常量
整型常量采⽤我们平常使⽤的⼗进制整数表⽰。如138,0,-512等都是整型常量,⽽18.或18.0都不是整型常量。
pascal中有⼀个标准标识符Maxint,它代表所使⽤的计算机系统允许的最⼤整型数,⽽最⼩的整型数即为-Maxint-1。
⼀个整型数据⽤来存放整数。Turbo Pascal⽀持五种预定义整型,它们是shortint(短整型)、 integer(整型)、 longint(长整型)、byte(字节型)和 word(字类型),Turbo Pascal分别⽤相同的名字作为他们的表识符。每⼀种类型规定了相应的整数取值范围以及所占⽤的内存字节数。
类型 数值范围 占字节数 格式
shortint -128..128 1 带符号8位
inteter -32768..32767 2 带符号16位
longint -2147483648..2147483647 4 带符号32位
byte 0..255 1 带符号8位
word 0..65535 2 带符号16位
Turbo Pascal规定了两个预定义整型常量表识符maxint和maxlonint,他们各表⽰确定的常数值,maxint为32767, maxlongint为2147483647,他们的类型分别是integer 和longint。
⒉实型常量
实型常量包括正实数、负实数和实数零。pascal中表⽰实型常量的形式有两种。
⑴⼗进制表⽰法
这是⼈们⽇常使⽤的带⼩数点的表⽰⽅法。
如0.0,-0.0,+5.61,-8.0,-6.050等都是实型常量,⽽0.,.37都不是合法的实数形式。
⑵科学记数法
科学记数法是采⽤指数形式的表⽰⽅法,如1.25×105可表⽰成1.25E+05。在科学记数法中,字母"E"表⽰10这个"底数",⽽E之前为⼀个⼗进制表⽰的⼩数,称为尾数,E之后必须为⼀个整数,称为"指数"。 如-1234.56E+26 , +0.268E-5 , 1E5是合法形式,
⽽.34E12 , 2.E5 , E5 ,E,1.2E+0.5都不是合法形式的实数。
⽆论实数是⽤⼗进制表⽰法还是科学表⽰法,它们在计算机内的表⽰形式是⼀样的,总是⽤浮点⽅式存储。
和整数相⽐,实数能表⽰的范围⼤得多,但值得注意的是实数的运算整数的运算速度慢且⽆法像整数那样精确表⽰,只能近似表⽰。
⼀个实型数据⽤类存放实数。Turbo Pascal⽀持五种预定义实型,它们是real(基本实型)、 single(但精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),Turbo Pascal分别⽤相同的名字作为他们的表识符。每⼀种类型规定了相应的实数取值范围、所占⽤的内存字节数以及它们所能达到的精度。
类型 数值范围 占字节数 有效位数
real 2.9e-39..1.7e38 6 11..12
single 1.5e-45..3.4e38 4 7..8
double 5.0e-324..1.7e308 8 15..16
extended 3.4e-4932..1.1e4932 10 19..20
comp -2**63+1..2**63-1 8 19..20
Turbo Pascal⽀持两种⽤于执⾏实型运算的代码⽣成模式:软件仿真模式和80x87浮点模式。除了real可以在软件仿真模式下直接运⾏以外,其他类型必须在80x87浮点模式下运⾏。
⒊字符常量
在Pascal语⾔中,字符常量是由单个字符组成,所有字符来⾃ASCII字符集,共有256个字符。在程序中,通常⽤⼀对单引号将单个字符括起来表⽰⼀个字符常量。如:'a','A','0'等。特殊地,对于单引号字符,则要表⽰成''''。对于ASCII字符集中,按每个字符在字符集中的位置,将每个字符编号为0-255,编号称为对应字符的序号。
4.布尔常量
布尔型常量仅有两个值,真和假,分别⽤标准常量名true和false表⽰。它们的序号分别为1和0。
5.符号常量
⼀个常量即可以直接⽤字⾯形式表⽰(称为直接常量, 如 124,156.8),也可以⽤⼀个标识符来代表⼀个常量,称为"符号常量"。但符号常量必须在程序中的说明部分定义,也就是说先定义,后使⽤。
定义符号常量的⼀般格式:
CONST
<;常量标识符>=<;常量>
说明:常量说明部分以关键字const开头, 后⾯的标识符为常量标识符,其中"="号后的常量为整数、实数、字符、 字符串(字符、字符串常量在后⾯章节中将作介绍)。⽽且,在常量说明部分可以将⼏个常量说明成符号常量,共⽤⼀个关键字"const"。例如:
则在本程序中pi和zero作为符号常量,分别代表实数3.14159和整数0。也就是说,常量说明部分既定义了常量名及其值,⼜隐含定义了常量的类型。 关于符号常量,应注意下列⼏点:
⑴符号常量⼀经定义,在程序的执⾏部分就只能使⽤该常量标识符,⽽不能修改其值。
⑵使⽤符号常量⽐直接⽤数值更能体现"见名知义"的原则,也便于修改参数,故⼀个较好的程序中,应尽量使⽤符号常量,在执⾏部分基本上不出现直接常量。
(⼆)变量
变量代表了⼀个存储单元,其中的值是可变的,故称为变量。如游戏"魂⽃罗"中玩者命的个数最初为3,当你死了⼀次命减少⼀,这⾥命的个数就是⼀个变量(或者说命的个数存储在⼀个存储单元中)。即在程序运⾏过程中,其值可以改变的量,称为变量。
变量有三个要素是:变量名、变量类型、变量值。
⼀个程序中可能要使⽤到若⼲个变量,为了区别不同的变量,必须给每个变量(存贮单元)取⼀个名(称为变量名),该变量(存贮单元)存放的值称为变量的值,变量中能够存放值的类型为变量的类型。例如 "魂⽃罗"游戏中⽤于存放"命"的变量,在游戏程序中的名字可取为N,它的类型为整型,游戏初始时这个变量的值为3。
1.变量名
⽤⼀个合法的标识符代表⼀个变量。如n,m,rot,total 等都是合法变量名。在程序中⽤到的变量必须在说明部分加以说明,变量名应遵循⾃定义标识符的命名规则,并注?quot;见名知义"的原则,即⽤⼀些有意义的单词作为变量名。
"⾃定义标识符"的命名规则为:⾃定义标识符必须以字母(包含下划线"_")开头,后⾯的字符可以是字母或数字。标识符长度不超过63个字符。
2.变量的类型
常量是有类型的数据,变量在某⼀固定时刻⽤来存放⼀个常量,因此也应有相应的类型。如整型变量⽤来存放整数,实型变量⽤来存放实数。
3.变量说明
在程序中若要使⽤变量,变量的名称及类型在程序的变量说明部分加以定义,变量的值则在程序的执⾏部分中才能赋给。
变量说明的⼀般格式:
VAR
<;变量标识符>[,<;变量标识符>]:<;类型>;
(中括号内部分表⽰可省,下同)
其中VAR是pascal保留字,表⽰开始⼀个变量说明段, 每个变量标识符或由逗号隔开的多个变量标识, 必须在它的冒号后⾯说明成同⼀类型。⼀个程序中,可以说明许多不同类型的变量,每种类型变量之间⽤分号隔开,共⽤⼀个VAR符号。
例如:
var
pascal是系统软件吗age,day:integer;
amount,average:real;
其中,Integer(整型)、Real(实型)是标准标识符, 它们是"类型标识符",代表了确定的类型,如age和 day 被定义为整型变
量,amount和average被定义为实型变量。
⼀旦定义了变量,就确定了它的类型,也就是说,就确定了该变量的取值范围和对该变量所能进⾏的运算。
(三)算术表达式
⑴算术表达式的定义
pascal语⾔中的算术表达式是由符合pascal语法规定的运算对象(包括常量、变量、函数)、算术运算符
、圆括号组成的有意义的式⼦。如:A+3.14159*5/8.4-Abs(-1123)
⑵算术运算符
常⽤的有以下6个算术运算符:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论