
Вопрос задан 08.09.2023 в 02:24.
Предмет Информатика.
Спрашивает Фомина Анна.
Написать программу в Паскале. Ввести матрицу. Найти сумму s1 положительных элементов и сумму s2
отрицательных элементов над и под главной диагональю. Если s1>s2, то 1-ую и последнюю строки заменить на s1, иначе 1-ый и последний столбец на s2. Вывести матрицу на печать.

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

Отвечает Коновальчук Юлія.
Const
n = 3;
k = 3;
var
i,j,s1,s2:integer;
a:array[1..n,1..k] of integer;
begin
s1:=0;
s2:=0;
for i:=1 to n do
for j:=1 to k do
begin
Writeln('Введите a[',i,',',j,']:');
readln(a[i,j]);
if (a[i,j]>0) and (i<>j) then s1:=s1+a[i,j];
if (a[i,j]<0) and (i<>j) then s2:=s2+a[i,j];
end;
if s1>s2 then
for j:=1 to k do
begin
a[1,j]:=s1;
a[n,j]:=s1;
end;
if s2>=s1 then
for i:=1 to n do
begin
a[i,1]:=s2;
a[i,k]:=s2;
end;
writeln('Полученный массив:');
for i:=1 to n do
begin
for j:=1 to k do
write('a[':4,i,',',j,']=',a[i,j]);
writeln;
end;
end.
n = 3;
k = 3;
var
i,j,s1,s2:integer;
a:array[1..n,1..k] of integer;
begin
s1:=0;
s2:=0;
for i:=1 to n do
for j:=1 to k do
begin
Writeln('Введите a[',i,',',j,']:');
readln(a[i,j]);
if (a[i,j]>0) and (i<>j) then s1:=s1+a[i,j];
if (a[i,j]<0) and (i<>j) then s2:=s2+a[i,j];
end;
if s1>s2 then
for j:=1 to k do
begin
a[1,j]:=s1;
a[n,j]:=s1;
end;
if s2>=s1 then
for i:=1 to n do
begin
a[i,1]:=s2;
a[i,k]:=s2;
end;
writeln('Полученный массив:');
for i:=1 to n do
begin
for j:=1 to k do
write('a[':4,i,',',j,']=',a[i,j]);
writeln;
end;
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Вот программа на Паскале, которая выполняет описанные вами операции:
pascalprogram MatrixOperations; const MaxSize = 100; var matrix: array[1..MaxSize, 1..MaxSize] of integer; numRows, numCols, i, j, s1, s2: integer; begin write('Введите количество строк матрицы: '); readln(numRows); write('Введите количество столбцов матрицы: '); readln(numCols); if (numRows <= 0) or (numCols <= 0) or (numRows > MaxSize) or (numCols > MaxSize) then begin writeln('Недопустимые размеры матрицы.'); exit; end; writeln('Введите элементы матрицы:'); for i := 1 to numRows do for j := 1 to numCols do read(matrix[i, j]); s1 := 0; s2 := 0; for i := 1 to numRows do for j := 1 to numCols do begin if (i < j) and (matrix[i, j] > 0) then s1 := s1 + matrix[i, j] else if (i > j) and (matrix[i, j] < 0) then s2 := s2 + matrix[i, j]; end; writeln('Сумма положительных элементов над и под главной диагональю (s1): ', s1); writeln('Сумма отрицательных элементов над и под главной диагональю (s2): ', s2); if s1 > s2 then begin for j := 1 to numCols do begin matrix[1, j] := s1; matrix[numRows, j] := s1; end; end else begin for i := 1 to numRows do begin matrix[i, 1] := s2; matrix[i, numCols] := s2; end; end; writeln('Матрица после замены:'); for i := 1 to numRows do begin for j := 1 to numCols do write(matrix[i, j]:5); writeln; end; end.
Эта программа сначала запрашивает размеры матрицы и элементы матрицы от пользователя. Затем она вычисляет сумму положительных (s1) и отрицательных (s2) элементов над и под главной диагональю. В зависимости от того, какая сумма больше, она заменяет 1-ую и последнюю строки матрицы на s1 или 1-ый и последний столбец на s2. Наконец, программа выводит измененную матрицу на печать.


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