1/53目录第一部分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语言是瑞士苏黎士工科大学的NiklansWirth(沃思)1971年发表的,是为了纪念17世纪法国著名哲学和数学研究者BlaiscPascal而将它命名为Pascal程序设计语言。Pascal语言是信息学奥赛中普遍使用的程序设计语言。2/53第一节程序的组成与上机调试运行一、程序的组成我们先看一道例题。例1-1输入两个整数a和b,计算a和b的和(a+b)。【参考程序】programa1(input,output);//程序首部vara,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语言编辑软件的基本操作下面我们以FreePascal1.10系统为例来学习一下Pascal语言编辑软件的使用。1.FreePascal的启动在运行程序目录下(一般是c:\pp\bin\go32v2)运行启动程序fp.exe,即可启动系统。屏幕上出现如图1-1所示的集成环境。图1-12.FreePascal系统集成开发环境(IDE)简介最顶上一行为主菜单,中间蓝色框内为编辑窗口,在编辑窗口内可以进行程序的编辑,最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,打开磁盘文件命令F3,等等。3/533.新建程序窗口按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程序执行的任一时刻,变量总有相应的值。由于变量是有类型的,所以整型变量对应整数值,实型变量对应实数值。4/53在Pascal语言中规定:在程序中使用的变量必须先定义后使用。如果用到的变量没有定义就使用,程序编译时会出现“IdentifiernotfoundX”的错误信息。例1-2已知某圆的半径r=15.15,求该圆的面积s?【分析】圆的面积s=3.14*圆的半径r*圆的半径r【参考程序】programt301;constpi=3.14;vars,r:real;//定义两个实型变量s,rbeginr:=15.15;s:=pi*r*r;writeln(s:10:2);//显示宽度是10,保留两位小数end.【输出结果】47.57三、数据类型Pascal语言提供了丰富的数据类型,大致分为以下三类,如图1-2所示:图1-2简单类型是指该类型不能再分解为其它类型,而结构类型是由简单类型所组成的,或者说结构类型是由简单类型所构造成的。1.整型一个整型数据用来存放整数。FreePascal支持七种预定义整型,它们是shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)、word(字类型)、int64和Qword,每一种类型规定了相应的整数取值范围以及所占用的内存字节数。类型数值范围占字节数Shortint-128..1271byte0..2551word0..655352integer32768..327672longint-2147483648..21474836474int64-9223372036854775808..92233720368547758078qword0..184467440737095516158FreePascal预定义了两个整型常量标识符maxint和maxlongint,他们各表示确定的常数值,maxint为32767,maxlongint为2147483647,他们的类型分别是integer和longint。2.实型FreePascal语言支持五种预定义实型,它们是real(基本实型)、single(单精度实型)、double(双精度实型)、comp()、extended(扩展实型),每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。5/53类型数值范围占字节数有效位数real2.9e-39..1.7e38611..12single1.5e-45..3.4e3847..8double5.0e-324..1.7e308815..16Comp(装配实型)-2^63+1..2^63-1819..20extended(扩展实型)3.4e-4932..1.1e49321019..20实型常量包括正实数、负实数和实数零。pascal中表示实型常量的形式有两种。⑴十进制表示法这是人们日常使用的带小数点的表示方法,要求小数点前后必须有数字。如0.0、-0.0、+5.61、-8.0、-6.050等都是实型常量,而0.、.55都不是合法的实数形式。⑵科学记数法科学记数法是采用指数形式的表示方法,如1.25×10^5