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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 21:18   #1
ksu04061992
Пользователь
 
Регистрация: 29.11.2011
Сообщений: 23
Печаль Работа с файлами

Очень прошу, помогите решить задачу!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!

Даны числовые с целыми компонентами файлы f и g. Запишите в файл h все совпадающие компоненты файлов f и g.
ksu04061992 вне форума Ответить с цитированием
Старый 29.11.2011, 21:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Динамическим массивом решать можно? Что препод говорит? Какая методика решения?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.11.2011, 22:12   #3
ksu04061992
Пользователь
 
Регистрация: 29.11.2011
Сообщений: 23
По умолчанию

Методика решения любая, главное найти совпадающие компоненты в обоих файлах и записать их в другой
ksu04061992 вне форума Ответить с цитированием
Старый 29.11.2011, 22:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну показывай что не получается. Будет время - завтра посмотрю. Или кто из форумчан если сегодня свободен глянет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.11.2011, 23:17   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы сделал вложенные циклы. пусть это не очень эффективно, зато просто и надёжно.

внешний цикл по одному из файлов (например по f), во внутреннем цикле каждый раз бы делал seek(f, 0) - на начало файла g и перебирал его элементы, сравнивая с текущим элементом из файла f)
если совпали - записываем элемент в файл h и прерываем внутренний цикл.
примерно так (это код перебора и записи полностью):
Код:
Reset(g);
Reset(f);
Rewrite(h);
while Not eof(f) do begin
   Read(f, m);
   seek(g, 0);
   while Not Eof(g) do begin
      Read(g, k);
      if (m=k) then begin
         Write(h, m);
          Break;
      end;
   end;
end;
Close(h);
Close(f);
Close(g);
единственный нюансик, который желательно учесть:
если в файле f и g несколько повторяющихся значений, то они все попадут в выходной файл. Но я не вижу явного указания в условиях задачи, чтобы подобное было недопустимым...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2011, 23:47   #6
Sayto
 
Регистрация: 29.11.2011
Сообщений: 6
По умолчанию

Код:
program zd1;
var
   f1,f2,f3,i,j,k,m:integer;
   g,f:text;
   h:text;
   ff,gg,hh:array [1..100] of integer;
begin
     assign(f,'file1.txt');
     assign(g,'file2.txt');
     assign(h,'file3.txt');
     reset(f);
     reset(g);
     rewrite(h);
     f1:=0;
     f2:=0;
     f2:=0;
     while not EOF(f) do begin
           inc(f1);
           read(f,ff[f1]);
     end;
     while not EOF(g) do begin
           inc(f2);
           read(g,gg[f2]);
     end;
     for i:=1 to f1 do
         for j:=1 to f2 do
             if(ff[i]=gg[j])then writeln(h,ff[i]);
     {reset(h);
     while not EOF(h) do begin
           inc(f3);
           read(h,hh[f3]);
     end;
     m:=f3-1;
     for i:=1 to m do begin
         for j:=i+1 to m do begin
             if (hh[i]=hh[j]) then begin
             for k:=i to m-1 do
                 hh[k]:=hh[k+1];
                 m:=m-1;
             end;
         end;
     end;
     rewrite(h);
     for i:=1 to m do writeln(h,hh[i]);}
     close(f);
     close(g);
     close(h);
end.
Можно так если не хочешь чтобы в записи были повторы разкоменти то что в скобках
Sayto вне форума Ответить с цитированием
Старый 30.11.2011, 01:53   #7
ksu04061992
Пользователь
 
Регистрация: 29.11.2011
Сообщений: 23
По умолчанию

Спасибо всем большое за помощь !
ksu04061992 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами... Natashka Milashka Visual C++ 0 14.05.2011 00:59
работа с файлами imperceptible4462 Помощь студентам 0 24.10.2010 10:09
Работа с файлами СИ Stases Общие вопросы C/C++ 7 03.01.2010 14:28
Работа с файлами Smith777 Помощь студентам 4 23.02.2008 05:08
Работа с файлами Dim@ Помощь студентам 1 26.12.2007 22:43