сряда, 12 януари 2011 г.

Задача 13 - сума на числата над диагонал в матрица

Задача 13 - Pascal


Да се напише програма, която да извежда сумата на числата над основния диагонал на квадратна матрица.



program suma_diagonal;
const
  n = 30;
var
  A: array[1..n,1..n] of integer;
  i,j,sum:integer;
begin
  for i := 1 to n do
    for j := 1 to n do 
      A[i][j] := Random(10);
  sum := 0;
  for i := 1 to n do
    for j := i to n do 
    begin
      if i < j then
        sum := sum + A[i][j];
    end;
  WriteLn('The sum is: ', sum);
end.
Задачата се решеава елементарно с обхождане на матрицата и проверка на това дали числото попада в интервала (макар че проверката може да бъда избегната). Малка оптимизация е започването на втория цижъл от i вместо от 1. Програмата се компилира под FreePascal:

aquilax@think /d/p/z/13_suma_diagonal> fpc 13_suma_diagonal.pas 
Free Pascal Compiler version 2.4.0-2 [2010/03/06] for x86_64
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling 13_suma_diagonal.pas
Linking 13_suma_diagonal
19 lines compiled, 0.1 sec 

aquilax@think /d/p/z/13_suma_diagonal> ./13_suma_diagonal 
The sum is: 2023

Няма коментари:

Публикуване на коментар