В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
niggaeasyreal
niggaeasyreal
08.05.2023 03:12 •  Информатика

Написать программу организующую сортировку выбора. процедуру использовать только для сортировки!

Ответ:
МегаМозги2005
МегаМозги2005
03.10.2020 12:32
Const n = 10;
type arr=array[1..n] of byte;
procedure sort(var a:arr);
var i, j, max, imax:integer;
begin
j := n;
while j > 1 do begin
    max := a[1];
    imax := 1;
    for i := 2 to j do
        if a[i] > max then begin
            max := a[i];
            imax := i
        end;
    a[imax] := a[j];
    a[j] := max;
    j := j - 1
 end;
end;
var
a: arr; i: byte;
 
begin
Randomize;
writeln('Исходный массив:');
for i := 1 to n do 
  begin
  a[i] := random(256);
  write(a[i]:4)
  end;
writeln;
sort(a);
writeln('Отсортированный массив:');
for i := 1 to n do write(a[i]:4);
writeln;
end.

Пример:
Исходный массив:
 119 239 156 143  34 184  93  19 218 120
Отсортированный массив:
  19  34  93 119 120 143 156 184 218 239
0,0(0 оценок)
Ответ:
layro2
layro2
03.10.2020 12:32
Procedure Sort(arr : array of integer);
var
  i, j, temp, len, min : integer;
begin
  len := length(arr);

  for j := 0 to len - 2 do
  begin
    min := j;
 
    for i := j + 1 to len - 1 do
      if arr[i] < arr[min] then
        min := i;

    if min > j then
    begin
      temp := arr[j];
      arr[j] := arr[min];
      arr[min] := temp;
    end;
  end;
end;

const
  N = 10; // Количество элементов массива
  Max = 100; // Максимальное число в массиве
var
  arr : array of integer;
  i : integer;
begin
  //Устанавливаем длину массива
  SetLength(arr, N);

  for i := 0 to N - 1 do
    arr[i] := random(Max);
 
  //Выводим исходный массив
  for i := 0 to N - 1 do
    write(arr[i], ' ');
  writeln();

  Sort(arr);

  //Выводим отсортированный массива
  for i := 0 to N - 1 do
    write(arr[i], ' ');
  writeln();
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?