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


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

Ответ:
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.



Конечно! Вот пример программы на языке Паскаль для сортировки массива выбором (Selection Sort) по возрастанию и убыванию:
pascalprogram 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.
Программа позволяет пользователю ввести размер массива и его элементы, а затем сортирует его сначала по возрастанию, а затем по убыванию, используя алгоритм сортировки выбором.


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







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