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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 19:51   #1
leonid_dinoel
 
Регистрация: 21.12.2012
Сообщений: 3
По умолчанию на завтра нужно! паскаль

Пусть есть файлы a и b, компоненты которых являются целыми числами упорядочены по неубыванию. Получить в файле c все числа файлов a и b без повторений. Файл должен быть упорядочен по возростанию.

Я сделал через массивы, но училка говорит, что это нужно сделать при помощи сортировки слиянием. помогите, пожалуйста!
leonid_dinoel вне форума Ответить с цитированием
Старый 23.12.2012, 20:51   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

добавь к своему массиву сортировку слиянием, да и все. В чем проблема-то?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 23.12.2012, 23:07   #3
leonid_dinoel
 
Регистрация: 21.12.2012
Сообщений: 3
По умолчанию

так в том то й дело, что массив не нужно вообще использывать, как она говорит
leonid_dinoel вне форума Ответить с цитированием
Старый 23.12.2012, 23:22   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
        Read (f1, a);
        Read (f2, b);
        while (not  (eof(f1))) or (not (eof (f2))) do begin
                if a > b then begin
                        WriteLn (b);
                        ReadLn (f2, b)
                end
                else begin
                        WriteLn (a);
                        ReadLn (f1, a)
                end
        end;
Не проверял..
Poma][a вне форума Ответить с цитированием
Старый 23.12.2012, 23:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Sciv
добавь к своему массиву сортировку слиянием, да и все.
да ну, бросьте!
Не нужны тут ни массивы, ни сортировки.
Банально читаем элемент из одного файла и элемент из другого файла в две переменные. сравниваем их. Если они одинаковые, одну записываем (любую), и читаем из файла, если значения переменных не равны друг другу, то записываем меньшое значение и читаем из файла.
всё это делаем в цикле. Не забывая при чтении из каждого файла следить, что мы не достигли конец данного файла (если какой-то из файлов закончился, то из него уже не читаем, но цикл повторяем.
всё вышесказанное повторяется в цикле, пока не закончатся оба файла.
всё. профит.


то, что я описал выше, по сути это и есть сортировка слиянием!

UPDATE
примерно то, что я говорил и описал Poma][a в своём примере кода!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.12.2012, 23:37   #6
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Если они упорядочены, то сделай так:
Код:
.......
if FileSize(a)>FileSize(b) then
begin
while not (EoF(b)) do
begin
readln(a,i);
readln(b,j);
if i>j then
while (i>j)and(not(EoF(b))) do
begin
writeln(c,j);
readln(b,j);
end;

else
if i>j then
while i<j do
begin
writeln(c,i);
readln(a,i);
end

else writeln(c,j);// или writeln(c,i); без разницы, т.к. i=j
end;
while not(eoF(a)) do
begin
readln(a,i);
writeln(c,i);
if i<>j then
end;
end
else 
if FileSize(a)<FileSize(b) then
while not (EoF(a)) do
....
{тут то же самое}
....
Update
Ага, опередили.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный масив ( оч нужно до завтра( 11-13:00)) senspwnz Паскаль, Turbo Pascal, PascalABC.NET 2 10.10.2012 23:04
Двумерный массив.(((нужно до завтра. Лександра Помощь студентам 0 13.05.2012 13:48
(СИ)нужно решить 2 задачи до завтра! VKhan Помощь студентам 0 21.12.2011 18:00
Программирование на СИ.нужно на завтра. VKhan Помощь студентам 0 21.12.2011 17:56
(Паскаль текстовые задачи))(Завтра Экзамен нужно сдать. Димон93 Помощь студентам 1 17.06.2011 05:03