SaidSikiraX

Sarus | Kramerova Pravila | 3 jednacine 3 nepoznate

Oct 17th, 2012
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.52 KB | None | 0 0
  1. program project1;
  2.  
  3. type Matrica = array [1 .. 3,1 .. 3] of real;
  4.      Vektor = array [1 .. 3] of real;
  5.  
  6. var A : Matrica; //Glavna matrica
  7.     B,R : Vektor; //Vektor B unosimo. Vektor R su rješenja sistema
  8.     DetSis : real;
  9.  
  10. procedure UnesiMatricu(Ime : Char ; var X : Matrica); //n ne trebamo unositi zato sto znamo da je n=3
  11.  
  12. var i,j : integer;
  13.  
  14. begin
  15.   for i:=1 to 3 do
  16.     for j:=1 to 3 do
  17.       begin
  18.         write(Ime,'[',i,',',j,']= ');
  19.         read(X[i,j]);
  20.       end;
  21. end;
  22.  
  23. procedure UnesiVektor(Ime : Char ; var X : Vektor);
  24.  
  25. var i : integer;
  26.  
  27. begin
  28.   for i:=1 to 3 do
  29.       begin
  30.         write(Ime,'[',i,']= ');
  31.         read(X[i]);
  32.       end;
  33. end;
  34.  
  35. function Determinanta(X : Matrica) : real;
  36.  
  37. var det : real;
  38.     i,j : integer;
  39. begin
  40.   //Sarusovo pravilo
  41.   det:=(X[1,1]*X[2,2]*X[3,3])+(X[1,2]*X[2,3]*X[3,1])+(X[1,3]*X[2,1]*X[3,2])-(X[1,3]*X[2,2]*X[3,1])-(X[1,2]*X[2,1]*X[3,3])-(X[1,1]*X[2,3]*X[3,2]);
  42.   Determinanta:=det;
  43. end;
  44. function Zamijeni(k :integer ; Y: Vektor ; X: Matrica) : Matrica;
  45.  
  46.   var i,j : integer;
  47.       d : Matrica;
  48.  
  49.   begin
  50.     for i:=1 to 3 do
  51.       for j:=1 to 3 do
  52.         begin
  53.           d[i,j]:= X[i,j];
  54.           d[i,k]:= Y[i];
  55.         end;
  56.     Zamijeni:=d;
  57.   end;
  58.  
  59. var i : integer;
  60. begin
  61.      UnesiMatricu('A',A);
  62.      UnesiVektor('B',B);
  63.      DetSis:=Determinanta(A);
  64.      writeln('Determinanta sistema ',DetSis:7:2);
  65.      for i:=1 to 3 do
  66.        begin
  67.          R[i]:=Determinanta(Zamijeni(i,B,A))/DetSis;
  68.          writeln(R[i]:7:2);
  69.        end;
  70. end.
Advertisement
Add Comment
Please, Sign In to add comment