Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project1;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- type
- tNums = array of array of integer;
- tInput = (ChooseKeyboard, ChooseFile);
- var
- size: integer;
- cols: integer;
- rows: integer;
- nums1: tnums;
- nums2: tnums;
- numsSum: tnums;
- isCorrect: boolean;
- input: tInput;
- f: textfile;
- procedure InputSize(size: integer);
- const
- minSize = 2;
- maxSize = 20;
- begin
- isCorrect := false;
- repeat
- Writeln('Введите размерность матрицы от ', minSize, ' до ', maxSize,':');
- try
- Readln(size);
- if (size > minSize - 1) and (size < maxSize + 1) then
- isCorrect := true
- else
- Writeln('Ошибка ввода. Введено число, удовлетворяющее условию.');
- except
- Writeln('Ошибка ввода. Введено число, удовлетворяющее условию.');
- end;
- until isCorrect;
- end;
- function ReadMatr1FromFile(nums1: tNums): tNums;
- begin
- AssignFile(f,'c:\Users\Богданчик\Documents\laba\matrix1.txt');
- Reset(f);
- Read(f, size);
- SetLength(nums1, size, size);
- for rows := 1 to size do
- begin
- for cols := 1 to size do
- begin
- Read(f,nums1[rows,cols]);
- Write(' ', nums1[rows,cols]);
- end;
- Writeln;
- end;
- Writeln('--------------------');
- Result := nums1;
- end;
- function ReadMatr2FromFile(nums2: tNums): tNums;
- begin
- AssignFile(f,'c:\Users\Богданчик\Documents\laba\matrix2.txt');
- Reset(f);
- Read(f, size);
- SetLength(nums2, size, size);
- for rows := 1 to size do
- begin
- for cols := 1 to size do
- begin
- Read(f,nums2[rows,cols]);
- Write(' ', nums2[rows,cols]);
- end;
- Writeln;
- end;
- Writeln('-------------------');
- Result := nums2;
- end;
- function SumOfMatrs(numsSum: tNums): tNums;
- var
- size: integer;
- nums1: tNums;
- nums2: tNums;
- begin
- SetLength(numsSum, size, size);
- for rows := 1 to size do
- for cols := 0 to size - 1 do
- numsSum[rows, cols] := nums1[rows, cols] + nums2[rows, cols];
- Write(' ', numsSum[rows,cols]);
- Writeln('--------------------');
- Result := numsSum;
- end;
- procedure SaveMatrSumInFile(numsSum: tnums);
- begin
- AssignFile(f,'c:\Users\Богданчик\Documents\laba\matrixSum.txt');
- Rewrite(f);
- for rows := 1 to size do
- for cols := 1 to size do
- Write(f,numsSum[rows,cols]);
- Writeln;
- Closefile(f);
- Writeln('Файл сохранен.');
- end;
- procedure Main();
- var
- Symbol: Char;
- Input: TInput;
- IsCorrect: Boolean;
- begin
- Writeln('Данная программа складывает две треугольные матрицы, в которых только элементы над главной диагональю отличны от нуля, порядка n.');
- ReadMatr1FromFile(nums1);
- ReadMatr2FromFile(nums2);
- SumOfMatrs(numsSum);
- SaveMatrSumInFile(numsSum);
- end;
- begin
- Main();
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement