• 一組數字中求最大值與最小值


    亂碼原因:本人使用的是繁體操作系統

    源代碼:

    code :

    unit Unit1;

    interface

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

    type
    TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Edit3: TEdit;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    function getminandmax(str1:string):string;
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    function TForm1.getminandmax(str1: string): string;
    var str1array:array of Integer;
    str2array:array of Integer;
    stringlist1:TStringList ;
    i,small1,biger1,mid1:Integer;
    strcount_s,strcount_d:Integer;
    begin
    try
    try
    stringlist1:=Tstringlist.Create;
    stringlist1.Delimiter :=',';
    stringlist1.DelimitedText:=str1 ;
    if stringlist1.Count<3 then
    begin
    ShowMessage('ぶ���计���種��ㄓ暗ゑ耕���');
    EXIT;
    end;
    Label3.Caption :='��Τ:'+inttostr(stringlist1.Count)+' 舱计�' ;
    strcount_s:= (stringlist1.Count-1) div 2; //�计�� い丁�ê�计���夹
    strcount_d:= stringlist1.Count div 2; //案计��
    if (stringlist1.Count mod 2)=1 then
    begin
    mid1:= StrToInt(stringlist1.Strings[strcount_s]);
    try
    SetLength (str1array,strcount_s) ; //玡���计�
    SetLength (str2array,strcount_s) ; //����计�
    for i:=0 to strcount_s-1 do
    begin
    if strtoint(stringlist1.Strings[i]) < strtoint(stringlist1.Strings[strcount_s+1+i]) then
    begin
    str1array[i] := StrToInt(stringlist1.Strings[i]);
    str2array[i] := StrToInt(stringlist1.Strings[strcount_s+1+i]);
    end
    else
    begin
    str1array[i] := StrToInt(stringlist1.Strings[strcount_s+1+i]);
    str2array[i] := StrToInt(stringlist1.Strings[i]);
    end;
    end;

    small1:=str1array[0];
    biger1:=str2array[0];
    for i:=0 to strcount_s-2 do
    begin
    //small
    if str1array[i]<str1array[i+1] then
    begin
    if small1<str1array[i] then
    small1:=small1
    else
    small1:=str1array[i];
    end
    else
    begin
    if small1<str1array[i+1] then
    small1:=small1
    else
    small1:=str1array[i+1];
    end;

    //lager
    if str2array[i]<str2array[i+1] then
    begin
    if biger1<str2array[i+1] then
    biger1:=str2array[i+1]
    else
    biger1:=biger1 ;
    end
    else
    begin
    if biger1<str2array[i] then
    biger1:=str2array[i]
    else
    biger1:=biger1;
    end;
    end;

    if (small1>mid1) then
    Result :=IntToStr(mid1)+','+inttostr(biger1)
    else if mid1>biger1 then
    Result :=IntToStr(small1)+','+inttostr(mid1)
    else if (small1<mid1) and (mid1<biger1) then
    Result :=IntToStr(small1)+','+inttostr(biger1) ;

    finally
    SetLength (str1array,0) ;
    SetLength (str2array,0) ;
    end;
    end
    else
    begin
    try
    SetLength (str1array,strcount_d) ;
    SetLength (str2array,strcount_d) ;

    for i:=0 to strcount_d-1 do
    begin
    if strtoint(stringlist1.Strings[i]) < strtoint(stringlist1.Strings[strcount_d+i]) then
    begin
    str1array[i] := StrToInt(stringlist1.Strings[i]);
    str2array[i] := StrToInt(stringlist1.Strings[strcount_d+i]);
    end
    else
    begin
    str1array[i] := StrToInt(stringlist1.Strings[strcount_d+i]);
    str2array[i] := StrToInt(stringlist1.Strings[i]);
    end;
    end;

    small1:=str1array[0];
    biger1:=str2array[0];
    for i:=0 to strcount_d-2 do
    begin
    //small
    if str1array[i]<str1array[i+1] then
    begin
    if small1<str1array[i] then
    small1:=small1
    else
    small1:=str1array[i];
    end
    else
    begin
    if small1<str1array[i+1] then
    small1:=small1
    else
    small1:=str1array[i+1];
    end;

    //lager
    if str2array[i]<str2array[i+1] then
    begin
    if biger1<str2array[i+1] then
    biger1:=str2array[i+1]
    else
    biger1:=biger1 ;
    end
    else
    begin
    if biger1<str2array[i] then
    biger1:=str2array[i]
    else
    biger1:=biger1;
    end;
    end;
    Result :=IntToStr(small1)+','+inttostr(biger1) ;
    finally
    SetLength (str1array,0) ;
    SetLength (str2array,0) ;
    end;
    end;
    except
    ShowMessage('叫�砏絛块�计��だ澄才ノ璣ゅ�篈��硆腹'',''');
    end;
    finally
    FreeAndNil(stringlist1);
    end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    var str11:string;
    begin
    str11:=getminandmax(TrimLeft(TrimRight(Edit1.Text ))) ;
    if Pos(',',str11)>0 then
    begin
    Edit2.Text :=Copy(str11,1,Pos(',',str11)-1);
    Edit3.Text :=Copy(str11,Pos(',',str11)+1,20);
    end;
    end;

    end.

    FORM:

    object Form1: TForm1
    Left = 386
    Top = 281
    Width = 471
    Height = 171
    Caption = '�舱计い�程��㎝程��'
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    OldCreateOrder = False
    PixelsPerInch = 96
    TextHeight = 13
    object Label1: TLabel
    Left = 56
    Top = 63
    Width = 25
    Height = 17
    AutoSize = False
    Caption = 'MIN'
    end
    object Label2: TLabel
    Left = 230
    Top = 61
    Width = 33
    Height = 17
    AutoSize = False
    Caption = 'MAX'
    end
    object Label3: TLabel
    Left = 48
    Top = 32
    Width = 345
    Height = 17
    Alignment = taCenter
    AutoSize = False
    end
    object Edit1: TEdit
    Left = 2
    Top = 2
    Width = 452
    Height = 21
    ImeName = 'いゅ(?蔨) - 穓���?�猭'
    TabOrder = 0
    Text = '88,14,25,1,2,8,7,889,44,1222,444,1111,10,21212'
    end
    object Button1: TButton
    Left = 192
    Top = 96
    Width = 75
    Height = 25
    Caption = '絋﹚'
    TabOrder = 1
    OnClick = Button1Click
    end
    object Edit2: TEdit
    Left = 96
    Top = 59
    Width = 121
    Height = 21
    ImeName = 'いゅ(?蔨) - 穓���?�猭'
    TabOrder = 2
    end
    object Edit3: TEdit
    Left = 264
    Top = 59
    Width = 121
    Height = 21
    ImeName = 'いゅ(?蔨) - 穓���?�猭'
    TabOrder = 3
    end
    end

  • 相关阅读:
    APP上线碰到的问题:Non-public API usage
    点语法
    strlen、strcpy、strcat的实现
    2. I/O模型基本说明
    1. 同步、异步、阻塞、非阻塞
    8. 负载均衡请求转发实现
    7.负载均衡算法
    6. Nginx配置示例-高可用集群
    5. Nginx配置示例-动静分离
    4. Nginx配置示例-负载均衡
  • 原文地址:https://www.cnblogs.com/dmqhjp/p/7080034.html
Copyright © 2020-2023  润新知