• Предмет: Информатика
  • Автор: MetalCoCoCore
  • Вопрос задан 1 год назад

Напишите программу сортировки массива выбором по возрастанию и убыванию в Паскале.
Срочно, нужно сегодня! Даю 40 баллов за нормальную, работающую программу

Ответы

Ответ дал: fedrfedr
1

Ответ:

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 программы, они отличаются знаком ">" или "<" в одном операторе сравнения.

Вас заинтересует