SHARE
TWEET

Untitled

a guest Oct 20th, 2019 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.   System.SysUtils;
  9.  
  10. type
  11.     tNums = array of array of integer;
  12.     tInput = (ChooseKeyboard, ChooseFile);
  13.  
  14. var
  15.     size: integer;
  16.     cols: integer;
  17.     rows: integer;
  18.     nums1: tnums;
  19.     nums2: tnums;
  20.     numsSum: tnums;
  21.     isCorrect: boolean;
  22.     input: tInput;
  23.     f: textfile;
  24.     matr1: tNums;
  25.     matr2: tNums;
  26.  
  27.  
  28. procedure InputSize(size: integer);
  29.  
  30. const
  31.     minSize = 2;
  32.     maxSize = 20;
  33. begin
  34.     isCorrect := false;
  35.     repeat
  36.         Writeln('Введите размерность матрицы от ', minSize, ' до ', maxSize,':');
  37.         try
  38.             Readln(size);
  39.             if (size > minSize - 1) and (size < maxSize + 1) then
  40.                     isCorrect := true
  41.             else
  42.                 Writeln('Ошибка ввода. Введено число, удовлетворяющее условию.');
  43.         except
  44.             Writeln('Ошибка ввода. Введено число, удовлетворяющее условию.');
  45.         end;
  46.     until isCorrect;
  47. end;
  48.  
  49.  
  50. function ReadMatr1FromFile(nums1: tNums): tNums;
  51. begin
  52.     AssignFile(f,'c:\Users\Богданчик\Documents\laba\matrix1.txt');
  53.     Reset(f);
  54.     Read(f, size);
  55.     SetLength(nums1, size, size);
  56.     for rows := 1 to size do
  57.         begin
  58.             for cols := 1 to size do
  59.                 begin
  60.                     Read(f,nums1[rows,cols]);
  61.                     Write(' ', nums1[rows,cols]);
  62.                 end;
  63.             Writeln;
  64.         end;
  65.     Writeln('--------------------');
  66.     Result := nums1;
  67. end;
  68.  
  69.  
  70. function ReadMatr2FromFile(nums2: tNums): tNums;
  71. begin
  72.     AssignFile(f,'c:\Users\Богданчик\Documents\laba\matrix2.txt');
  73.     Reset(f);
  74.     Read(f, size);
  75.     SetLength(nums2, size, size);
  76.     for rows := 1 to size do
  77.         begin
  78.             for cols := 1 to size do
  79.                 begin
  80.                     Read(f,nums2[rows,cols]);
  81.                     Write(' ', nums2[rows,cols]);
  82.                 end;
  83.             Writeln;
  84.         end;
  85.     Writeln('-------------------');
  86.     Result := nums2;
  87. end;
  88.  
  89.  
  90. function SumOfMatrs(nums1: tNums; nums2:tNums): tNums;
  91. var
  92.     size: integer;
  93.     rows: integer;
  94.     cols: integer;
  95.     numsSum: tNums;
  96.     Arr1: tNums;
  97.     Arr2: tNums;
  98. begin
  99.     matr1 := ReadMatr1FromFile(nums1);
  100.     matr2 := ReadMatr2FromFile(nums2);
  101.     Writeln('Полученная сумма матриц: ');
  102.     SetLength(numsSum, size, size);
  103.     for rows := 1 to size do
  104.         begin
  105.             for cols := 1 to size do
  106.             begin
  107.                 numsSum[rows, cols] := nums1[rows, cols] + nums2[rows, cols];
  108.                 Write(' ', numsSum[rows, cols]);
  109.             end;
  110.             Writeln;
  111.         end;
  112.     Writeln('--------------------');
  113.     Result := numsSum;
  114. end;
  115.  
  116.  
  117. procedure SaveMatrSumInFile(numsSum: tnums);
  118.  
  119. begin
  120.     AssignFile(f,'c:\Users\Богданчик\Documents\laba\matrixSum.txt');
  121.     Rewrite(f);
  122.     for rows := 1 to size do
  123.             for cols := 1 to size do
  124.                 Write(f,numsSum[rows,cols]);
  125.     Writeln;
  126.     Closefile(f);
  127.     Writeln('Файл сохранен.');
  128. end;
  129.  
  130.  
  131. procedure Main();
  132.  
  133. begin
  134.     Writeln('Данная программа складывает две треугольные матрицы, в которых только элементы над главной диагональю отличны от нуля, порядка n.');
  135.     matr1 := ReadMatr1FromFile(nums1);
  136.     matr2 := ReadMatr2FromFile(nums2);
  137.     SumOfMatrs(nums1, nums2);
  138.     SaveMatrSumInFile(numsSum);
  139. end;
  140.  
  141. begin
  142.     Main();
  143.     Readln;
  144. end.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top