当前位置:文档之家› PASCAL基本程序结构和概念

PASCAL基本程序结构和概念

要求:1.程序的结构2.了解:常量变量运算符表达式标准数据类型3.学会安装TP并做简单的操作。

PASCAL基本程序结构和概念标识符保留字常量变量运算符表达式标准数据类型例1:为了明显起见先举一个最简单的PASCAL程序例子:例2:Program ex11;BeginWriteln(‘Hello World!’);ReadLn;End.[例3]已知一辆自行车的售价是300元,请编程计算a辆自行车的总价是多少?解:若总售价用m来表示,则这个问题可分为以下几步处理:①从键盘输入自行车的数目a;②用公式m=300*a 计算总售价;③输出计算结果。

Pascal程序:Program Ex12; {程序首部}Var a,m : integer; {说明部分}Begin {语句部分}Write(‘a=’);ReadLn(a); {输入自行车数目}M := 300*a; {计算总售价}Writeln(‘M=’,m);{输出总售价}ReadLn; {等待输入回车键}End.[例4] 输出两个自然数相除的商和余数。

解:设被除数、除数、商和余数,分别为A,B,C,D,均为变量,且都是整数类型。

题中未给出具体的自然数A、B,可采用键盘输入方式。

①给出提示,从键盘输入a, b;②显示两数相除的数学形式;③求出a除以b的商c;④求出a除以b的余数d;⑤紧接等式后面输出显示商和余数。

Pascal程序:Program Ex14;Var a,b,c,d : integer;BeginWrite('INPUT A,B:');{给出提示信息}Readln(a,b);{输入a,b}Writeln;{输出一空行}Write(a,'/',b,'=');{输出等式之后不换行}c:=a div b;{整除运算,取商的整数部分}d:=a mod b;{相除求余运算,取商的余数部分}Writeln(C,'…',d);{输出后自动换行}Readln {等待输入回车键}End.例5:从键盘读入4个数据,逆序输出program pname;const n=4;type ar=array [1..4] of integer;var i:integer; a:ar;beginfor i:=1 to n doread(a[i]);readln;for i:=n downto 1 dowrite(a[i]:4);writeln;end.[例1.6]自然数的立方可以表示为两个整数的平方之差,比如43=102-62,请输出自然数1996的这种表示形式。

(这里的43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示)解:此题没有现成的计算公式能直接利用,但可以自行推出处理方法或构建适当的运算公式,按着构想的处理方案编排出各步骤。

设这个自然数为N,两个平方数分别为X,Y,将问题表示为求N3=X2—Y2①先找出X的值,仔细观察题中的示例,用数学方法归纳可得出X=N*(N+1)/2;(构成本题可用的计算公式)②再仔细观察,发现Y值比X小一个N值,即Y=X—N;③输出等式N3=X2—Y2或N*N*N=X*X—Y*YPascal程序:Program Ex15;Const N=1996;{常量说明}Var X,Y: Longint;{变量说明,此题计算中的数值较大,用长整型}BeginX:=N*(N+1) div 2;{ div 是整除运算}Y:=X-N;Writeln(N,'*',N,'*', N,'=', X,'*', X,'—',Y,'*',Y);{ 输出结果}ReadlnEnd.本程序中N是常量,X,Y是变量,为长整数类型(Longint);程序中的div 是整除运算,其结果只取商的整数部分;[例1.7] 求一元二次方程x2+3x+2=0的两个实数根。

解:方程的系数是常量,分别用a,b,c表示,可运用数学上现成的求根公式求方程的根,采取如下方法:①先求出d=b2-4ac;(求根公式中需用开方运算的那部分)②再用求根公式算出x1,x2的值。

(x1,x2 = ? )③输出x1,x2.Pascal程序:program Ex16;Const a=1;{常量说明}b=3;c=2;{a,b,c表示方程系数}Var d : integer;{d为整型变量}X1,X2: Real;{X1,X2为实型变量}Begind:=b*b-4*a*c;x1:=(-b+sqrt(d))/(2*a);{求方程的根}x2:=(-b-sqrt(d))/(2*a);Writeln('X1=',X1,'':6,'X2=',X2);{输出结果}Readln {等待输入一个回车键}End.本程序中的a,b,c均为常量;变量d是整数类型,而变量x1,x2则是实数类型,因为运算式中的Sqrt(d)开平方运算和(/)除法运算使结果为实数。

Sqrt( ) 是开平方函数,是Pascal系统的一个标准函数。

一般来说,一个PASCAL程序包括以下几个部分:程序头:program pname; 其中,program是保留字,表示程序从这个地方开始,pname是标识符,是程序的名字,可由程序员自定。

保留字是PASCAL选定的,具有固定意义和用法的专用单词或缩写,这些单词不允许作其它使用。

如上,“program”就有“程序从这里开始”这样一种特别的意义,而“const”就有“常量说明从这里开始”的意义。

