implementation
 

{$R *.dfm}
 var
   m:array[1..6] of real;
 

function max1(m:array [ 1..6] of real):real;
 var
   i,j:integer;
   k:real;
 begin
   for i:=1 to 6 do
     for j:=i to 5 do
       begin
         if (m[i]>m[j]) then
           begin
             k:=m[i];
             m[i]:=m[j];
             m[j]:=k;
           end;
 
      end;
       max1:=m[6];
 end;
 {
   以上函数是求取分数的最大值,通过max1返回
 }
 function min1( m:array [1..6] of real):real;
 var
   i,j:integer;
   k:real;
 begin
   for i:=1 to 6 do
     for j:=i to 5 do
       begin
         if (m[i]<m[j]) then
           begin
             k:=m[i];
             m[i]:=m[j];
             m[j]:=k;
           end;
 
      end;
       min1:=m[6];
 end;
 {
   以上函数是求取分数的最小值,通过max1返回
 }
 
function operate(m:array [ 1..6] of real):real;
 var
   i,j:integer;
   min1,max1,sum:real;
 begin
   sum:=0;
   for i:=1 to 6 do
   begin
     sum:=sum+m[i];
   end;
   min1:=min1(m);   //调用最大值函数,求数组的最大值
   max1:=max1(m);   //调用最小值函数,求数组的最小值
   sum:=sum-min1-max1; //去掉最大值(即最高分),去掉最小值(即最低分)
   sum:=sum/4;           //求去掉最大值,最小值后的平均分
   operate:=sum;        //用sum变量接收平均值,并返回
 end;
 {
   以上函数是求取结果
 }
 
procedure TForm1.Button2Click(Sender: TObject);
 begin
   edit1.Text:='';
   edit2.Text:='';
   edit3.Text:='';
   edit4.Text:='';
   edit5.Text:='';
   edit6.Text:='';
   edit7.Text:='';
 end;
 {
   清楚所有edit.text组件里面的内容
 }
 
procedure TForm1.Button1Click(Sender: TObject);
 var
   k:real;
 begin
   m[1]:=strtoint(edit1.text);
   m[2]:=strtoint(edit2.text);
   m[3]:=strtoint(edit3.text);
   m[4]:=strtoint(edit4.text);
   m[5]:=strtoint(edit5.text);
   m[6]:=strtoint(edit6.text);
   k:=operate(m); //调用函数,求取平均分,通过k参数返回
   edit7.Text :=inttostr(k);   //将平均分在edit7组件输出
 
end;
 
end.