Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент - Free Pascal (178)
Формулировка задачи:
Не могли бы вы помочь с этим делом? Завтра сдавать, а ничего не идет
1. Для заданной матрицы размером 8x8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом.
2. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Оформить решения задач с помощью процедур и/или функций
(При решении задач не использовать глобальные переменные)
Решение задачи: «Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент»
textual
Листинг программы
const n=8;
type TMatrix=array [1..n,1..n] of Integer;
procedure ShowEqRC(const a: TMatrix);
var i, k: Integer;
begin
Write('Совпадающие строки/столбцы:');
for k:=1 to n do begin
i:=n; while (i>0) and (a[k,i]=a[i,k]) do Dec(i);
if i=0 then Write(' ',k);
end; WriteLn;
end;
procedure SumRN(const a: TMatrix);
var i, j, m, s: Integer;
begin
WriteLn('Суммы строк с отрицительным элементом:');
for i:=1 to n do begin
m:=0; s:=0;
for j:=1 to n do begin
if m>a[i,j] then m:=a[i,j];
s:=s+a[i,j];
end;
if m<0 then WriteLn(i,': ',s);
end;
end;
var
i, j: Integer;
a: TMatrix;
begin
WriteLn('Введите матрицу ',n,'x',n,':');
for i:=1 to n do for j:=1 to n do Read(a[i,j]);
WriteLn('A =');
for i:=1 to n do begin
for j:=1 to n do Write(a[i,j]:6); WriteLn;
end;
ShowEqRC(a);
SumRN(a);
end.
Объяснение кода листинга программы
- Введенная матрица имеет размерность n x n, где n = 8.
- Матрица представлена в виде двумерного массива a размером [1..n,1..n] типа Integer.
- Ввод матрицы происходит в цикле, где пользователю предлагается ввести элемент за раз.
- Цикл вывода матрицы выводит все элементы матрицы a, расположенные в виде таблицы, размерность которой определяется n.
- Вывод совпадающих строк и столбцов матрицы происходит в цикле, который проходит по каждому столбцу матрицы k. Для каждого столбца выполняется поиск строки, которая совпадает с текущим столбцом, начиная с первой строки. Если такая строка найдена, то ее номер выводится на экран.
- Сумма элементов строки, содержащей хотя бы один отрицательный элемент, вычисляется в цикле, который проходит по каждой строке матрицы i. Для каждой строки выполняется поиск отрицательного элемента в этой строке, начиная с первого элемента. Если такой элемент найден, то сумма элементов этой строки вычисляется и выводится на экран.