我们不能再用“program”、“const”来作为其它变量、常量等的名字。

标识符是以字母开头的字母数字串,其长度最大为8个字符。

用来表示常量、变量、类型、文件、过程、函数和程序的名字。

如“pname”、“i”、“j”、“a1”就是合法的标识符;但“1a”、“#a”是非法的标识符。

有一点要注意的是,在PASCAL中,字母除了作为字符值或字符串值之外,其大小写是无关的。

如标识符“A1”和“a1”在PASCLA看来是同一标识符。

在PASCAL中除了保留字和自定义的标识符外,还有一类有特殊含义的标识符,这类标识符称为标准标识符。

它们是用来标记程序中经常引用的处理对象,如常量、函数。

(PASCAL定义的保留字和标准标识符附后)标识符在命名的时候要注意:1、名字要易记易读,有意义。

如8皇后问题程序名可以是“queen”也可以是“huanghou”等;2、不能用保留字、标准标识符作为自定义的标识符。

说明部分:const n=4;type ar=array [1..4] of integer;var i:integer; a:ar;其中,const部分是常量说明,说明一些在以下部分用到的,在整个程序执行过程不改变值的量。

这些量PASCAL称为常量。

在程序中用到这个值的地方均用常量名来代替。

如上题中定义“n=4”指本程序处理4个数值,在下面的程序体中就用“n”来代替具体的值(如for i:=1 to n)。

如果要改变处理数据个数,则只在常量说明部分修改“n=4”这一句就行了,而不用在程序中每一个用到的地方都加以修改。

这样不但在编写程序的时候很方便,也增加了程序的可读性,修改时更方便。

常量说明在保留字“const”下开始。

可以有多个语句。

常量说明语句的格式是:“常量名=值;”。

如“n=4;”。

n是常量名,4是该常量的值,“;”是语句分隔符。

type部分是类型说明,说明一些在以下部分用到的数据类型。

如数组、记录、指针等。

类型说明在保留字“type”下开始。

可以有多个语句。

类型说明语句的格式是:“类型名=类型说明;”。

如“ar=array [1..4] of integer;”。

ar是类型名,array [1..4] of integer是类型说明,“;”是语句分隔符。

var部分是变量说明。

变量是指在程序执行过程中可以通过赋值语句或读语句来改变值的量。

所有在程序中使用的变量都应该先在变量说明部分说明。

PASCAL中引用的每个变量都有“名字”和“类型”属性。

变量说明“说明”的主要工作是告诉PASCA下面程序中要用到这个名字的量,同时这个量的类型是什么。

变量说明在保留字“var”下开始。

可以有多个语句。

变量说明语句的格式是:“变量名:变量类型;”。

其中,如果有多个变量同一类型,则变量名与变量名之间用逗号分隔,变量名与变量类型之间用冒号分隔。

如“i:integer;”(i是变量名,integer是类型名)、“i、j:integer;”(i、j是变量名,integer是类型名)……变量说明要注意:1、有效变量名称不能大于8个字符;2、变量名称必须以字母开头;3、在同一个有效范围内变量名称必须唯一。

各个说明部分均以该部分的保留字开始。

如“const”开始常量说明;“type”开始类型说明;“var”开始变量说明。

一个程序包含多少种类型的说明,看需要而定,不是每一个程序都必须同时包含这三种说明。

如果程序不须要用到常量,则常量说明部分可以省略;如果不须要用到类型说明,则类型说明可省……PASCAL还有一条规则:先说明后引用。

即所有在程序体中用到的“名字”必须都在说明部分说明过才能引用,否则就会出错,通不过编译,也执行不了。

如上,类型“ar”先在类型说明中定义,然后在变量说明中引用;变量i在变量说明中定义,在程序中引用。

程序体:beginfor i:=1 to n doread(a[i]);readln;for i:=n downto 1 dowrite(a[i]:4);writeln;end.程序体是以begin end.括起来的语句系列。

“end”后面是一个小圆点,标识着程序结束,整个程序只有一个是一个程序的主要部分。

编程要完成的工作大部分都在这里完成。

程序体中每一语句均以“;”作为结束符。

在书写程序时,以“分层缩进”的风格来写,以便提高程序的可读性。

所谓的“分层缩进”是指在逻辑上同一级的语句其起始点对齐,下一级的语句向右缩进。

运算符表达式PASCAL中的运算符有算术运算符和关系运算符。

和我们在数学课中学的基本一样但在写法上有些不同,在写程序时要特别注意写法的不同:+ 加号- 减号* 乘号( 数学中写为×) / 除号( 数学中写为÷)MOD 取余如8 MOD 2=0 7 MOD 2=1 2 MOD 3=2DIV 取整如8 DIV 2=4 7 DIV 2=3 2 DIV 3=0在PASCAL只有上面6种数学运算。

其它的就只能利用这6种运算的组合通过语句来实现。

如a^2(a的平方)可以化成a*a。

相关主题