首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

- 给定几个值,怎么用一个函数返回最小值?

2013-04-21 
---- 给定几个值,如何用一个函数返回最小值??给定几个不定数,如何用一个函数返回其中的最小值,函数应如何

---- 给定几个值,如何用一个函数返回最小值??
给定几个不定数,如何用一个函数返回其中的最小值,函数应如何写,如何来调用?
愿高手不吝赐教!

举例: 给定5.1,1,3,10       Min(5.1,1,3,10) 返回 1
      给定5.1,1,3,10,0.8   Min(5.1,1,3,10) 返回 0.8
[解决办法]


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    function Min(DataAry: array of Real): Real;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.Min(DataAry: array of Real): Real;
var
  i: integer;
begin
  if Length(DataAry) = 0 then
  begin
    Result := 0;
    exit;
  end;

  Result := DataAry[0];
  for i := 1 to Length(DataAry) - 1 do
    if DataAry[i] < Result then
      Result := DataAry[i];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyAry: array[0..4] of Real;
begin
  MyAry[0] := 5.1;
  MyAry[1] := 1;
  MyAry[2] := 3;
  MyAry[3] := 10;
  MyAry[4] := 0.8;
  ShowMessage('Min Is: ' + FloatToStr(Min(MyAry)));
end;

end.

[解决办法]
用Math.MinValue


uses Math;

procedure TForm1.btn1Click(Sender: TObject);
var
  val: Double;
  arrVal: array of Double;
  vals: TStringList;
  source: PChar;
  i: Integer;
begin
  source := '5.1,1,3,10,0.8';
  vals := TStringList.Create;
  ExtractStrings([','], [], source, vals);
  SetLength(arrVal, vals.Count);
  for i := 0 to vals.Count - 1 do
    arrVal[i] := StrToFloat(vals[i]);
  val := MinValue(arrVal);
  ShowMessage(FloatToStr(val));
end;

热点排行