Вопрос задан 28.07.2023 в 05:04. Предмет Информатика. Спрашивает Рымарчук Михаил.

(Pascal) Дан одномерный массив целых чисел. Заменить элементы стоящие на четных местах с числом

который является средним арифмитическим элементов стоящих на нечетных местах.
0 0
Перейти к ответам

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

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

var

 a: array of real;

 size, i: integer;

 average: real;

begin

 randomize;

 write('Размер массива: ');

 readln(size);

 SetLength(a, size);

 average := 0;

 writeln(' *** Сгенерированный массив *** ');

 for i := 0 to size - 1 do

 begin

   a[i] := random(20);

   write('  ', a[i]);

   if Odd(i) = false then average := average + a[i];

 end;

 average := average / trunc((size + 1) / 2);

 writeln(#13 + 'Среднее арифметическое = ', average);

 writeln(' *** Новый массив ***');

 for i := 0 to size - 1 do

 begin

   if Odd(i) = true then a[i] := average;

   if Frac(a[i]) = 0 then write('  ', a[i])

   else write('  ', a[i]:0:1);  

 end;

end.

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

Для решения этой задачи на языке программирования Pascal, следует выполнить следующие шаги:

  1. Вычислить среднее арифметическое элементов, стоящих на нечетных местах.
  2. Заменить элементы, стоящие на четных местах, вычисленным средним арифметическим.

Вот пример кода, реализующего указанные шаги:

pascal
program ReplaceWithAverage; const N = 10; // Размер массива var arr: array[1..N] of Integer; i: Integer; sumOdd, countOdd: Integer; averageOdd: Real; begin // Заполнение массива целыми числами (для примера) for i := 1 to N do arr[i] := i; // Начальное состояние массива writeln('Исходный массив:'); for i := 1 to N do write(arr[i], ' '); writeln; // Вычисление среднего арифметического элементов на нечетных местах sumOdd := 0; countOdd := 0; for i := 1 to N do begin if i mod 2 = 1 then begin sumOdd := sumOdd + arr[i]; Inc(countOdd); end; end; if countOdd <> 0 then averageOdd := sumOdd / countOdd else averageOdd := 0; // Если нет нечетных элементов, чтобы избежать деления на ноль // Замена элементов на четных местах с вычисленным средним арифметическим for i := 1 to N do begin if i mod 2 = 0 then arr[i] := Round(averageOdd); // Округление до ближайшего целого числа end; // Конечное состояние массива writeln('Массив после замены:'); for i := 1 to N do write(arr[i], ' '); writeln; readln; end.

Обратите внимание, что в приведенном примере массив заполняется числами от 1 до N, но в реальном коде вы можете заполнить массив любыми другими значениями или прочитать их из ввода пользователя. Также обратите внимание на округление среднего значения до ближайшего целого числа (функция Round).

0 0

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

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

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

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