Как сортировать чтобы элементы выводились по возрастанию? (Паскаль)
for i:=25 to 36 do
begin
if i mod 3 = 0 then // каждое третье число
begin
D[i] := 1/ D[i] ; // находит обратные значения
write (D[i]:10:2);
end;
end;
если что условия задачи: Упорядочить каждые третьи элементы последней трети массива по возрастанию обратных значений
По дате
По Рейтингу
Ни к чему для этого находить обратные значения. Достаточно просто упорядочить по уменьшению значений. А упорядочение - смотри сортировку пузырьком.
12345678910111213141516171819202122232425262728293031
type
TFloatArray = array of real;
var
D: TFloatArray;
i, j, len, ind, cnt, left, right: integer;
tmp: real;
begin
Randomize;
len := (Random(8) + 3) * 9;
ind := len div 3 * 2 + 2;
cnt := len div 9;
SetLength(D, len);
for i := 0 to cnt - 1 do D[i * 3 + ind] := Random * 100;
for i := 1 to cnt - 1 do
for j := i - 1 downto 0 do
begin
left := j * 3 + ind;
right := (j + 1) * 3 + ind;
if D[left] < D[right] then // 1 / D[left] > 1 / D[right]
begin
tmp := D[right];
D[right] := D[left];
D[left] := tmp;
end else break;
end;
for i := 0 to cnt - 1 do writeln(D[i * 3 + ind]:5:2);
end.
Больше по теме