Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2012, 13:55   #1
человек&кошка
Пользователь
 
Аватар для человек&кошка
 
Регистрация: 08.01.2012
Сообщений: 21
Печаль Сливание файлов. Алгоритм.

Здравствуйте, форумчане.

Задали мне такое задание в институте по программированию:
"дано два текстовых файла, в которых упорядочены числа в одинаковом порядке, сформировать третий текстовый файл, в котором будут числа из 1 и 2 файла также упорядочены, а потом нужно из 3 файла сделать четвертый, в котором будет то же самое, только чтобы числа не повторялись. ну и еще написать процедуру, которая печатает на экран содержимое файла и вывести их все)"

пример:
f1: 1 3 5 7 f2:3 5 6 8 после завершения программы -
f3:1 3 3 5 5 6 7 8 f4:1 3 5 6 7 8

И условия для выполнения: массивы нельзя, глобальные переменные нельзя, дополнительные файлы нельзя, сортировки там не нужны, файлы исходные уже отсортированы.

Ну, вообще, сделал я программу, всё работает, она в прикреплении.
Но на сдаче преподаватель ещё добавил, что ещё нельзя использовать строки, и чтобы файлы были типизированные integer.
Собственно, вопрос: как это можно реализовать, и как сравнивать между собой строки в файлах?
Да, p.s. в каждом файле по одной строке входных данных.
Вложения
Тип файла: rar prog.rar (23.6 Кб, 9 просмотров)

Последний раз редактировалось человек&кошка; 23.01.2012 в 13:58.
человек&кошка вне форума Ответить с цитированием
Старый 23.01.2012, 13:59   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Ну, вообще, сделал я программу, всё работает, она в прикреплении.
Программа-то зачем? оО
Ты исходники покажи...
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 23.01.2012, 14:01   #3
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

0) Задаешь две переменные-счетчика (например a1 и a2), выставляешь их равным 1
1) Открываешь на чтение оба файла
2) делаешь Seek(f1,a1), Seek(f2,a2);
3) Считываешь оттуда переменные
4) Сравниваешь их, меньшую записываешь в f3 и увеличиваешь соответствующий счетчик на 1 (если меньшее оказалось в первом файле - то a1)
В итоге в третьем файле будет то что нужно

По поводу второй задачи - можно запоминать последний переписанный из f3 элемент, и дописывать только тогда, когда текущий элемент и этот "запомненный" элемент различаются
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 23.01.2012, 14:05   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

На вскидку, алгоритм:
1. Считываем из файлов 1 и 2 первые символы
1.1. Если они равны друг другу, записываем их в третий файл
1.2. Если они не равны друг другу, то записываем меньше в третий файл и считываем из файла (меньшего числа) следующее.
1.3 Если достигнут конец какого-то из файлов, то просто переписываем оставшиеся (в другом файле) числа в третий файлы.

Таким образом получаем файл с отсортированным массивом.

Пункт 2.
2. Считываем i`й (от 1го элемента и далее до eof()) элемент из файла. Считываем i+1`й элемент из файла, сравниваем.
2.1. Если элементы равны - удаляем элемент с позиции i, значению i присваиваем i+1, считываем i+1 (уже следующий) элемент
2.2. Если неравны - значению i присваиваем i+1, считываем i+1 (уже следующий) элемент
Повторять пока i+1 <> eof().
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 23.01.2012, 16:40   #5
arrowsf1
Пользователь
 
Аватар для arrowsf1
 
Регистрация: 22.01.2012
Сообщений: 97
По умолчанию

f:file of integer;
Модераторам: не баньте, у мя такие полезные советы, они стоющие
arrowsf1 вне форума Ответить с цитированием
Старый 24.01.2012, 06:48   #6
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

arrowsf1, и как же это мы раньше не догадались, что задача решается объявлением переменной? Спасибо, о великий гуру программирования :D лол
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 24.01.2012, 07:35   #7
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Цитата:
f:file of integer;
Цитата:
дано два текстовых файла
Хоть бы читать поучились.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 24.01.2012, 08:12   #8
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Цитата:
Сообщение от человек&кошка Посмотреть сообщение
Здравствуйте, форумчане.

"дано два текстовых файла...
преподаватель ещё добавил, что ещё нельзя использовать строки, и чтобы файлы были типизированные integer.
Просто ТС двояко выразился
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 24.01.2012, 08:14   #9
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Признаю, неправ.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 24.01.2012, 11:50   #10
arrowsf1
Пользователь
 
Аватар для arrowsf1
 
Регистрация: 22.01.2012
Сообщений: 97
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
Признаю, неправ.
Код:
Но на сдаче преподаватель ещё добавил, что ещё нельзя использовать строки, и чтобы файлы были типизированные integer.
Собственно, вопрос: как это можно реализовать, и как сравнивать между собой строки в файлах?
Так в этом собственно и был вопрос, как задать не текстовый фаил, а цифровой
Модераторам: не баньте, у мя такие полезные советы, они стоющие
arrowsf1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработайте алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм. iamhated Помощь студентам 1 15.01.2012 16:24
Разработайте алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм iamhated Помощь студентам 1 14.01.2012 16:22
как понять алгоритм и среду решения для скачивания файлов genhoo Помощь студентам 4 05.05.2011 15:19
Структуры и база данных... сливание и пересечение Ruslan08 Помощь студентам 5 11.04.2011 16:19
Алгоритм вычисления контрольной суммы файлов young_W Общие вопросы Delphi 2 11.09.2007 22:22