一步一个脚印学PASCAL.docx

上传人:b****1 文档编号:2618894 上传时间:2023-05-04 格式:DOCX 页数:8 大小:18.64KB
下载 相关 举报
一步一个脚印学PASCAL.docx_第1页
第1页 / 共8页
一步一个脚印学PASCAL.docx_第2页
第2页 / 共8页
一步一个脚印学PASCAL.docx_第3页
第3页 / 共8页
一步一个脚印学PASCAL.docx_第4页
第4页 / 共8页
一步一个脚印学PASCAL.docx_第5页
第5页 / 共8页
一步一个脚印学PASCAL.docx_第6页
第6页 / 共8页
一步一个脚印学PASCAL.docx_第7页
第7页 / 共8页
一步一个脚印学PASCAL.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

一步一个脚印学PASCAL.docx

《一步一个脚印学PASCAL.docx》由会员分享,可在线阅读,更多相关《一步一个脚印学PASCAL.docx(8页珍藏版)》请在冰点文库上搜索。

一步一个脚印学PASCAL.docx

一步一个脚印学PASCAL

一步一个脚印学PASCAL

2008-04-1918:

19

第一章、pascal介绍

一、pascal的基本语法单位

1、基本符号

A——Z;a——z;0——9;+,-,*,/,=,<>,<=,>=,<,>,(,),[,],{,},:

=,,,;,.,:

,..,',^

注意:

pascal语言除了能使用以上规定的基本符号外,不得使用任何其它符号。

2、保留字

AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DIWNTO,ELSE,END,FILE,FOR,FUNTION,GOTO,IF,LABEL,MOD,NIL,OF,OR,PACKED,PROCEDURE,Program,REcORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,var,WHILE,WITH。

注意:

所起的文件名不能与保留字相同。

3、标识符

以字母打头的字母数字串,长度小于等于8。

标准标识符(共三十九个):

标准常量:

false,true,maxint

标准类型:

integer,real,char,boolean,text

标准文件:

input,output

标准函数:

abs,arctan,chr,cos,eof,eoln,exp,ln,odd,ord,ored,round,sin,sqr,

sqrt,succ,trunc

标准过程:

get,new,pack,page,put,read,readln,reset,rewrite,unpack,write,writeln

二、程序结构

1、由三大部分组成:

程序首部,说明部分,语句部分。

Program程序名(input,output);

{……}解释

cONST

pi=3.14159;

var

r,l,s:

real;

BEGIN

