
В однородном массиве , состоящем из n вещественных элементов вычислить : 1. минимальный по модулю
элемент массива; 2. сумму модулей элементов массива , расположенных после первого элемента , равного нулю . Преобразовать массив таким образом , чтобы в первой его половине распологались элементы , стоящие в чётных позициях , а во второй половине - элементы , стоящие в нечётных позициях . Нужно сделать на языке Паскаль , срочно !!!

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

var
arr: array [0..9] of real;
newArr: array [0..9] of real;
n : integer;
i: integer;
j: integer;
k: integer;
minAbs: real;
sumAbs: real;
begin
n := 10;
for i:=0 to n-1 do
arr[i] := i+1;
writeln('Исходный массив: ');
for i:=0 to n-1 do
write(arr[i], ' ');
minAbs := arr[0];
j := 0;
k := n div 2;
for i:=0 to n-1 do
begin
if (i > 0) and (Abs(arr[i]) < minAbs) then
minAbs := arr[i];
sumAbs := sumAbs + Abs(arr[i]);
if i mod 2 = 0 then
begin
newArr[j] := arr[i];
j := j + 1;
end
else
begin
newArr[k] := arr[i];
k := k + 1;
end;
end;
writeln();
writeln();
writeln('Минимальный по модулю: ', minAbs);
writeln('Сумма модулей: ', sumAbs);
writeln('Преобразованный массив: ');
for i:=0 to n-1 do
write(newArr[i], ' ');
end.



Для решения задачи на языке Паскаль, вам понадобится объявить массив, заполнить его значениями, а затем выполнить необходимые вычисления и преобразования. Вот пример кода для решения задачи:
pascalprogram ArrayManipulation; const MaxSize = 100; type RealArray = array[1..MaxSize] of Real; var arr: RealArray; n, i, firstZeroIndex: Integer; minAbsValue, sumAfterZero: Real; // Функция для вычисления модуля числа function AbsValue(x: Real): Real; begin if x >= 0 then AbsValue := x else AbsValue := -x; end; begin // Ввод размера массива Write('Введите размер массива (не более ', MaxSize, '): '); ReadLn(n); // Ввод элементов массива WriteLn('Введите ', n, ' вещественных чисел:'); for i := 1 to n do ReadLn(arr[i]); // Инициализация переменных для поиска минимального по модулю элемента и суммы после первого нулевого элемента minAbsValue := AbsValue(arr[1]); sumAfterZero := 0; firstZeroIndex := 0; // Вычисление минимального по модулю элемента и суммы после первого нулевого элемента for i := 1 to n do begin if AbsValue(arr[i]) < minAbsValue then minAbsValue := AbsValue(arr[i]); if (firstZeroIndex > 0) and (i > firstZeroIndex) then sumAfterZero := sumAfterZero + AbsValue(arr[i]); if (arr[i] = 0) and (firstZeroIndex = 0) then firstZeroIndex := i; end; // Вывод результатов вычислений WriteLn('Минимальный по модулю элемент массива: ', minAbsValue); WriteLn('Сумма модулей элементов массива, расположенных после первого нулевого элемента: ', sumAfterZero); // Преобразование массива for i := 1 to n div 2 do begin // Обмен элементов в чётных позициях с элементами в нечётных позициях arr[i] := arr[i * 2]; arr[n div 2 + i] := arr[i * 2 - 1]; end; // Вывод преобразованного массива WriteLn('Преобразованный массив:'); for i := 1 to n do WriteLn(arr[i]); end.
Обратите внимание, что данный код предполагает, что пользователь введет корректные значения, и не производит проверок на ошибки ввода для простоты и наглядности примера. В реальных программах рекомендуется добавить проверки на корректность ввода и дополнительную обработку возможных ошибок.


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







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