На прошлом занятии мы разобрались как в Паскале использовать текстовые файлы. Сегодня давайте попробуем совместить известные нам методы сортировки массивов и работу с файлами.
Рассмотрим решение этой проблемы на примере следующей задачи:
Задача. В файле записано не более 100 целых чисел. Вывести в другой текстовый файл те же числа, отсортированные в порядке возрастания.
Для сортировки данных из файла нужно будет их все занести в массив, для этого его нужно описать:
const MAX=100; var A: array[1..MAX] of integer; |
var N: integer; Fin: Text; ... Assign(Fin,'input.txt'); Reset(Fin); N:= 0; while (not Eof(Fin)) and (N < MAX) do begin N:= N + 1; readln(Fin, A[N]); end; Close(Fin); |
И последняя задача, вывод отсортированного массива в файл.
var Fout: Text; ... Assign(Fout, 'output.txt'); Rewrite(Fout); for i:= 1 to N do writeln(Fout, A[i]); Close(Fout); |
Задания для самостоятельного выполнения:
«A»: В файле записано не более 100 чисел. Отсортировать их по возрастанию последней цифры и записать в другой файл.
«B»: В файле записано не более 100 чисел. Отсортировать их по возрастанию суммы цифр и записать в другой файл. Используйте функцию, которая вычисляет сумму цифр числа. (эту функцию мы уже неоднократно использовать)
«C»: В двух файлах записаны отсортированные по возрастанию массивы неизвестной длины. Объединить их и записать результат в третий файл. Полученный массив также должен быть отсортирован по возрастанию.
Текст программы вставляем в комментарий к этому сообщению, в теме указываем Фамилию, Имя и уровень задачи.
Удачи!
Внимание! Работы принимаю сегодня до 20.00!