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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2011, 10:51   #1
KillJoy
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 20
По умолчанию Поиск совпадений

Имеются 2 файла формата *.txt. В каждом из них записаны шестизначные числа (каждое с новой строки). Нужно подсчитать количество чисел, имеющихся в обоих файлах.
KillJoy вне форума Ответить с цитированием
Старый 29.07.2011, 11:23   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Нужно подсчитать количество чисел, имеющихся в обоих файлах.
Одинаковых в обоих файлах? Или уникальных? Или что надо то?!
И ещё, в каждом файле могут быть повторы?

приведите пример содержимого файлов (буквально пяток значений) и ожидаемый вами ответ... тогда можно будет помочь алгоритмом (а может даже и готовым кодом..)


HINT. Именно чистый Pascal ?
Если бы можно было задействовать Delphi, то испольуя TStringList в пару/другую строчек кода можно решить подобные задачи!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.09.2011, 11:53   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Или что надо то?!
Я думаю, надо количество общих чисел. То есть тех, которые встречаются и в первом, и во втором файле (не считая повторы).

KillJoy, если я прав, то решать можно примерно вот так:
Код:
var
  f,g: text;
  a,b,i,j,n: LongInt;

begin
  Assign(f,'dat1.txt');
  Assign(g,'dat2.txt');
  n:= 0;
  i:= 0;
  Reset(f);
  while not EoF(f) do begin
    ReadLn(f,a);
    Inc(i);
    Reset(f);
    j:= 0;
    repeat
      ReadLn(f,b);
      Inc(j);
    until a=b;
    if i=j then begin
      Reset(g);
      while not EoF(g) do begin
        ReadLn(g,b);
        if a=b then begin
          Inc(n);
          WriteLn(a); {промежуточная печать совпадающих чисел, убрать в конечном варианте}
          break
        end
      end;
    end
    else for j:=j to i-1 do ReadLn(f)
  end;
  Close(f);
  Close(g);
  WriteLn('найдено одинаковых чисел: ',n);
  ReadLn
end.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск совпадений в нескольких таблицах Macklay SQL, базы данных 13 29.07.2011 15:06
Поиск совпадений Claster Общие вопросы Delphi 4 22.06.2011 17:34
Поиск совпадений в ListBox NiKiToZZ- Помощь студентам 7 05.01.2011 10:54
Поиск совпадений в БД _PROGRAMM_ PHP 6 21.05.2010 13:53
Поиск совпадений mistx Microsoft Office Excel 22 14.08.2009 13:41