Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project13;
- {$APPTYPE CONSOLE}
- uses
- SysUtils, Windows;
- var
- InputFile, OutputFile: TextFile;
- Size, Max, i, j, k: Integer;
- Arr, Counter: array of Integer;
- Result: string;
- Procedure InputArray;
- var
- i: Integer;
- begin
- AssignFile(InputFile, 'input.txt');
- Reset(InputFile);
- Readln(InputFile, size);
- SetLength(Arr, Size);
- Dec(Size);
- for i:= 0 to Size do
- begin
- Read(InputFile, Arr[i]);
- Write(Arr[i], ' ');
- end;
- CloseFile(InputFile);
- end;
- Procedure FindMax;
- var
- i: Integer;
- begin
- Max := Arr[0];
- Dec(Size);
- for i:= 0 to Size do
- begin
- if (Arr[i] > Max) then
- Max := Arr[i];
- end;
- end;
- Procedure FindCounter;
- var
- i: Integer;
- begin
- SetLength(Counter, Max + 1);
- Dec(Size);
- for i:= 0 to Size do
- begin
- Inc(counter[arr[i]]);
- end;
- end;
- Procedure Sort;
- var
- i: Integer;
- begin
- j:= 0;
- k:= 0;
- Dec(Size);
- for i:= 0 to Size do
- begin
- if (k >= Counter[j]) then
- Inc(j);
- while (Counter[j] = 0) do
- Inc(j);
- k:= 0;
- Arr[i]:= j;
- Inc(k);
- end;
- end;
- Procedure ArrayToString;
- var
- i: Integer;
- begin
- Dec(Size);
- for i:= 0 to Size do
- begin
- Result:= Result + IntToStr(Arr[i]) + ' ';
- end;
- end;
- Procedure SaveResult;
- begin
- AssignFile(OutputFile, 'output.txt');
- Rewrite(OutputFile);
- Write(OutputFile, Result);
- Writeln('Файл сохранен.');
- CloseFile(OutputFile);
- end;
- begin
- Writeln('Данная програма производит сортировку массива подсчетом.');
- try
- if (FileExists('input.txt')) then
- begin
- Writeln('Данный массив:');
- InputArray;
- FindMax;
- FindCounter;
- Sort;
- ArrayToString;
- Writeln;
- Writeln('Матрица после преобразования:');
- Writeln(result);
- if (FileExists('output.txt')) then
- SaveResult
- else Writeln('Файла "output.txt" не существует');
- end
- else Writeln('Файла "input.txt" не существует');
- except
- on err: EInOutError do
- Write('Ошибка при чтении массива из файла');
- else Write('Ошибка');
- end;
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment