неделя, 12 декември 2010 г.

Задача 9 - дължина на сумата от квадратите на елементите на матрица

Задача 9 - Pascal

Да се състави програма на, която за даден масив 8x10 от цели числа да определя дали е вярно, че сумата от квадратите му е петцифрено число.

program sumsquares;
const 
  M = 8;
  N = 10;
var
  a: array[1..M, 1..N] of Integer;
  i,j: Integer;
  sum: Integer;

function sqrt(n:integer):integer;
begin
   sqrt := n*n;
end;

begin
  Randomize;
  for i := 1 to M do
  begin
    for j := 1 to N do
    begin
      a[i][j] := Random(30);
    end;
  end;
  sum := 0;
  for i := 1 to M do 
  begin
    for j := 1 to N do
    begin
      sum := sum + sqrt(a[i][j]);
    end;
  end;
  if (sum >= 10000) AND (sum < 100000) then
  begin
    WriteLn(sum, ' has 5 digits');
  end
  else
  begin
    WriteLn(sum, ' doesn''t have 5 digits');
  end;
end.
Ще инициализираме масива със случайни числа, защото 80 елемента ще отнемат много време за въвеждане. Тъй като ни трябват квадратите на елементите, дефинираме проста функция, която връща произведението на числото само със себе си. Порграмата се компилира под FreePascal:
aquilax@think /d/p/pascal> fpc 09_sumsquare.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 09_sumsquare.pas
Linking 09_sumsquare
40 lines compiled, 0.1 sec 
aquilax@think /d/p/pascal> ./09_sumsquare 
22315 has 5 digits

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

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