| Код | const MAX = 5;
type TArray = array [1..MAX] of Double; var a : TArray;
procedure PrintArray(a : TArray; Strings : TStrings); var i : integer; begin if not Assigned(Strings) then Exit; Strings.Clear; for i := 1 to MAX do Strings.Add(FloatToStr(a[i])); end;
procedure MaxSort(var iArray : TArray); var i, j, pmax : integer; tmp : double; begin for i := 1 to MAX do begin pmax := i; for j := i+1 to MAX do if iarray[j] > iarray[pmax] then pmax := j; tmp := iarray[i]; iarray[i] := iarray[pmax]; iarray[pmax] := tmp; end; end;
function MaxI(a : TArray) : double; var i : integer; begin result := a[1]; for i := 2 to MAX do if a[i] > result then result := a[i]; end;
function MinI(a : TArray) : double; var i : integer; begin result := a[1]; for i := 2 to MAX do if a[i] < result then result := a[i]; end;
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin for i := 1 to MAX do a[i] := StrToFloat(IntToStr(Random(1000)) + ',' + IntToStr((Random(1000))));//к примеру:)
PrintArray(a, ListBox1.Items); end;
procedure TForm1.Button2Click(Sender: TObject); begin MaxSort(a); PrintArray(a, ListBox2.Items); ShowMessage('Максимальный элемент: ' + FloatToStr(MaxI(a))); ShowMessage('Минимальный элемент: ' + FloatToStr(MinI(a))); end;
end.
|
Нужно отсортированный массив, хранящийся в ListBox2 сохранить как двоичный файл с использованием стандартного диалога(SaveDialog), затем открыть с использованием(OpenDialog) и вывести в поле memo в таком же виде как он выглядет в ListBox2. Потоки и блоки использовать нельзя. Алгоритм должен быть как можно более простой, но без использования заранее заготовленных программистами дельфи фишек. |