Вопрос задан 17.07.2023 в 20:16. Предмет Информатика. Спрашивает Кубик Дима.

Заполнить массив из 10 элементов случайными числами в интервале[-10.. 10] и отсортировать по

убыванию. Язык Паскаль
0 0
Перейти к ответам

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

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

Ответ:uses crt;

const SIZE=10;

type MyMassive:ARRAY[1..SIZE] OF INTEGER;

var MyMass:MyMassive;

i:integer;

procedure quickSort(var numbers:MyMassive; left,right:integer);

var

 pivot:integer; // разрешающий элемент

begin

  

  l_hold := left; //левая граница

  r_hold := right; // правая граница

  pivot := numbers[left];

  while (left < right) do // пока границы не сомкнутся

  begin

    while ((numbers[right] <= pivot) and (left < right)) do

      dec(right); // сдвигаем правую границу пока элемент [right] больше [pivot]

    if NOT (left = right) then // если границы не сомкнулись

    begin

      numbers[left] := numbers[right]; // перемещаем элемент [right] на место разрешающего

      Inc(left); // сдвигаем левую границу вправо

    end;

    while ((numbers[left] >= pivot) AND (left < right)) do

      Inc(left); // сдвигаем левую границу пока элемент [left] меньше [pivot]

    if NOT (left = right) then// если границы не сомкнулись

    begin

      numbers[right] := numbers[left]; // перемещаем элемент [left] на место [right]

      Dec(right); // сдвигаем правую границу вправо

    end;

  end;

  numbers[left] := pivot; // ставим разрешающий элемент на место

  pivot := left;

  left := l_hold;

  right := r_hold;

  if (left < pivot) then// Рекурсивно вызываем сортировку для левой и правой части массива

    quickSort(numbers, left, pivot - 1);

  if (right > pivot) then

    quickSort(numbers, pivot + 1, right);

End;

begin

clrscr;

writeln('первоначальное заполнение массива:');

for i:=1 To SIZE do

begin

MyMass[i]:=Trunc(random(20))-10;

write(' ',MyMass[i]);

end;

writeln;

quickSort(MyMass, 1, SIZE);

writeln('результат:');

for i = 1 to SIZE do write(' ',MyMass[i]);

writeln;

  readkey();

end.

Объяснение:


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

Для заполнения массива из 10 элементов случайными числами в интервале [-10..10] и последующей сортировки его по убыванию в языке Паскаль, вам потребуется использовать генератор случайных чисел и алгоритм сортировки (например, сортировку пузырьком или сортировку вставками). Вот пример кода, который выполняет задачу:

pascal
program RandomSortArray; const Size = 10; MinValue = -10; MaxValue = 10; type IntArray = array[1..Size] of Integer; procedure FillArrayRandomly(var arr: IntArray); var i: Integer; begin Randomize; for i := 1 to Size do arr[i] := Random(MaxValue - MinValue + 1) + MinValue; end; procedure BubbleSort(var arr: IntArray); var i, j, temp: Integer; begin for i := 1 to Size - 1 do begin for j := 1 to Size - i do begin if arr[j] < arr[j + 1] then begin temp := arr[j]; arr[j] := arr[j + 1]; arr[j + 1] := temp; end; end; end; end; procedure PrintArray(const arr: IntArray); var i: Integer; begin for i := 1 to Size do Write(arr[i], ' '); Writeln; end; var myArray: IntArray; begin FillArrayRandomly(myArray); Writeln('Массив до сортировки:'); PrintArray(myArray); BubbleSort(myArray); Writeln('Массив после сортировки по убыванию:'); PrintArray(myArray); end.

Этот код создает массив из 10 элементов, заполняет его случайными числами из интервала [-10..10], затем выполняет сортировку пузырьком по убыванию и выводит результат до и после сортировки.

0 0

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

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

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

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