Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент - Pascal
Формулировка задачи:
2. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент (оформить в виде функции).
Помогите пожалуйста с решением этих задач! Это мои лабораторные задачки! Они решат, какую оценку я получу на рубежном контроле...заранее всех благодарю!
Решение задачи: «Найти сумму элементов в тех столбцах матрицы, которые содержат хотя бы один отрицательный элемент»
textual
Листинг программы
uses crt; const nmax=20; type matr=array[1..nmax,1..nmax] of integer; procedure Summa(mt:matr;x,y:byte); var i,j,k,p:byte; sm:integer; begin for j:=1 to y do begin k:=0; for i:=1 to x do if mt[i,j]<0 then{ищем отрицательные} begin k:=1;{есть в столбце} break;{дальше не ищем} end; if k=1 then{если есть} begin sm:=0; for p:=1 to x do sm:=sm+mt[p,j]; {считаем сумму} writeln('Сумма в столбце ',j,'=',sm); end; end; end; var a:matr; n,m,i,j:byte; begin clrscr; randomize; repeat write('Количество строк=');readln(n); until n in [1..nmax]; repeat write('Количество столбцов=');readln(m); until m in [1..nmax]; writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(20)-3; write(a[i,j]:4); end; writeln; end; writeln; Summa(a,n,m); readln end.
Объяснение кода листинга программы
Данный код написан на языке Pascal и выполняет следующие действия:
- Создается переменная
nmax
, которая определяет максимальное количество строк и столбцов в матрице. - Определяется тип
matr
, который представляет собой массив целых чисел размером доnmax
наnmax
. - Создается процедура
Summa
, которая принимает матрицуmt
, индексыx
иy
в виде байтов, а также переменныеi
,j
,k
иp
в виде байтов. - В цикле
for
перебираются строки от 1 доy
. - Внутри цикла проверяется, содержит ли текущая строка хотя бы один отрицательный элемент. Для этого используется цикл
for
, который перебирает столбцы от 1 доx
. - Если текущий столбец содержит отрицательный элемент, то переменная
k
устанавливается в 1, что означает, что текущая строка содержит отрицательный элемент. - Если
k
равно 1, то начинается подсчет суммы элементов в текущем столбце. Для этого используется циклfor
, который перебирает столбцы от 1 доx
. - После завершения подсчета суммы, выводится сообщение с результатом.
- В основной части кода создается переменная
a
, которая представляет собой матрицу размеромn
наm
. - Заполняются значения матрицы
a
случайными числами от -15 до 15. - Выводится исходная матрица.
- Вызывается процедура
Summa
с аргументамиa
,n
иm
. - Выводится сообщение с результатом выполнения процедуры.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д