Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program Lab2_3;
- Uses
- System.SysUtils;
- Type
- TMatrix = Array of Array of Integer;
- Const
- MIN_N = 1;
- MAX_N = 10;
- Var
- ChoiceOutput: Integer;
- Matrix: TMatrix;
- Function GetNum(Min, Max: Integer): Integer;
- Var
- Num: Integer;
- IsCorrect: Boolean;
- Begin
- Repeat
- IsCorrect := True;
- Try
- Readln(Num)
- Except
- Write('Некорректный ввод! Введите значение еще раз: ');
- IsCorrect := False;
- End;
- If (IsCorrect) And ((Num < Min) Or (Num > Max)) Then
- Begin
- Write('Недопустимое значение! Введите значение еще раз: ');
- IsCorrect := False;
- End;
- Until (IsCorrect);
- GetNum := Num;
- End;
- Procedure FillMatrix(Var Matrix: TMatrix);
- Var
- N, I, J, Counter: Integer;
- Begin
- Writeln('Введите порядок матрицы N от ', MIN_N, ' до ', MAX_N, ': ');
- N := GetNum(MIN_N, MAX_N);
- SetLength(Matrix, N, N);
- Dec(N);
- I := 0;
- Counter := 1;
- Repeat
- If I Mod 2 = 0 Then
- Begin
- For J := 0 To High(Matrix) Do
- Begin
- Matrix[I][J] := Counter;
- Inc(Counter);
- End;
- End
- Else
- Begin
- For J := High(Matrix) DownTo 0 Do
- Begin
- Matrix[I][J] := Counter;
- Inc(Counter);
- End;
- End;
- Inc(I);
- Until (I > N);
- End;
- Function CheckPath(Path: String): Boolean;
- Begin
- If FileExists(Path) Then
- Begin
- CheckPath := True;
- End
- Else
- Begin
- Writeln('Вы ввели несуществующий путь! Проверьте корректность данных и попробуйте еще раз!');
- CheckPath := False;
- End;
- End;
- Procedure OutputMatrix (Choice: Integer; Var Matrix: TMatrix);
- Var
- I,J: Integer;
- OutputFile: TextFile;
- Path: String;
- IsPathCorrect: Boolean;
- Begin
- If Choice = 1 Then
- Begin
- Writeln('Результат:');
- For I := 0 To High(Matrix) Do
- Begin
- For J := 0 To High(Matrix) Do
- Begin
- Write(Matrix[I][J]:5);
- End;
- Writeln(#10);
- End;
- End
- Else
- Begin
- Writeln('Введите путь к файлу для вывода (например, F:\Projects\Matrix\[Имя файла].txt). Если файл отсутствует то он будет создан автоматически по указанному пути или в корневой папке программы (по умолчанию)');
- Repeat
- Write('Введите путь: ');
- Readln(Path);
- AssignFile(OutputFile, Path);
- Try
- Rewrite(OutputFile);
- IsPathCorrect := True;
- For I := 0 To High(Matrix) Do
- Begin
- For J := 0 To High(Matrix) Do
- Begin
- Write(OutputFile, Matrix[I][J]:5);
- End;
- Writeln(OutputFile, #10);
- End;
- Except
- Writeln('Не удалось вывести в Файл');
- IsPathCorrect := False;
- End;
- CloseFile(OutputFile);
- Until IsPathCorrect;
- Writeln('Вывод данных... успешно!');
- End;
- End;
- Begin
- Writeln('Данная программа заполнит матрицу чисел "змейкой"');
- FillMatrix(Matrix);
- Write('Выберите вариант вывода:', #10, '1. Вывод в консоль', #10, '2. Вывод в файл', #10, 'Использовать вариант: ');
- ChoiceOutput := GetNum(1,2);
- OutputMatrix(ChoiceOutput, Matrix);
- Readln;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement