Edit2.Text:=Edit2.Text+' '+IntToStr(M[I]); {вывести элементы массива}
end; end; 15. Обработка события нажатия кнопки Button2 «Вычислить» начинается с сортировки массива, которую можно записать с помощью оператора цикла for.
Для хранения номера элемента массива, сравниваемого с текущим (имеющим номер I) введем переменную целого типа J. Для запоминания элемента массива при обмене в процессе сортировки введем переменную Тmр.
Линейная сортировка массива выполняется путем перестановки элементов в массиве при соблюдении следующих условий: если в неотсортированной части массива найден элемент с номером J, больший, чем элемент с номером I (для сортировки по невозрастанию), или меньший, чем элемент с номером I (для сортировки по неубыванию). Поэтому можно записать следующий оператор if then else с составным условием:
if (RadioGroup1.ItemIndex=0) and (M[I] or (RadioGroup1.ItemIndex=1) and (M[I]>M[J]) then
Перестановка элементов массива осуществляется с использованием третьей переменной:
Тmр:= М[I]; {запомнить на время значение М[1]}
М[I]:= M[J]; M[J]:= Tmp;
Вывод отсортированного массива в окне Edit3 можно записать оператором:
for I:=0 to N-1 do Edit3.Text:=Edit3.Text+' '+IntToStr(M[I]);
В целом текст процедуры сортировки и вывода отсортированного массива будет выглядеть следующим образом:
procedure TForm1.Button2Click(Sender: TObject); var J, Tmp: integer; begin
Edit3.Text: = ' '; forI:= 0 toN - 2 do {изменять размер неотсортированной части массива}