В файле отсортировать каждый массив по убыванию методом подсчета - Pascal
Формулировка задачи:
Дан файл, в котором в каждой строке записаны элементы линейных массивов различной длины. Отсортировать каждый массив по убыванию методом подсчета. Отсортированные массивы записать в тот же файл.
Решение задачи: «В файле отсортировать каждый массив по убыванию методом подсчета»
textual
Листинг программы
const min=0; max=1000; fName='data.txt';
var
a: array [min,max] of Integer;
e, j: Integer;
begin
Assign(input,fName); Assign(output,'temp.$$$');
Reset(input); Rewrite(output);
while not EoF do begin
FillChar(a,SizeOf(a),#0);
while not SeekEoLn do begin Read(e); Inc(a[e]); end; ReadLn;
for e:=max downto min do for j:=1 to a[e] do Write(' ',e); WriteLn;
end;
Close(input); Close(output);
Erase(input); Rename(output,fName);
end.
Объяснение кода листинга программы
- Объявляются константы:
- Начальное значение массива
min= 0 - Максимальное значение массива
max= 1000 - Имя файла для ввода
fName= 'data.txt'
- Начальное значение массива
- Объявляются переменные:
- Массив
aтипа Integer с размером отminдоmax e,jкак целочисленные переменные
- Массив
- Начинается блок выполнения программы:
- Присваиваются входной и выходной файлы:
inputиoutput - Входной файл открывается для чтения (
Reset(input)) и выходной файл открывается или создается (Rewrite(output)) - Пока не достигнут конец файла (
EoF), выполняются следующие шаги для каждой строки в файле:- Очищается массив
aс помощьюFillChar(заполняется нулями) - Читается каждое число
eв строке и увеличивается соответствующий элемент массиваa - После чтения каждой строки идет сортировка массива
апо убыванию
- Очищается массив
- Входной и выходной файлы закрываются (
Close) и производится переименование выходного файла в имя исходного файла (Rename(output, fName))
- Присваиваются входной и выходной файлы:
- Завершение выполнения программы.
Вывод: Данный код открывает файл data.txt, считывает числа из каждой строки, сортирует их и записывает отсортированные числа обратно в тот же файл.