Найти сумму каждого столбца матрицы - Turbo Pascal

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

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

Дана квадратная матрица: 1) Найти сумму каждого столбца матрицы и вывести сумму того столбца, у которого она является большей + нужно вывести номер столбца 2) Если в матрице отрицательных элементов больше чем положительных, то изменить все отрицательные элементы на цифру 0, а положительные элементы на цифру 1. 3) Вывести номер столбца, у которого все элементы равны 0, а если такого нету, вывести соответствующее сообщение

Решение задачи: «Найти сумму каждого столбца матрицы»

textual
Листинг программы
  1. type arr=array[1..20]of integer;
  2.  
  3. var
  4.   i, j, n, max, ind,pn: integer;
  5.   b: arr;
  6.   a: array [1..20]of arr;
  7.   zer,nozer:boolean;
  8.  
  9. begin
  10.   writeln('Vvedite kolichestvo strok i stolbcov:');
  11.   readln(n);
  12.   writeln;
  13.   randomize;
  14.   writeln('1) Massiv:');
  15.   for i := 1 to n do
  16.   begin
  17.     for j := 1 to n do
  18.       begin
  19.         a[i, j] :=10-random(21);
  20.         write(a[i, j]:3);
  21.       end;
  22.       writeln;
  23.   end;
  24.   pn:=0;
  25.   for j := 1 to n do
  26.   begin
  27.     b[j] := 0;
  28.     for i := 1 to n do
  29.       begin
  30.         b[j] := b[j] + a[i, j];
  31.         pn:=pn+ord(a[i, j]>0)-ord(a[i, j]<0);
  32.       end;
  33.   end;
  34.  
  35.   max := -(maxint+1);
  36.   for j := 1 to n do
  37.   begin
  38.     writeln('Summa elementov ', j, ' stolbca: ', b[j]:4);
  39.     if b[j] > max then
  40.     begin
  41.       max := b[j];
  42.       ind := j;
  43.     end;
  44.   end;
  45.   writeln('Maksimal"naya summa u stolbca ', ind);writeln;
  46.  
  47.   if pn<0 then//задание 2
  48.     begin
  49.       writeln('2) Massiv:');
  50.       for i := 1 to n do
  51.         begin
  52.           for j := 1 to n do
  53.             begin
  54.              if a[i, j]<>0 then a[i, j]:=ord(a[i, j]>0);
  55.              write(a[i, j]:3);
  56.             end;
  57.         writeln;
  58.         end;
  59.     end
  60.     else writeln('2) otricatelnyh ne bol"she, chem polozhitel"nyh');
  61.  
  62.    nozer:=true;
  63.    for j := 1 to n do   //задание 3
  64.      begin
  65.       zer:=a[1, j]=0;
  66.       for i := 2 to n do
  67.           zer:=zer and (a[i, j]=0);
  68.       if zer then
  69.          begin
  70.            writeln('3) Vse nuli v stolbce ',j);
  71.            nozer:=not zer;
  72.          end;
  73.      end;
  74.    if nozer then writeln('3) Net nulevyh stolbcov');
  75.    readln;
  76. end.

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

  1. Создаётся тип данных arr, который представляет собой массив целых чисел размером от 1 до 20.
  2. Создаются переменные i, j, n, max, ind и pn, которые будут использоваться для работы с матрицей.
  3. Создается переменная b, которая будет представлять собой массив, в котором будут храниться суммы элементов каждого столбца.
  4. Создается массив a, который будет представлять собой исходную матрицу.
  5. Вводится количество строк и столбцов матрицы с помощью функции readln().
  6. Используется функция randomize() для генерации случайных чисел.
  7. Заполняется матрица a с помощью цикла for.
  8. Вычисляется максимальная сумма элемента матрицы с помощью цикла for.
  9. Выводится максимальная сумма элемента.
  10. Проверяется условие pn<0, которое означает, что в матрице есть отрицательные числа.
  11. Если условие выполняется, то выводится вторая часть программы, которая также использует цикл for.
  12. Если условие не выполняется, то выводится сообщение 2) otricatelnyh ne bolshe, chem polozhitelnyh.
  13. В задаче 3 используется цикл for для проверки каждого столбца матрицы на наличие нулей.
  14. Если хотя бы в одном столбце есть ноль, то выводится сообщение 3) Vse nuli v stolbce.
  15. Если все столбцы матрицы не содержат нулей, то выводится сообщение 3) Net nulevyh stolbcov.
  16. Программа завершается с помощью функции readln().

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


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

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

5   голосов , оценка 3.6 из 5

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

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

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