Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов - Turbo Pascal
Формулировка задачи:
Дана целочисленная квадратная матрица. Определить:
1. Сумму элементов в тех столбцах, которые не содержат отрицательных эле¬ментов (оформить в виде функции).
2. Минимум среди сумм модулей элементов диагоналей, параллельных побоч¬ной диагонали матрицы (оформить в виде процедуры).
В паскаль
Помогите пожалуйста
Решение задачи: «Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов»
textual
Листинг программы
const n = 10;
type int = 1..n;
matrix = array[int, int] of integer;
var i, j, k, sizemas : byte;
mas : matrix;
Function Sum(massiv:matrix; cl:byte) : integer;
var s : integer;
Begin
s:= 0;
for i:= 1 to sizemas do
s:= s + mas[i, cl];
sum:= s;
End;
BEGIN
Randomize;
WriteLn('Введите размер матрицы, меньше ', n, ': ');
ReadLn(sizemas);
for i:= 1 to sizemas do
for j:= 1 to sizemas do
mas[i, j]:= Random(20)-5;
for i:= 1 to sizemas do
begin
for j:= 1 to sizemas do
Write(mas[i, j]:4);
WriteLn;
end;
for j:= 1 to sizemas do
begin
k:= 0;
for i:= 1 to sizemas do
if (mas[i, j] >= 0) then k:= k + 1
else
begin
k:= 0;
break;
end;
if k = sizemas then
WriteLn('Сумма элементов ', j, ' столбца = ', Sum(mas, j));
end;
END.
Объяснение кода листинга программы
- В начале кода объявляются переменные n, тип int, переменная matrix и три переменные типа byte: i, j и k.
- Затем объявляется переменная sizemas, которая будет хранить размер матрицы.
- Запускается цикл Randomize, который инициализирует генератор случайных чисел.
- Пользователю предлагается ввести размер матрицы.
- В цикле for i:= 1 до sizemas происходит инициализация каждой ячейки матрицы mas[i, j] случайным числом от 0 до 19.
- После этого выводится содержимое каждой ячейки матрицы.
- Затем запускается цикл for j:= 1 до sizemas.
- Внутри этого цикла переменная k инициализируется значением 0.
- В цикле for i:= 1 до sizemas происходит проверка каждого элемента матрицы на положительность.
- Если элемент положительный, то к переменной k прибавляется единица.
- Если элемент отрицательный, то переменные i и j сбрасываются в начало цикла, и цикл прерывается командой break.
- После завершения внутреннего цикла проверяется значение переменной k.
- Если k равно размеру матрицы, то выводится сумма элементов текущего столбца.
- Конец программы.