Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project9;
- uses
- System.SysUtils;
- type
- Matrix = array of array of Integer;
- function ReadFile(): Matrix;
- var
- TFile: TextFile;
- I, J, Rows, Cols: Integer;
- Line: String;
- IsCorrect: Boolean;
- Mat: Matrix;
- begin
- repeat
- IsCorrect := true;
- Writeln('Введите имя файла, из которого хотите считать информацию: ');
- ReadLn(Line);
- Line := Line + '.txt';
- try
- Assign(TFile, Line);
- Reset(TFile);
- except
- IsCorrect := False;
- Writeln('Не удалось найти файл ', Line);
- end;
- until IsCorrect;
- ReadLn(TFile, Rows);
- ReadLn(TFile, Cols);
- SetLength(Mat, Rows, Cols);
- for I := 0 to Rows - 1 do
- begin
- for J := 0 to Cols - 1 do
- Read(TFile, Mat[I,J]);
- ReadLn(TFile);
- end;
- CloseFile(TFile);
- ReadFile := Mat;
- end;
- procedure Count(Mat: Matrix);
- var
- I, J, Amount: Integer;
- SkipCol: Boolean;
- Line: String;
- TFile: TextFile;
- begin
- WriteLn('Введите имя файла, в который хотите сохранить результат');
- ReadLn(Line);
- Line := Line + '.txt';
- Assign(TFile, Line);
- ReWrite(TFile);
- Amount := 0;
- Write(TFile, 'Номера столбцов с числами, идущими по возрастанию: ');
- for I := 0 to High(Mat) do
- begin
- SkipCol := true;
- for J := 0 to High(Mat[0])-1 do
- begin
- if (Mat[j+1,i] < Mat[j,i]) and SkipCol then
- SkipCol := false;
- end;
- if SkipCol then
- begin
- Write(TFile, i+1, ' ');
- Amount := Amount + 1;
- end;
- end;
- WriteLn(TFile, '');
- Write(TFile, 'Количество: ', Amount);
- WriteLn('Количество столбцов с числами, идущими по возрастанию: ', Amount);
- CloseFile(TFile);
- end;
- var
- Mat: Matrix;
- i, j: Integer;
- begin
- Mat := ReadFile();
- Count(Mat);
- WriteLn('Программа закончила свою работу. Нажмите для продолжения...');
- Readln;
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement