目录第一部分 PASCAL语言程序设计 (1)第一章 PASCAL语言基础 (1)第一节程序的组成与上机调试运行 (2)第二节常量、变量与数据类型 (3)第三节表达式与标准函数 (6)第四节赋值语句、输入与输出语句 (9)习题 (12)第二章程序的三种基本结构 (15)第一节顺序结构 (15)第二节选择结构 (15)第三节循环结构 (17)习题 (20)第三章数组 (22)第一节一维数组 (22)第二节二维数组及应用 (25)习题 (26)第四章字符与字符串操作 (29)第一节字符和字符数组 (29)第二节字符串变量 (29)第三节字符串应用举例 (31)习题 (33)第五章函数与过程 (35)第一节自定义函数 (35)第二节自定义过程 (38)第四节递归 (42)第五节递归与回溯 (45)习题 (50)第一部分 PASCAL语言程序设计第一章 PASCAL语言基础Pascal语言是瑞士苏黎士工科大学的Niklans Wirth(沃思)1971年发表的,是为了纪念17世纪法国著名哲学和数学研究者Blaisc Pascal而将它命名为Pascal程序设计语言。
Pascal语言是信息学奥赛中普遍使用的程序设计语言。
第一节程序的组成与上机调试运行一、程序的组成我们先看一道例题。
例1-1 输入两个整数a和b,计算a和b的和(a+b)。
【参考程序】program a1(input,output); //程序首部var a,b,c:integer; //程序说明部分,a,b,c被说明为整型变量begin //程序执行部分,下面是程序的内容write('a='); //在屏幕上输出一个字符串“a=”,输出完后不换行read(a); //从键盘输入一个数值赋给变量awrite('b='); //在屏幕上输出一个字符串“b=”,输出完后不换行read(b); //从键盘输入一个数值赋给变量bc:=a+b; //计算a+b的和,并将这个和赋值给变量cwriteln(a,'+',b,'=',c); //输出a+b=c的等式,输出完后换行 end. //程序结束【样例输入】a=10b=30【样例输出】10+30=40由上可以看出,一个Pascal程序由以下三部分组成:(1)由Program 引导的一行是Pascal程序的首部。
程序首部指出了源程序的名称,是由用户自己给出的,该例子称为a1。
程序名后用括号括住的两个参数input与output,通常表示程序运行中的标准输入和输出文件,程序首部以分号结束。
(2)Pascal程序的第二部分是说明部分。
说明部分要求列出程序中引用的全部常量、变量、转移标号、类型、过程和函数的有关说明。
若变量c在说明部分没有说明,后边的语句c:=a+b在执行时;翻译软件便能指出其错误并提醒用户加以改正,程序中每个语句都以分号表示结束。
(3)程序的第三个部分是用BEGIN和END括住的一串语句,称为程序的执行部分。
有的书中将说明部分和执行部分合称为程序体。
二、PASCAL语言编辑软件的基本操作下面我们以Free Pascal 1.10系统为例来学习一下Pascal语言编辑软件的使用。
1.Free Pascal的启动在运行程序目录下(一般是c:\pp\bin\go32v2)运行启动程序fp.exe,即可启动系统。
屏幕上出现如图1-1所示的集成环境。
图1-12.Free Pascal系统集成开发环境(IDE)简介最顶上一行为主菜单,中间蓝色框内为编辑窗口,在编辑窗口内可以进行程序的编辑,最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,打开磁盘文件命令F3,等等。
3.新建程序窗口按F10切换到主菜单,选择FILE菜单,执行其中New命令,就可建立一个新的程序窗口(默认文件名为Noname00.pas或Noname01.pas等)。
4.程序的输入、编辑与运行在当前程序窗口中,一行一行的输入程序。
当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令)对程序进行编译。
如果程序有语法错误,则会出现一个Compiler窗口,提示你语句错误的坐标。
若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。
接下来,我们可以运行程序了。
程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9,则可以在用户窗口中输出运行结果。
通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要按ALT+F5将屏幕切换到用户屏幕。
5.程序的保存与打开当我们想把程序窗口中的程序存入磁盘时,可以通过按F2键(或执行File菜单中的save命令)来保存程序。
第一次保存文件时屏幕上会出现一个对话框要求输入文件名(默认扩展名为.pas)。
当我们要将磁盘上的PASCAL程序打开(装入窗口)时,可按F3(或执行File菜单中的Open命令)来打开程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要打开的文件。
第二节常量、变量与数据类型一、常量(1)常量:在某个程序运行的整个过程中其值不能发生改变的量。
(2)常量定义:常量定义出现在说明部分。
它的语法格式是:const<常量标识符>=<常量>;...<常量标识符>=<常量>;例如:constpi=3.141592; //此种方式定义的常量在程序中不可以改变(3)常量定义部分必须以保留字const开头,可以包含一个或几个常量定义,而且每个常量均以分号结束。
二、变量(1)变量定义:在某个程序的运行过程中其值可以发生改变的量。
它应具有以下三个要素:变量名、变量类型和变量值。
(2)变量说明:变量说明出现在说明部分。
它的语法格式是:var<变量列表>:<类型>;...<变量列表>:<类型>;(3)变量名每一个变量必须用一个合适的标识符来命名。
标识符是用来标识处理对象(如常量、变量、类型、过程、函数、程序和文件等)的符号名称。
标识符是编程者命名的,自由度很大。
命名中应该注意遵循一定的规则,如必须以字母开头,后面可以跟字母、数字和连字符“_”,若有连字符“_”则必须位于标识符中间。
如:a,root,tot,t3,exp_1都是合法的标识符,而3a,a#,my%都不是合法的标识符。
(4)变量的类型在Pascal程序执行的任一时刻,变量总有相应的值。
由于变量是有类型的,所以整型变量对应整数值,实型变量对应实数值。
在Pascal语言中规定:在程序中使用的变量必须先定义后使用。
如果用到的变量没有定义就使用,程序编译时会出现“Identifier not found X”的错误信息。
例1-2 已知某圆的半径r=15.15,求该圆的面积s?【分析】圆的面积s=3.14*圆的半径r*圆的半径r【参考程序】program t301;const pi=3.14;var s,r:real; //定义两个实型变量s,rbeginr:=15.15;s:=pi*r*r;writeln(s:10:2); //显示宽度是10,保留两位小数end.【输出结果】47.57三、数据类型Pascal语言提供了丰富的数据类型,大致分为以下三类,如图1-2所示:图1-2简单类型是指该类型不能再分解为其它类型,而结构类型是由简单类型所组成的,或者说结构类型是由简单类型所构造成的。
1.整型一个整型数据用来存放整数。
Free Pascal支持七种预定义整型,它们是shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)、word(字类型)、int64和Qword,每一种类型规定了相应的整数取值范围以及所占用的内存字节数。
类型数值范围占字节数Shortint -128..127 1byte 0..255 1word 0..65535 2integer 32768..32767 2longint -2147483648..2147483647 4int64 -9223372036854775808..9223372036854775807 8qword 0..18446744073709551615 8Free Pascal预定义了两个整型常量标识符maxint和maxlongint,他们各表示确定的常数值,maxint为32767,maxlongint为2147483647,他们的类型分别是integer和longint。
2.实型Free Pascal语言支持五种预定义实型,它们是real(基本实型)、single(单精度实型)、double(双精度实型)、comp()、extended(扩展实型),每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。
类型数值范围占字节有效位数数real 2.9e-39..1.7e38 6 11..12single 1.5e-45..3.4e38 4 7..8double 5.0e-324..1.7e308 8 15..16Comp(装配实型) -2^63+1..2^63-1 8 19..20extended(扩展实型) 3.4e-4932..1.1e4932 10 19..20实型常量包括正实数、负实数和实数零。
pascal中表示实型常量的形式有两种。
⑴十进制表示法这是人们日常使用的带小数点的表示方法,要求小数点前后必须有数字。
如0.0、-0.0、+5.61、-8.0、-6.050等都是实型常量,而0.、.55都不是合法的实数形式。
⑵科学记数法科学记数法是采用指数形式的表示方法,如1.25×10^5可表示成1.25E+05。
在科学记数法中,字母“E”表示10 这个“底数”,而E之前为一个十进制表示的小数,称为尾数,E之后必须为一个整数,称为“指数”。
如-1234.56E+26、+0.268E-5、1E5 是合法形式,而.34E12、2.E5、E5、E、1.2E+0.5都不是合法形式的实数。
值得注意的是实数的运算比整数的运算速度慢且无法像整数那样精确表示,只能近似表示。
3.布尔型(boolean)一个布尔型数据用来存放逻辑值(布尔值),布尔型的值只有两个:false(假值)和true(真值)。
4.字符型(char)字符型只允许单引号中有一个字符,否则就是字符串(string)。
如:'A','y','9','7'。