Помощь - Поиск - Пользователи - Календарь
Полная версия: Использование массива при сортировке файлов
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Vania
Никак не могу разобраться с еще одной задачей на файлы :-()
В текстовом файле занесено n >= 10^6 натуральных чисел (каждое число <= 10^4). Получить новый файл, образованный из чисел, встречающихся в исходном файле более одного раза, по возрастанию без повторений.
Буду благодарен за любые идеи..
volvo
Описываешь массив
var ix: array[0 .. 10000] of longint;
(это гарантированно будет корректно работать только для общего количества чисел в файле не превышающего 2147483647, или 231 - 1, поскольку именно это - максимально возможное значение LongInt), обнуляешь его, и потом делаешь так:

var x: integer;
...
while not eof(f) do begin
readln(f, X);
inc(ix[X]);
end;

, таким образом заполняя массив счетчиков повторяемости каждого числа в файле... Ну, а потом просто проходишь по всему массиву Ix, и:
for i := 0 to 10000 do
if ix[i] > 1 then writeln(f_2, i);


Вот, собственно и вся идея...
Vania
Спасибо за идею!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.