const n = 10000;//Не изменяемая по ходу программы переменная var a: array[1..n] of integer; b: array[1..10]of integer; c: array[1..10]of integer; i, s, v: integer; begin for i := 1 to 10 do //Заполнение массива с числами от 1 до 10 c[i] := i; for i := 1 to n do //Заполнение массива a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей for i := 1 to n do case a[i] of 1: b[1] := b[1] + 1; 2: b[2] := b[2] + 1; 3: b[3] := b[3] + 1; 4: b[4] := b[4] + 1; 5: b[5] := b[5] + 1; 6: b[6] := b[6] + 1; 7: b[7] := b[7] + 1; 8: b[8] := b[8] + 1; 9: b[9] := b[9] + 1; 10: b[10] := b[10] + 1; End; for i := 1 to 10 do for s := 1 to 9 do if b[s] > b[s + 1] then begin v := b[s]; b[s] := b[s + 1]; b[s + 1] := v; v := c[s]; c[s] := c[s + 1]; c[s + 1] := v; end; writeln(c[10], ' - их ', b[10]); end.
program SortV;
const
n = 100; // количество элементов в массиве
r = 1000; // максимальное значение числа
w = 4; // ширина поля для вывода на экран
var
a: Array [1..n] of Integer;
i, j, jmin, atmp: Integer;
begin
Randomize;
for i := Low (a) to High (a) do begin
a [i] := Random (r);
Write (a [i] :w);
end;
for i := Low (a) to High (a) do begin
jmin := i;
for j := i + 1 to High (a) do begin
if a [j] < a [jmin] then // возрастание и убывание меняется знаком "<" или ">" в этом операторе
jmin := j;
end;
atmp := a [i];
a [i] := a [jmin];
a [jmin] := atmp;
end;
WriteLn; WriteLn;
for i := Low (a) to High (a) do begin
Write (a [i] :w);
end;
ReadLn;
end.
program SortU;
const
n = 100; // количество элементов в массиве
r = 1000; // максимальное значение числа
w = 4; // ширина поля для вывода на экран
var
a: Array [1..n] of Integer;
i, j, jmax, atmp: Integer;
begin
Randomize;
for i := Low (a) to High (a) do begin
a [i] := Random (r);
Write (a [i] :w);
end;
for i := Low (a) to High (a) do begin
jmax := i;
for j := i + 1 to High (a) do begin
if a [j] > a [jmax] then // возрастание и убывание меняется знаком "<" или ">" в этом операторе
jmax := j;
end;
atmp := a [i];
a [i] := a [jmax];
a [jmax] := atmp;
end;
WriteLn; WriteLn;
for i := Low (a) to High (a) do begin
Write (a [i] :w);
end;
ReadLn;
end.
Объяснение:
написал 2 программы, они отличаются знаком ">" или "<" в одном операторе сравнения.
const n = 10000;//Не изменяемая по ходу программы переменная
var a: array[1..n] of integer; b: array[1..10]of integer; c: array[1..10]of integer; i, s, v: integer;
begin for i := 1 to 10 do //Заполнение массива с числами от 1 до 10 c[i] := i; for i := 1 to n do //Заполнение массива a[i] := random(10) + 1; //Делается для того чтобы в массиве не было нулей for i := 1 to n do case a[i] of 1: b[1] := b[1] + 1; 2: b[2] := b[2] + 1; 3: b[3] := b[3] + 1; 4: b[4] := b[4] + 1; 5: b[5] := b[5] + 1; 6: b[6] := b[6] + 1; 7: b[7] := b[7] + 1; 8: b[8] := b[8] + 1; 9: b[9] := b[9] + 1; 10: b[10] := b[10] + 1; End; for i := 1 to 10 do for s := 1 to 9 do if b[s] > b[s + 1] then begin v := b[s]; b[s] := b[s + 1]; b[s + 1] := v; v := c[s]; c[s] := c[s + 1]; c[s + 1] := v; end; writeln(c[10], ' - их ', b[10]); end.