write('inputr:

');

read(r);

l:

=2*pi*r;

write('l=',l,'s=',s);

END;

2、大量使用标点符号,保留字后不加标点符号(END除外)。

第二章、顺序结构程序设计

一、标准数据类型

1、实型(real)

小数表示法、指数表示法

2、整型(integer)

正、负整数和零

maxint=32767

pred:

前导;succ:

后继

[例]:

pred(3)=2;succ(3)=4;

pred(true)=false;

succ(false)=true

3、字符型(char)

是指在两个单引号中的一个字符。

ord:

取序数

[例]:

ord('A')=65

4、布尔型(boolean)

false;true

用于布尔型的运算:

NOT、AND、OR

ord(true)=1;ord(false)=0

二、常量和变量的定义

常量的定义:

cONST

pi=3.14159;

blank='';

变量的定义:

var

r,l,s:

read;

cl:

char;

三、表达式及赋值语句

[例]:

b²-4ac写成:

sqt(b)-4*a*c

赋值:

<变量>:

=<表达式>

四、输入输出语句

1、输入语句:

read(<变量表>);readln(<变量表>)

注:

表达式里面变量与变量之间用逗号隔开;

readln表示下一个语句将从下一行开始操作;

输入时,整型或实型用空格或回车隔开,字符型之间无需分隔,一个接一

个输入。

2、输出语句:

write(<输出表>);writeln(<输出表>)

注:

对real或integer限定场宽:

write('a=',a:

2:

0){a为real型}

第三章、选择结构程序设计

一、if语句

格式:

IF<条件>

THEN<语句1>

ESLE<语句2>

注:

1、ELSE与最近的并且未被配对的ELSE配对;

2、复合,如果THEN或ELSE带有多个语句,则要用BEGIN——END括起来。

二、cASE语句

格式:

cASE<表达式>OF

<值表1>:

<语句1>

<值表2>:

<语句2>

……

<值表n>:

<语句n>

[ELSE<语句>]

END

注:

1、值表的三种表达方式:

“1:

”;“2,4,6:

”;“10..100:

2、cHAR,INTEGER,BOOLEAN有序

第四章、循环结构程序设计

一、FOR语句

格式:

1、FOR<循环变量>:

=<初值>TO<终值>DO<语句>;

2、FOR<循环变量>:

=<终值>DOWNTO<初值>DO<语句>。

[例1]:

输入10个数,求最大值、最小值、和、及平均值。

Programten(input,output);

var

a,s,max,min,avg:

real;

i:

integer;

BEGIN

write('pleaseinput:

');

read(a);

s:

=a;

max:

=a;

min:

=a;

FORi:

=2TO10DO

BEGIN

read(a);

s:

=s+a;

IFa>maxTHEN

max:

=a

ELSE

IFa

=a

END;

avg:

=s/i;

writeln(……);

END.

[例2]:

求s=1!

+2!

+3!

+……+10!

Programsum_fac(input,output);

var

i,j,s,m:

integer;

begin

s:

=0:

forj:

=1to10do

begin

m:

=1;

forj:

=1toido

m:

=m*j;

s:

=s+m;

end;

write(……);

end;

二、while语句

格式:

WHILE<条件>DO

<循环体>

[例1]:

输入一串字符串,求第一个“,”前的大小写字母个数和其它字符个数。

Programstring(input,output);

var

ch:

char;

c,s,o:

integer;

begin

write(……);

read(ch);

c:

=0;

s:

=0;

o:

=0;

whilech<>','do

begin

if(ch>='A')and(ch<='Z')then

c:

=c+1

elseif(ch>='a')and(ch<='z')then

s:

=s+1

else

o:

=o+1;

read(ch);

end;

write(……);

end.

三、REPEAT语句

格式:

REPEAT

<循环体>

UNTIL

[例]:

以字符(char)的形式读入一实数,以实形(real)输出该数。

第五章、函数与过程程序设计

一、函数(包括标准函数和自定义函数)

1、函数的定义

格式:

FUNcTION函数名(<形参表>):

返回值类型;

var

<变量说明>

BEGIN

<函数体>

END

[注]:

1、形参表每个参数都写明其类型;

2、有且只有一个返回值,并且要将返回值赋值给函数名。

[例]:

求五边形的面积

functionarea(a,b,c:

real):

real;

var

p:

real;

begin

p:

=(a+b+c)/2;

area:

=sqrt(p*(p-a)*(p-b)*(p-c);

end;

2、函数的调用

1)、函数的调用必然出现在表达式中(等号的右边),不能以单独地在语句出现

2)、调用时,将每个实参传递给对应的形参

Programml_area(input,output);

var

l1,l2,l3,l4,l5,l6,l7,s:

real;

functionarea(a,b,c:

real):

real;

var

p:

real;

begin

p:

=(a+b+c)/2;

area:

=sqrt(p*(p-a)*(p-b)*(p-c);

end;

begin

write('input');

readln(l1,l2,l3,l4,l5,l6,l7);

s:

=area(l1,l2,l6)+area(l2,l6,l7)+……;

writeln('s=',s:

10:

3);

end.

二、过程

格式:

PROcEDURE<过程名>(<形式参数表>)

var

<说明部分>

BEGIN

<过程体>

END;

[例1]某过程的形参表为(vara,b:

real;c,d:

integer;vare:

char);

主程序中有如下变量说明:

x,y:

real;m:

integer;next:

char;

则以下实参表中合法的有:

(1、2、3)

1、(x,y,m+3,70,next)

2、(y,x,m,m,next)

3、(y,x,35,mDIV10,next)

4、(m,x,30,10,next)

5、(x,y,m,10)

6、(35,0,y,m,10,next)

7、(x,y,m,m/10,next)

8、(A,B,30,10,next)

[例2]求程序输出的结果。

Programex(input,output);

var

x,y,z:

integer;

procedures(x:

integer;vary:

integer);

var

z:

integer

begin

x:

=5;y:

=6;z:

=7;

end;

begin

x:

=1;y:

=2;z:

=3;

s(x,y);

writeln(x,y,z);

end.

输出结果:

163

[例3]:

求五个数中的最大值。

Programmax_in_5(input,output);

var

n1,n2,n3,n4,n5:

integer;

procedurelagest_in_three(a,b,c:

integer;vare:

integer)

begin

e:

=a;

ifb>ethen

e:

=b;

ifc>ethen

e:

=c;

end;

begin

write('……');

readln(n1,n2,n3,n4,n5);

lagest(n1,n2,n3,n1);

lagest(n1,n4,n5,n1);

write(n1);

end.

三、嵌套

[例]:

计算、

Programcmn(input,output);

functionfax(x:

integer):

integer:

var

i:

integer;

begin

fac:

=1;

fori:

=1toxdo

fac:

=fac*i;

end;

functionc(a,b:

integer):

real;

begin

c:

=fac(a)/fac(b)*fac(a-b)

end;

begin

writeln('c(9,3)=',c(9,3));

writeln('c(8,5=',c(8,5));

end.

四、递归

函数或过程调用它本身,称为递归。

[例1]、用递归计算n!

{=m!

/n!

(m-n)!

}

Programfac_n(input,output);

var

n:

integer;

functionfac(n:

integer):

integer;

begin

ifn=1thenfac:

=1

elsefac:

=n*fac(n-1);

end;

[例2]、用递归计算

1)、functionpower(a,b:

integer):

integer;

begin

ifb=1thenpower:

=a

elsepower:

=a*power(a,b-1);

end;

2)、procedurepower(a,b:

integer;varc:

integer);

begin

ifb=1thenc:

=a

elsepower(a,b-1,c);

c:

=a*c;

end;

[例3]、输入一串字符串(以‘.’结束)按逆顺输出

Programrevers(input,output);

procedurerever;

var

c:

char;

begin

read(c);

ifc<>'.'thenrever;

write(c);

end;

begin

rever;

end.

五、标识符的作用域

1、全局变量和局部变量

1)、全局变量:

在主程序中被说明,作用域:

整个程序;

2)、局部变量:

在子程序中被说明,作用域:

主程序及其下级的程序。

2、子程序(function、precedure)的作用域

一个子程序可以调用它的下一级了程序,或可以调用在它之前定义的同级子程序。

[例]写出程序运行的结果。

Programrange(input,output);

var

x,y:

integer;

procedurep1;

var

x,z:

integer;

begin

x:

=10;y:

=y+1;z:

=10;

writeln(x,y,z);

end;

begin

x:

=1;y:

=1;

writeln(x,y);

p1;

writeln(x,y,z);

end.

结果为:

(xyz)

11

10210

12(error)

3、在子程序中被改变值的变量可以回传的两种方法:

a、变量参数procedure(var变量名);

b、在上一级程序定义了的,且在下一级程序未被重新定义的。

[注]如果主程序的变量在子程序被重新定义,在子程序中主程序的变量被稳藏,在主程序中子程序的变量无效。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2