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

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

Показать ответ
Ответ:
superschool1
superschool1
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 оценок)
Ответ:
ЕlyaBr
ЕlyaBr
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
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота