Найти сумму каждого столбца матрицы - 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().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д