Вычислить суммы элементов столбцов заданной матрицы A(N, M) — Pascal(Паскаль)

{   Пример 3.1 Вычислить суммы элементов столбцов заданной матрицы А(N,M).

                                   Тест
              ╔════════════════════╦══════════════════════════╗
              ║       Данные       ║         Результат        ║
              ║───┬───┬────────────╫──────────────────────────╢
              ║ N │ M │  Матрица А ║ Суммы элементов столбцов ║
              ╠═══╪═══╪════════════╬══════════════════════════╣
              ║ 2 │ 2 │    2  1    ║          S(6, 4)         ║
              ║   │   │    4  3    ║                          ║
              ╚═══╧═══╧════════════╩══════════════════════════╝
}

 Program SumColumn;
   Uses Crt;
   Var A          : Array [1..10, 1..10] of Real;
       N, M, i, j : Integer;
       S          : Array [1..10] of Real;
  {--------------------------------------------}
  Procedure InputOutput;
    Begin  {описание процедуры ввода-вывода исходных данных}
      ClrScr;
      Write('Количество строк - ');    ReadLn(N);
      Write('Количество столбцов - '); ReadLn(M);
      For i := 1 to N do {Ввод элементов матрицы}
        For j := 1 to M do
          begin Write('A[' , i , ', ' , j , ']= ? '); {вывод запроса}
                ReadLn(A[i, j]) {ввод значения}
          end; WriteLn;

      ClrScr;  WriteLn(' Матрица А');
      For i := 1 to N do {Вывод матрицы по строкам}
        begin
          For j := 1 to M do Write(A[i, j] : 5 : 1); {вывод i-ой строки}
          WriteLn {перенос курсора на начало следующей строки}
        end; WriteLn
    End; { of InputOutput }
  {--------------------------------------------}
  Procedure SumCol;
    Begin {описание процедуры вычисления сумм элементов столбцов}
      For j := 1 to M do {цикл по столбцам матрицы}
        begin
          S[j] := 0; {обнуление суммы элементов j-го столбца}
          For i := 1 to n do S[j] := S[j] + A[i, j] {накопление суммы}
        end;
    End; { of SumCol }
  {--------------------------------------------}
  Procedure OutResult; {описание процедуры вывода результатов}
    Begin
      Write( 'О т в е т : Суммы элементов столбцов равны ');
      For j := 1 to M do Write(S[j] : 5 : 1); WriteLn; ReadLn
    End; { of OutResult }
  {--------------------------------------------}
 BEGIN
   InputOutput; {вызов процедуры ввода-вывода исходных данных }
   SumCol;      {вызов процедуры вычисления сумм }
   OutResult;   {вызов процедуры вывода результатов}
 END.

Leave a Comment

+ 18 = 25