![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#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. в каждом файле по одной строке входных данных. Последний раз редактировалось человек&кошка; 23.01.2012 в 13:58. |
![]() |
![]() |
![]() |
#2 | |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
![]() Цитата:
Ты исходники покажи...
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.12.2007
Сообщений: 788
|
![]()
0) Задаешь две переменные-счетчика (например a1 и a2), выставляешь их равным 1
1) Открываешь на чтение оба файла 2) делаешь Seek(f1,a1), Seek(f2,a2); 3) Считываешь оттуда переменные 4) Сравниваешь их, меньшую записываешь в f3 и увеличиваешь соответствующий счетчик на 1 (если меньшее оказалось в первом файле - то a1) В итоге в третьем файле будет то что нужно По поводу второй задачи - можно запоминать последний переписанный из f3 элемент, и дописывать только тогда, когда текущий элемент и этот "запомненный" элемент различаются
благодарность - сюда (не забываем писать от кого)
|
![]() |
![]() |
![]() |
#4 |
Lawful Evil
Участник клуба
Регистрация: 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) |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 22.01.2012
Сообщений: 97
|
![]()
f:file of integer;
Модераторам: не баньте, у мя такие полезные советы, они стоющие
|
![]() |
![]() |
![]() |
#7 | ||
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]() Цитата:
Цитата:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
||
![]() |
![]() |
![]() |
#9 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Признаю, неправ.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 22.01.2012
Сообщений: 97
|
![]() Код:
Модераторам: не баньте, у мя такие полезные советы, они стоющие
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработайте алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм. | 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 |