Для решения задачи на языке программирования Free Pascal, нам потребуется выполнить несколько основных шагов:
- Чтение данных из файла
input.txt
.
- Преобразование данных в массив целых чисел.
- Сортировка массива.
- Запись отсортированного массива в файл
output.txt
.
Пример кода на Free Pascal для выполнения данной задачи:
program SortArray;
uses
SysUtils, Classes;
var
inputFile, outputFile: TextFile;
size: Integer;
numbers: array of Integer;
i: Integer;
numberStr: string;
numList: TStringList;
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer);
var
Lo, Hi, Pivot, T: Integer;
begin
Lo := iLo;
Hi := iHi;
Pivot := A[(Lo + Hi) div 2];
repeat
while A[Lo] < Pivot do Inc(Lo);
while A[Hi] > Pivot do Dec(Hi);
if Lo Hi;
if Hi > iLo then QuickSort(A, iLo, Hi);
if Lo < iHi then QuickSort(A, Lo, iHi);
end;
begin
// Чтение данных из файла input.txt
AssignFile(inputFile, 'input.txt');
Reset(inputFile);
ReadLn(inputFile, size);
SetLength(numbers, size);
// Чтение элементов массива
ReadLn(inputFile, numberStr);
CloseFile(inputFile);
numList := TStringList.Create;
try
numList.DelimitedText := numberStr;
for i := 0 to size - 1 do
begin
numbers[i] := StrToInt(numList[i]);
end;
finally
numList.Free;
end;
// Сортировка массива
if size > 1 then
QuickSort(numbers, 0, size - 1);
// Запись отсортированного массива в файл output.txt
AssignFile(outputFile, 'output.txt');
Rewrite(outputFile);
for i := 0 to size - 1 do
begin
if i > 0 then
Write(outputFile, ' ');
Write(outputFile, numbers[i]);
end;
WriteLn(outputFile);
CloseFile(outputFile);
end.
Пояснение к коду:
Чтение данных из файла input.txt
:
- Открываем входной файл
input.txt
и читаем первую строку, содержащую размер массива.
- Инициализируем массив
numbers
с размером, полученным из первой строки.
- Читаем вторую строку, содержащую элементы массива, разделённые пробелами.
Преобразование данных в массив целых чисел:
- Используем
TStringList
для разделения строки с числами на отдельные элементы.
- Преобразуем каждую строку в целое число и сохраняем в массив
numbers
.
Сортировка массива:
- Используем алгоритм быстрой сортировки (QuickSort) для сортировки массива. Этот алгоритм выбран за его эффективность и простоту реализации.
Запись отсортированного массива в файл output.txt
:
- Открываем файл
output.txt
для записи.
- Записываем отсортированные элементы массива, разделяя их пробелами.
Этот код выполняет все необходимые шаги для чтения, сортировки и записи массива согласно условиям задачи.