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