Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.31 KB | None | 0 0
  1. program lab2_3;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.     System.SysUtils;
  9.  
  10. type
  11.     MassType = array of array of double;
  12.  
  13. procedure MatrixIterations(var Matrix: MassType; StrokStart, StolbStart, StrokEnd, StolbEnd: integer);
  14. var
  15.     MnojStr : double;
  16.     i, j: integer;
  17. begin
  18.     for i := StrokStart to StrokEnd do
  19.     begin
  20.         MnojStr := (Matrix[i, StolbStart] / Matrix[StolbStart, StolbStart]) * -1;
  21.         for j := StolbStart to StolbEnd do
  22.             Matrix[i, j] := Matrix[i, j] + Matrix[StolbStart, j] * MnojStr;
  23.     end;
  24. end;
  25.  
  26. procedure MatrixOutput(const Matrix: MassType; Strok, Stolb: integer);
  27. var
  28.     i, j: integer;
  29. begin
  30.     for i := 0 to Strok do
  31.     begin
  32.         for j := 0 to Stolb do
  33.             write(Matrix[i, j]:6:3, ' ');
  34.         writeln;
  35.     end;
  36.     writeln;
  37. end;
  38.  
  39. function ReadFile(var Matrix: MassType; Path : string; StrokEnd, StolbEnd: integer): MassType;
  40. var
  41.     FileIn: TextFile;
  42.     i, j: integer;
  43. begin
  44.     AssignFile(FileIn, Path);
  45.     reset(FileIn);
  46.     while (not EOF(FileIN)) do
  47.     for i := 0 to StrokEnd do
  48.         for j := 0 to StolbEnd do
  49.             read(FileIn, Matrix[i, j]);
  50.     CloseFile(FileIn);
  51. end;
  52.  
  53. procedure WriteFile(const Matrix: MassType; Path : string; StrokEnd, StolbEnd: integer);
  54. var
  55.     FileOut: TextFile;
  56.     i, j: integer;
  57. begin
  58.     AssignFile(FileOut, Path);
  59.     rewrite(FileOut);
  60.     for i := 0 to StrokEnd do
  61.     begin
  62.         for j := 0 to StolbEnd do
  63.         begin
  64.             write(FileOut, Matrix[i, j]:6:3);
  65.             write(FileOut, '    ');
  66.         end;
  67.     writeln(FileOut, ' ');
  68.     end;
  69.     CloseFile(FileOut);
  70. end;
  71.  
  72. var
  73.     FileIn, FileOut:  TextFile;
  74.     Matrix: MassType;
  75.     i, j, StrokStart, StolbStart: integer;
  76.  
  77. const
  78.     StolbEnd = 4;
  79.     StrokEnd = 3;
  80.     NumOfIterations = 2;
  81.  
  82. begin
  83.     SetLength(Matrix, StrokEnd + 1, StolbEnd + 1);
  84.     ReadFile(Matrix, 'FileIN.txt', StrokEnd, StolbEnd);
  85.     MatrixOutput(Matrix, StrokEnd, StolbEnd);
  86.     StrokStart := 1;
  87.     StolbStart := 0;
  88.     for i := 0 to NumOfIterations do
  89.     begin
  90.         MatrixIterations(Matrix, StrokStart, StolbStart, StrokEnd, StolbEnd);
  91.         inc(StrokStart);
  92.         inc(StolbStart);
  93.     end;
  94.     MatrixOutput(Matrix, StrokEnd, StolbEnd);
  95.     WriteFile(Matrix, 'FileOut.txt', StrokEnd, StolbEnd);
  96.     readln;
  97. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement