Вопрос задан 18.08.2023 в 22:44. Предмет Информатика. Спрашивает Левченкова Ксения.

Дан массив интервала [-10;10].Поменяйте местами минимальный положительный элемент и максимальный

отрицательный. В программе паскаль
0 0
Перейти к ответам

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

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

begin
  var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
  var x1:=a.Where(x->x>0).Min;
  var i1:=a.FindIndex(x->x=x1);
  var x2:=a.Where(x->x<0).Max;
  var i2:=a.FindIndex(x->x=x2);
  Swap(a[i1],a[i2]); a.Println
end.

Пример
n= 16
-9 -8 1 -9 2 5 -6 7 5 -9 0 2 -6 -7 3 6
-9 -8 -6 -9 2 5 1 7 5 -9 0 2 -6 -7 3 6
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот пример программы на Pascal, которая меняет местами минимальный положительный элемент и максимальный отрицательный элемент в заданном массиве интервала [-10;10]:

pascal
program SwapMinMax; const N = 21; // Количество элементов в массиве MIN_VALUE = -10; MAX_VALUE = 10; type IntArray = array[1..N] of integer; var arr: IntArray; i, minPos, maxNegPos, temp: integer; procedure InitializeArray(var arr: IntArray); var i: integer; begin for i := 1 to N do arr[i] := Random(MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE; end; begin // Инициализация генератора случайных чисел Randomize; // Заполнение массива случайными числами InitializeArray(arr); // Находим позицию минимального положительного элемента minPos := 0; for i := 1 to N do begin if (arr[i] > 0) and ((minPos = 0) or (arr[i] < arr[minPos])) then minPos := i; end; // Находим позицию максимального отрицательного элемента maxNegPos := 0; for i := 1 to N do begin if (arr[i] < 0) and ((maxNegPos = 0) or (arr[i] > arr[maxNegPos])) then maxNegPos := i; end; // Меняем местами минимальный положительный и максимальный отрицательный элементы if (minPos <> 0) and (maxNegPos <> 0) then begin temp := arr[minPos]; arr[minPos] := arr[maxNegPos]; arr[maxNegPos] := temp; end; // Вывод массива до и после обмена writeln('Массив до обмена:'); for i := 1 to N do write(arr[i], ' '); writeln; writeln('Массив после обмена:'); for i := 1 to N do write(arr[i], ' '); readln; end.

Обратите внимание, что данный код генерирует случайные числа для массива и меняет местами только одну пару элементов: минимальный положительный и максимальный отрицательный.

0 0

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

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

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

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