标题:我是一个delphi的初学者,求助!!
只看楼主
锋恒想你
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-24
结帖率:100%
已结贴  问题点数:20 回复次数:7 
我是一个delphi的初学者,求助!!

var
  Form1: TForm1;

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;
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;


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;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  edit1.Text:='';
  edit2.Text:='';
  edit3.Text:='';
  edit4.Text:='';
  edit5.Text:='';
  edit6.Text:='';
  edit7.Text:='';
end;

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);
  edit7:=inttostr(k);

end;

end.

我想实现一个评委打分问题,m这个数组表示6位裁判的打分,需要的操作是:去掉一个最高分,去掉一个最低分,将剩余四个评委的打分求平均值得到该表演者的真实成绩,各位大神帮忙看看,是不是我的数组参数传送出问题了?
搜索更多相关主题的帖子: function 
2013-04-24 09:02
锋恒想你
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-24
得分:0 
帮帮忙啦,各位
2013-04-24 09:32
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
连注释都没有

不过这个题目确实是不难得  不知道你差在哪里

DO IT YOURSELF !
2013-04-24 09:53
锋恒想你
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-24
得分:0 
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.
2013-04-24 13:47
锋恒想你
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-24
得分:0 
这个题目不难的,不知道哪里出问题了,谢谢你们
2013-04-24 13:48
mayanzs
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:5
帖 子:30
专家分:105
注 册:2013-2-3
得分:10 
感觉两个函数中的循环不对,是不是应该

  for i:=1 to 5 do
    for j:=i to 6 do
2013-04-24 21:30
锋恒想你
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-24
得分:0 
回复 2楼 锋恒想你
朋友,帮忙看看吧,调试一下,谢谢你了
2013-04-25 08:32
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
得分:0 
max1, min1 这几个变量从哪里定义来的。怎么跟函数名字一样???

大家都是朋友,有空就来坐坐!
2013-05-03 16:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-405308-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.320711 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved