
Дан файл f = file of integer. Удалить из файла все повторяющееся элементы, БЕЗ создания дополнительного файла, матриц и т.п.

Заранее огромное спасибо!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
mapblwka |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Уже не один день мучаю свой мозг..
![]() Дан файл f = file of integer. Удалить из файла все повторяющееся элементы, БЕЗ создания дополнительного файла, матриц и т.п. ![]() Заранее огромное спасибо! ![]() |
![]() ![]() |
Бродяжник |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
mapbwlka
Нужно открыть файл для чтения/записи. Потом прочесть первое число и запомнить его. Потом надо читать все последующие и сравнивать их с первым. Пока они разные, все нормально. Как только мы наткнулись на совпадение, начинаем развлекаться. Запоминаем позицию совпавшего числа. Читаем следующее за ним. Если оно отличается, перезаписываем его в запомненную позицию. Начиная с этого момента, у нас возникает две позиции в файле - очередная позиция чтения и очередная позиция записи. По мере выявления совпадений эти две позиции будут все больше расходиться. Когда мы дочитаем до конца файла, нужно урезать длину файла с учетом найденных повторений. Теперь мы смещаемся ко второму числу, читаем его и повторяем ту же процедуру. И так до упора. Весело будет... |
![]() ![]() |
![]() |
Текстовая версия | 10.09.2025 0:42 |