| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1004 人关注过本帖
标题:我是一个delphi的初学者,求助!!
取消只看楼主 加入收藏
锋恒想你
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
我是一个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
锋恒想你
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
锋恒想你
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-4-24
收藏
得分:0 
回复 2楼 锋恒想你
朋友,帮忙看看吧,调试一下,谢谢你了
2013-04-25 08:32
快速回复:我是一个delphi的初学者,求助!!
数据加载中...
 
   



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

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