pascal过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章补充1:过程
程序中凡重复出现相同语句序列的地方,可简单地用一个称为过程的子程序代替,这个子程序的定义称为过程说明。
过程说明的形式如下:
procedure过程名[(形式参数表)];——过程首部
[说明部分]
begin
语句1;
语句2 执行部分过程体
……
end;
其中以保留字procedure开始的那一行称为过程首部。
方括号内为可选部分。
在过程首部的过程名后若无形式参数表,此过程称为无参过程,否则称为带参过程。
其中说明部分是可选的,说明本过程中使用的变量等。
[例1]输出5行*号。
程序定义了一个无参过程FiveLines,并在主程序中调用它。
procedure FiveLines;
var i:integer;
过程说明 begin
for i:=1 to 5 do writeln(‘***********’)
end;
begin {main}
主程序 fiveLines; {过程调用}
readln;
end. {main}
[例2]输出三行*号组成的三角形。
程序定义了过程NLines,含有一个参数,决定*号的个数。
procedure Nlines(n:integer);
var i:integer;
begin
for i:=1 to n do write('*');
writeln
end;
begin {main}
Nlines(1);
Nlines(3);
Nlines(5);
readln;
end.
输出m行*号组成的三角形。
var i,m:integer;
procedure Nlines(n:integer);
var i1:integer;
begin
for i1:=1 to n do write('*');
writeln
end;
begin {main}
readln(m);
for i:=1 to m do Nlines(i*2-1);
readln;
end. {main}
[例3]用过程binary输出正整数对应的二进制数。
分析:将十进制数转换为二进制数的方法是除二取余。
var d,a:integer;
procedure binary(b:integer;var a:integer);
begin
if b=1 then write(b mod 2)
else begin
binary(b div 2,a);
a:=2*a+b mod 2;
write(b mod 2);
end;
end;
begin
write('D:');readln(d);
write('B:');binary(d,a);
readln;
end.
[例4]先定义一个求两数中较大值的过程,然后定义调用该过程求三数中的最大数的过程。
var a,b,c,max:integer;
procedure largest(f1,f2,f3:integer;var rr:integer);
var g:integer;
procedure larger(n1,n2:integer;var r:integer);
begin
if n1>n2 then r:=n1 else r:=n2;
end;{larger}
begin
larger(f1,f2,g);
larger(g,f3,rr);
end;{largest}
begin
write('a,b,c=');readln(a,b,c);
largest(a,b,c,max);
writeln(max);
readln;
end.
说明:上面Largest的定义为过程说明,而Larger的定义为过程Largest的分程序部分的过程说明,即Larger为Largest的子程序说明。
过程说明的第一行为过程首部,由保留字procedure开始,后接标识符为过程名,括号内为形式参数表。
接下去是分程序部分,包括定义说明部分和一个由复合语句组成的过程体。
上述程序Largest有四个类型为整型的形式参数:fl,f2,f3和rr,前三个参数fl,f2,f3为调用者向被调用者传入的三个要求比较的整数,第四个参数rr用来向调用者传送三数中最大值。
调用过程Largest时,就不再需要考虑它的实现细节,只要知道它的功能就行了。
练习
1、编写一个由参数n确定三角形的过程,输入n,调用该过程。
例如:
输入:n=4
输出:*
**
* *
****
2、求给定的五个数中的最大值(用过程编写求三个数的最大值,然后调用实现)。
3、编写过程,将以秒为单位的角度,转换为度、分、秒(用°、’、”表示)形式输出。
然后对输入的
实数,调用该过程。
例如:
输入:3867
输出:1°4'27”
转换关系:1°=60',l’=60”(提示:°、’、”符号的字符转换函数分别为chr(248)、chr(39)、chr(34))。