Вычислить количество положительных и отрицательных элементов над главной диагональю матрицы - Pascal ABC
Формулировка задачи:
Необходимо решить задачу:
Дана целочисленная матрица N*N где N<=20 Вычислить количество положительных и отрицательных элементов над главной диагональю (не включая диагональ). Если больше положительных элементов, то подсчитать среднее арифметическое всех элементов, в противном случае обнулить все элементы под главной диагональю (включая саму диагональ ). Исходную и полученный матрицы вывести на экран
Решение задачи: «Вычислить количество положительных и отрицательных элементов над главной диагональю матрицы»
textual
Листинг программы
const nmax=20; var a:array[1..nmax,1..nmax] of integer; n,i,j,ko,kp:integer; s:real; begin randomize; repeat write('Размер матрицы от 3 до ',nmax,' n='); readln(n); until n in [3..nmax]; writeln('Исходная матрица'); kp:=0;ko:=0; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=-10+random(21); write(a[i,j]:4); if j>i then begin if a[i,j]>0 then inc(kp) else if a[i,j]<0 then inc(ko); end; end; writeln; end; writeln('Количество положительных над главной диагональю=',kp); writeln('Количество отрицательных над главной диагональю=',ko); if kp>ko then begin writeln('Положительных больше'); s:=0; for i:=1 to n do for j:=1 to n do s:=s+a[i,j]; s:=s/n/n; write('Срелнее арифметическое всех элементов=',s:0:2); end else begin writeln('Положительных не больше'); writeln('Обнуление элементов на главной диагонали и под ней'); for i:=1 to n do begin for j:=1 to n do begin if j<=i then a[i,j]:=0; write(a[i,j]:4); end; writeln; end; end; end.
Объяснение кода листинга программы
- Создается константа nmax, которая определяет максимальное значение для переменной n.
- Создается переменная a, которая представляет собой матрицу размером от 3 до nmax на 1 до nmax.
- Задаются три переменные kp, ko и i, которые будут использоваться для подсчета количества положительных и отрицательных элементов над главной диагональю матрицы.
- Задается переменная s, которая будет использоваться для вычисления среднего арифметического всех элементов матрицы.
- В цикле повторяется следующий код:
- Выводится запрос на ввод размера матрицы от 3 до nmax.
- Введенный размер сохраняется в переменной n.
- Инициализируются переменные kp и ko нулем.
- В цикле for перебираются все элементы матрицы a[i,j].
- Если j больше i, то вычисляется значение a[i,j] и проверяется, положительное оно или отрицательное.
- Если a[i,j] положительное, то увеличивается значение kp.
- Если a[i,j] отрицательное, то увеличивается значение ko.
- После завершения внутреннего цикла выводится значение kp и ko.
- Если kp больше ko, то выводится сообщение
Положительных больше
и вычисляется среднее арифметическое всех элементов матрицы. - Если kp меньше или равно ko, то выводится сообщение
Положительных не больше
и выполняется обнуление элементов на главной диагонали и под ней. - Для каждого элемента матрицы a[i,j] выводится его значение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д