Вычислить количество положительных и отрицательных элементов над главной диагональю матрицы - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Необходимо решить задачу: Дана целочисленная матрица N*N где N<=20 Вычислить количество положительных и отрицательных элементов над главной диагональю (не включая диагональ). Если больше положительных элементов, то подсчитать среднее арифметическое всех элементов, в противном случае обнулить все элементы под главной диагональю (включая саму диагональ ). Исходную и полученный матрицы вывести на экран

Решение задачи: «Вычислить количество положительных и отрицательных элементов над главной диагональю матрицы»

textual
Листинг программы
  1. const nmax=20;
  2. var a:array[1..nmax,1..nmax] of integer;
  3.      n,i,j,ko,kp:integer;
  4.      s:real;
  5. begin
  6. randomize;
  7. repeat
  8. write('Размер матрицы от 3 до ',nmax,' n=');
  9. readln(n);
  10. until n in [3..nmax];
  11. writeln('Исходная матрица');
  12. kp:=0;ko:=0;
  13. for i:=1 to n do
  14.  begin
  15.   for j:=1 to n do
  16.    begin
  17.     a[i,j]:=-10+random(21);
  18.     write(a[i,j]:4);
  19.     if j>i then
  20.      begin
  21.       if a[i,j]>0 then inc(kp)
  22.       else if a[i,j]<0 then inc(ko);
  23.      end;
  24.    end;
  25.   writeln;
  26.  end;
  27. writeln('Количество положительных над главной диагональю=',kp);
  28. writeln('Количество отрицательных над главной диагональю=',ko);
  29. if kp>ko then
  30.  begin
  31.   writeln('Положительных больше');
  32.   s:=0;
  33.   for i:=1 to n do
  34.   for j:=1 to n do
  35.   s:=s+a[i,j];
  36.   s:=s/n/n;
  37.   write('Срелнее арифметическое всех элементов=',s:0:2);
  38.  end
  39. else
  40.  begin
  41.   writeln('Положительных не больше');
  42.   writeln('Обнуление элементов на главной диагонали и под ней');
  43.   for i:=1 to n do
  44.    begin
  45.     for j:=1 to n do
  46.      begin
  47.       if j<=i then a[i,j]:=0;
  48.       write(a[i,j]:4);
  49.      end;
  50.     writeln;
  51.    end;
  52.  end;
  53. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы