Вычислить количество положительных и отрицательных элементов над главной диагональю матрицы - 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.

Объяснение кода листинга программы

  1. Создается константа nmax, которая определяет максимальное значение для переменной n.
  2. Создается переменная a, которая представляет собой матрицу размером от 3 до nmax на 1 до nmax.
  3. Задаются три переменные kp, ko и i, которые будут использоваться для подсчета количества положительных и отрицательных элементов над главной диагональю матрицы.
  4. Задается переменная s, которая будет использоваться для вычисления среднего арифметического всех элементов матрицы.
  5. В цикле повторяется следующий код:
    • Выводится запрос на ввод размера матрицы от 3 до nmax.
    • Введенный размер сохраняется в переменной n.
    • Инициализируются переменные kp и ko нулем.
    • В цикле for перебираются все элементы матрицы a[i,j].
      • Если j больше i, то вычисляется значение a[i,j] и проверяется, положительное оно или отрицательное.
      • Если a[i,j] положительное, то увеличивается значение kp.
      • Если a[i,j] отрицательное, то увеличивается значение ko.
    • После завершения внутреннего цикла выводится значение kp и ko.
  6. Если kp больше ko, то выводится сообщение Положительных больше и вычисляется среднее арифметическое всех элементов матрицы.
  7. Если kp меньше или равно ko, то выводится сообщение Положительных не больше и выполняется обнуление элементов на главной диагонали и под ней.
  8. Для каждого элемента матрицы a[i,j] выводится его значение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы