一步一个脚印学PASCAL.docx
- 文档编号:12106993
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:8
- 大小:18.64KB
一步一个脚印学PASCAL.docx
《一步一个脚印学PASCAL.docx》由会员分享,可在线阅读,更多相关《一步一个脚印学PASCAL.docx(8页珍藏版)》请在冰豆网上搜索。
一步一个脚印学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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一步一个脚印 PASCAL