Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program L2_3_D;
- Uses
- System.SysUtils;
- Type
- TMyArray = Array of Array of Integer;
- Var
- LengthI, LengthJ, JSize, ISize, I, J, MaxSum : Integer;
- Matrix : TMyArray;
- IsCorrect : Boolean;
- Choice : String;
- Function MatrixCout(const Arr : TMyArray; JSize, ISize : Integer) : Integer;
- Var
- Sum : Integer;
- Begin
- Sum := 0;
- MaxSum := 0;
- Dec(ISize);
- Dec(JSize);
- For I := 0 To ISize Do
- Begin
- For J := 0 To JSize Do
- Begin
- Sum := Sum + Abs(Arr[I][J]);
- End;
- If (Sum > MaxSum) Then
- MaxSum := Sum;
- Sum := 0;
- End;
- MatrixCout := MaxSum;
- End;
- Procedure FromConsole;
- Begin
- Repeat
- IsCorrect := True;
- Writeln('Введите количество строк в матрице');
- Try
- Readln(ISize);
- Except
- IsCorrect := False;
- Writeln('Неверный тип данных');
- End;
- If (ISize < 1) Then
- Begin
- IsCorrect := False;
- Writeln('Неверный тип данных');
- End;
- Until IsCorrect;
- Repeat
- IsCorrect := True;
- Writeln('Введите количество столбцов в матрице');
- Try
- Readln(JSize);
- Except
- IsCorrect := False;
- Writeln('Неверный тип данных');
- End;
- If (JSize < 1) Then
- Begin
- IsCorrect := False;
- Writeln('Неверный тип данных');
- End;
- Until IsCorrect;
- SetLength(Matrix, ISize, JSize);
- LengthI := ISize - 1;
- LengthJ := JSize - 1;
- For I := 0 To LengthI Do
- Begin
- For J := 0 To LengthJ Do
- Begin
- Repeat
- IsCorrect := True;
- Writeln('Введите элемент с индексом ', I+1,',', J+1);
- Try
- Readln(Matrix[I][J]);
- Except
- IsCorrect := False;
- Writeln('Неверный тип данных');
- End;
- Until IsCorrect;
- End;
- End;
- Writeln('Вывод матрицы: ');
- For I := 0 To LengthI Do
- Begin
- For J := 0 To LengthJ Do
- Begin
- Write(Matrix[I][J], ' ');
- End;
- Writeln;
- End;
- MaxSum := MatrixCout(Matrix, JSize, ISize);
- Writeln('Максимальная сумма модулей элементов в строке: ', MaxSum);
- End;
- Procedure FromFile;
- Var
- TFile : TextFile;
- Begin
- Writeln('При записи данных из файла, учтите, что на первой строке написано количество строк матрицы, на второй - количество столбцов, а далее с новой строки прописывается сама матрица.');
- AssignFile(TFile, 'C:\Users\Рустамчик\Desktop\ЛАБА 2\Дельфи\3\input.txt');
- Reset(TFile);
- IsCorrect := True;
- Writeln('Запись размера матрицы...');
- Try
- Readln(TFile, ISize);
- Except
- IsCorrect := False;
- End;
- If (ISize < 1) Then
- Begin
- IsCorrect := False;
- Writeln('Ошибка! Неверный ввод размера! Измените входные данные в input.txt, затем перезапустите программу.');
- End;
- Writeln('Количество строк: ', ISize);
- IsCorrect := True;
- Try
- Readln(TFile, JSize);
- Except
- IsCorrect := False;
- End;
- If (JSize < 1) Then
- Begin
- IsCorrect := False;
- Writeln('Ошибка! Неверный ввод размера! Измените входные данные в input.txt, затем перезапустите программу.');
- End;
- Writeln('Количество столбцов: ', JSize);
- LengthI := Isize - 1;
- LengthJ := Jsize - 1;
- SetLength(Matrix, ISize, JSize);
- Writeln('Введенная матрица: ');
- For I := 0 To LengthI Do
- Begin
- For J := 0 To LengthJ Do
- Begin
- Try
- Read(TFile, Matrix[I][J])
- Except
- IsCorrect := False;
- Writeln(' Неверный ввод данных! Исправьте пункт ', I+1, ' ', J+1, ' пункт!');
- End;
- Write(Matrix[I][J], ' ');
- End;
- Writeln;
- End;
- MaxSum := MatrixCout(Matrix, JSize, ISize);
- Append(TFile);
- Writeln(TFile, 'Максимальная сумма модулей элементов в строке: ', MaxSum);
- Writeln('Максимальная сумма модулей элементов в строке: ', MaxSum);
- Writeln('Данные записаны в файл.');
- CloseFile(TFile);
- End;
- Begin
- Writeln('Данная программа находит наибольшую сумму элементов строк матрицы.');
- Writeln('Выберите, откуда будут вводиться данные:');
- Repeat
- IsCorrect := True;
- Writeln('Напишите ONE, если с консоли. Напишите TWO, если с файла.');
- Try
- Readln(Choice);
- Except
- IsCorrect := False;
- Writeln('Неверный тип данных!');
- End;
- If ((Choice <> 'ONE') And (Choice <> 'TWO')) Then
- Begin
- IsCorrect := False;
- Writeln('Неверный тип данных!');
- End;
- Until IsCorrect;
- If Choice = 'ONE' Then
- FromConsole
- Else
- FromFile;
- Readln;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement