Вопрос задан 30.07.2023 в 08:42. Предмет Информатика. Спрашивает Глебова Кристина.

Дана квадратная целочисленная матрица порядка n. Сформировать результирующий одномерный массив,

элементами которого являются построчные средние арифметические значения нечетных элементов исходной матрицы. Задача на Pascal.
0 0
Перейти к ответам

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

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

begin
  var n:=ReadInteger('Количество строк/столбцов в матрице:');
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(n,n,-99,99);
  a.Println(4); Writeln(n*4*'-');
  var b:=a.Rows.Select(row->row.Where(t->t.IsOdd).DefaultIfEmpty.Average)
    .ToArray;
  b.Println;
end.

Пример
Количество строк/столбцов в матрице: 5
*** Исходная матрица ***
  40 -38  16 -70  26
  87   7 -31  99  34
 -34 -47 -33  32  56
  66  71  41   7  80
  55  42 -22   7  86
--------------------
0 40.5 -40 39.6666666666667 31
0 0
Отвечает Цховребов Роман.
Program sector;
const
n=10;
var
a:array [1..n,1..n] of integer;
b:array [1..n] of real;
i,j,z: byte;
begin
randomize;
for i:=1 to n do begin
    for j:=1 to n do begin
        a[i,j]:=random (40);
        a[i,j]:=a[i,j]-20;
        write(a[i,j]:4);
    end;
    writeln;
    end;
for i:=1 to n do begin
    z:=0;
    for j:=1 to i do
    if (a[i,j] mod 2 <> 0) then z:=z+a[i,j];
    b[i]:=z/2;
    writeln(i,' ',b[i]);
end;
readln;
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

pascal
program CalculateRowAverages; const MAX_SIZE = 100; type Matrix = array[1..MAX_SIZE, 1..MAX_SIZE] of Integer; var A: Matrix; ResultArray: array[1..MAX_SIZE] of Real; n, i, j, count: Integer; procedure CalculateAverages(const A: Matrix; n: Integer; var ResultArray: array of Real); var i, j, count: Integer; begin for i := 1 to n do begin count := 0; ResultArray[i] := 0.0; for j := 1 to n do begin if A[i, j] mod 2 <> 0 then begin ResultArray[i] := ResultArray[i] + A[i, j]; Inc(count); end; end; if count > 0 then ResultArray[i] := ResultArray[i] / count; end; end; procedure ReadMatrix(var A: Matrix; n: Integer); var i, j: Integer; begin writeln('Введите элементы матрицы:'); for i := 1 to n do begin for j := 1 to n do readln(A[i, j]); end; end; procedure PrintResultArray(const ResultArray: array of Real; n: Integer); var i: Integer; begin writeln('Результат:'); for i := 1 to n do writeln(ResultArray[i]:0:2); end; begin writeln('Введите порядок матрицы n:'); readln(n); if (n <= 0) or (n > MAX_SIZE) then begin writeln('Некорректный порядок матрицы.'); Exit; end; ReadMatrix(A, n); CalculateAverages(A, n, ResultArray); PrintResultArray(ResultArray, n); end.

Программа позволит вам ввести порядок квадратной матрицы, а затем вводить ее элементы. После этого она вычислит среднее арифметическое нечетных элементов в каждой строке исходной матрицы и выведет результат в виде одномерного массива.

Обратите внимание, что в приведенном коде предполагается, что матрица не превышает размерность MAX_SIZE. Вы можете изменить значение константы MAX_SIZE в зависимости от ваших потребностей.

0 0

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

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

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

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