Найти сумму каждого столбца матрицы - Turbo Pascal
Формулировка задачи:
Дана квадратная матрица:
1) Найти сумму каждого столбца матрицы и вывести сумму того столбца, у которого она является большей + нужно вывести номер столбца
2) Если в матрице отрицательных элементов больше чем положительных, то изменить все отрицательные элементы на цифру 0, а положительные элементы на цифру 1.
3) Вывести номер столбца, у которого все элементы равны 0, а если такого нету, вывести соответствующее сообщение
Решение задачи: «Найти сумму каждого столбца матрицы»
textual
Листинг программы
type arr=array[1..20]of integer; var i, j, n, max, ind,pn: integer; b: arr; a: array [1..20]of arr; zer,nozer:boolean; begin writeln('Vvedite kolichestvo strok i stolbcov:'); readln(n); writeln; randomize; writeln('1) Massiv:'); for i := 1 to n do begin for j := 1 to n do begin a[i, j] :=10-random(21); write(a[i, j]:3); end; writeln; end; pn:=0; for j := 1 to n do begin b[j] := 0; for i := 1 to n do begin b[j] := b[j] + a[i, j]; pn:=pn+ord(a[i, j]>0)-ord(a[i, j]<0); end; end; max := -(maxint+1); for j := 1 to n do begin writeln('Summa elementov ', j, ' stolbca: ', b[j]:4); if b[j] > max then begin max := b[j]; ind := j; end; end; writeln('Maksimal"naya summa u stolbca ', ind);writeln; if pn<0 then//задание 2 begin writeln('2) Massiv:'); for i := 1 to n do begin for j := 1 to n do begin if a[i, j]<>0 then a[i, j]:=ord(a[i, j]>0); write(a[i, j]:3); end; writeln; end; end else writeln('2) otricatelnyh ne bol"she, chem polozhitel"nyh'); nozer:=true; for j := 1 to n do //задание 3 begin zer:=a[1, j]=0; for i := 2 to n do zer:=zer and (a[i, j]=0); if zer then begin writeln('3) Vse nuli v stolbce ',j); nozer:=not zer; end; end; if nozer then writeln('3) Net nulevyh stolbcov'); readln; end.
Объяснение кода листинга программы
- Создаётся тип данных arr, который представляет собой массив целых чисел размером от 1 до 20.
- Создаются переменные i, j, n, max, ind и pn, которые будут использоваться для работы с матрицей.
- Создается переменная b, которая будет представлять собой массив, в котором будут храниться суммы элементов каждого столбца.
- Создается массив a, который будет представлять собой исходную матрицу.
- Вводится количество строк и столбцов матрицы с помощью функции readln().
- Используется функция randomize() для генерации случайных чисел.
- Заполняется матрица a с помощью цикла for.
- Вычисляется максимальная сумма элемента матрицы с помощью цикла for.
- Выводится максимальная сумма элемента.
- Проверяется условие pn<0, которое означает, что в матрице есть отрицательные числа.
- Если условие выполняется, то выводится вторая часть программы, которая также использует цикл for.
- Если условие не выполняется, то выводится сообщение
2) otricatelnyh ne bol
she, chem polozhitelnyh
. - В задаче 3 используется цикл for для проверки каждого столбца матрицы на наличие нулей.
- Если хотя бы в одном столбце есть ноль, то выводится сообщение
3) Vse nuli v stolbce
. - Если все столбцы матрицы не содержат нулей, то выводится сообщение
3) Net nulevyh stolbcov
. - Программа завершается с помощью функции readln().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д