Вопрос задан 18.08.2023 в 22:44.
Предмет Информатика.
Спрашивает Левченкова Ксения.
Дан массив интервала [-10;10].Поменяйте местами минимальный положительный элемент и максимальный
отрицательный. В программе паскальОтветы на вопрос
Отвечает Цитрикова Ксюша.
// 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
// Внимание! Если программа не работает, обновите версию!
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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, вот пример программы на Pascal, которая меняет местами минимальный положительный элемент и максимальный отрицательный элемент в заданном массиве интервала [-10;10]:
pascalprogram 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.
Обратите внимание, что данный код генерирует случайные числа для массива и меняет местами только одну пару элементов: минимальный положительный и максимальный отрицательный.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
