掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マイナスを含む小数のソート (ID:28062)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TList などのリストクラスにはクイックソートがついていますね。 変数を Double の配列にとって、TList で昇順に並べて表示するには、以下のようにします。 var num: array of double; procedure TForm1.FormCreate(Sender: TObject); begin SetLength(num, 6); num[0] := 1.1; num[1] := -11.1; num[2] := -3.3; num[3] := 5.5; num[4] := -6.6; num[5] := 9.9; end; Memo1 には -11.1 -6.6 -3.3 1.1 5.5 9.9 と表示されます。 function Shoujun(Item1, Item2: Pointer): Integer; var d: double; begin d := PDouble(Item1)^ - PDouble(Item2)^; if d > 0 then result := 1 else if d < 0 then result := -1 else result := 0; end; procedure TForm1.Button1Click(Sender: TObject); var ll: TList; i, v: integer; begin ll := Tlist.Create; try for i := 0 to Length(num)-1 do ll.Add(@num[i]); ll.Sort(@Shoujun); for i := 0 to Length(num)-1 do Memo1.Lines.Add(FloatToStr(PDouble(ll[i])^)); finally ll.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.