过程与函数练习


一、看程序写结果

PRGORAM CHU7_4;
 VAR N,K,I:INTEGER;
   A:ARRAY[1..40]OF INTEGER;
 PROCEDURE FIND(X:INTEGER);
  VAR S,I1,J1:INTEGER;
      P:BOOLEAN;
  BEGIN
    I1:=0;P:=TRUE;
    WHILE P DO
     BEGIN
      I1:=I1+1;S:=0;
      FOR J1:=1 TO N DO
       IF A[J1]>A[I1]THEN S:=S+1;
      IF(S=X-1)THEN
       BEGIN
        WRITELN(A[I1]);P:=FALSE
       END;
     END
    END;
 BEGIN
   READLN(N,K);
   FOR I:=1 TO N DO READ(A[I]);
   FIND(K); FIND(N-K);
 END.
输入:10 4
   12 34 5 65 67 87 7 90 120 13

输出:

 
 

PROGRAM CHU7_1;

FUNCTION FUN(X:INTEGER):INTEGER;
 BEGIN
  IF(X=0)OR(X=1)THEN FUN:=3
         ELSE FUN:=X-FUN(X-2)
 END;
BEGIN
 WRITELN(FUN(9));
 READLN;
END.

输出:

  
二、编写程序

1.编写一个程序,它将输入到一维数组中的任意10个数按升序排列,再从终端读入一个待查找的数x,用二分法查找x在数组中的位置。 要求排序由过程实现, 查找由函数实现。

2.综合练习 (ppro8.pas)
前提知识:计算任意三角形(三条边的长度分别为a、b、c)的面积S可以用海伦公式:
S=sqrt((x-a)(x-b)(x-c))
其中:x=(a+b+c)/2
题目描述:从键盘输入三个数,判断以这三个数为边能否组成一个三角形,若不能,则给出适当信息;若能,则输出是否为等边、等腰或直角三角形,并输出其面积。
编程要求:
(1). 将从键盘输入三个数设计成一个过程,过程名为input,带三个变量参数a,b,c;
(2). 将判断三个数能否组成三角形(包括是什么三角形)设计成一个函数,函数为ang,参数为在input中接收到的三个数,返回的值表明了能否组成三角形或三角形的类型;
(3). 将计算三角形面积设计成一个函数,函数名area,带三个值参数,返回的值为三角形的面积;
(4). 要求使程序的主程序的结构明快些,并要求在程序中的适当的说明。