Вопрос задан 17.07.2023 в 08:14. Предмет Информатика. Спрашивает Котлярова Анна.

Напишите программу сортировки массива выбором по возрастанию и убыванию в Паскале. Срочно!

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Тикото Владислава.

Ответ:

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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно! Вот пример программы на языке Паскаль для сортировки массива выбором (Selection Sort) по возрастанию и убыванию:

pascal
program SelectionSort; const MaxArraySize = 100; type IntArray = array[1..MaxArraySize] of Integer; procedure Swap(var a, b: Integer); var temp: Integer; begin temp := a; a := b; b := temp; end; procedure SelectionSortAscending(var arr: IntArray; n: Integer); var i, j, minIndex: Integer; begin for i := 1 to n - 1 do begin minIndex := i; for j := i + 1 to n do begin if arr[j] < arr[minIndex] then minIndex := j; end; if minIndex <> i then Swap(arr[i], arr[minIndex]); end; end; procedure SelectionSortDescending(var arr: IntArray; n: Integer); var i, j, maxIndex: Integer; begin for i := 1 to n - 1 do begin maxIndex := i; for j := i + 1 to n do begin if arr[j] > arr[maxIndex] then maxIndex := j; end; if maxIndex <> i then Swap(arr[i], arr[maxIndex]); end; end; procedure PrintArray(arr: IntArray; n: Integer); var i: Integer; begin for i := 1 to n do Write(arr[i], ' '); Writeln; end; var arr: IntArray; n, i: Integer; begin Write('Введите количество элементов в массиве (не более ', MaxArraySize, '): '); ReadLn(n); if (n <= 0) or (n > MaxArraySize) then begin Writeln('Некорректный размер массива.'); Exit; end; WriteLn('Введите элементы массива:'); for i := 1 to n do Read(arr[i]); Writeln('Массив до сортировки:'); PrintArray(arr, n); SelectionSortAscending(arr, n); Writeln('Массив после сортировки по возрастанию:'); PrintArray(arr, n); SelectionSortDescending(arr, n); Writeln('Массив после сортировки по убыванию:'); PrintArray(arr, n); end.

Программа позволяет пользователю ввести размер массива и его элементы, а затем сортирует его сначала по возрастанию, а затем по убыванию, используя алгоритм сортировки выбором.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос