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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2014, 10:24   #1
Кутяшка
Пользователь
 
Регистрация: 17.02.2014
Сообщений: 18
По умолчанию Обработка файлов. Типизированные файлы

Помогите с концовкой...
Нужно создать условия и вывод.

Даны целочисленные файлы f и g. Определите, совпадают ли компоненты файла f с компонентами файла g. Получите

номер первой компоненты, в которой файлы f и g отличаются между собой. В случае, когда один из файлов имеет n

компонент ( n>=0 ) и повторяет начало другого (более длинного) файла, ответом должно быть число n+1.

Код:
program L_11;
var 
  f, g: file of integer; 
  n, m: integer; 
  i: integer; 
  x, y: integer;
begin
  Assign(f, 'l.dat'); Assign(g, 'l1.dat');
  rewrite(f);
  for i := 0 to n do
  begin
    read(x);
    write(f, x);
  end;
  close(f);

  rewrite(g);
  for i := 0 to m do
  begin
    read(y);
    write(g, y);
  end;
  close(g);

  reset(f); reset(g);

  i := 0;

  repeat
    read(f, x); read(g, y); inc(i);

  until (eof(f)) or (eof(g)) or (x <> y);


end.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.


я позволил себе ещё отформатировать ваш код....


Последний раз редактировалось Serge_Bliznykov; 17.02.2014 в 11:10.
Кутяшка вне форума Ответить с цитированием
Старый 17.02.2014, 10:53   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Ну ииии? Добавьте после until
Код:
writeln('Номер отличающегося элемента = ',i);
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 17.02.2014, 11:13   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

для начала.
Если Вы хотите создавать файлы (а я бы не делал это в вашей программе и создание файлов вынес в отдельную процедуру или, лучше, в отдельную программу), то, по крайней мере, делайте это правильно!!

Цитата:
Код:
var 
  f, g: file of integer; 
  n, m: integer; 
....
for i := 0 to n do
  begin
    read(x);
    write(f, x);
  end;
  close(f);

  rewrite(g);  
  for i := 0 to m do
...
Постарайтесь угадать, чему равны переменные n и m (выделенные мною в вашем коде)...

Для начала создайте файлы корректно, тогда будет повод для дальнейшего разговора.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2014, 13:57   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Что, я задал невыполнимую задачу?!...

ладно.
теперь по сути вопроса.
лично я для решения поставленной задачи использовал примерно такой цикл:
Код:
  reset(f); reset(g);

  i := 1;
  isEqual := FileSize(f) = FileSize(g);

  while (not eof(f))  and (not eof(g))   do begin
    read(f, x); read(g, y); 
    if x<>y then begin
      isEqual := false;
      Break
    end
    else
      inc(i);
  end;

  if isEqual 
    then 
     WriteLn('Файл идентичны')
    else 
     WriteLn('Файлы отличаются в компоненте номер ',i, '  (отсчёт компонент в файле от единицы) ');
я код написал прямо в браузере, и, скорее всего, не очень оптимально (думаю, что можно обойтись без булевой переменной isEqual). Код я так же не проверял.
Но, думаю, что идея моего решения достаточно понятна, чтобы допилить код самостоятельно?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2014, 17:16   #5
Кутяшка
Пользователь
 
Регистрация: 17.02.2014
Сообщений: 18
По умолчанию Спасибо

Да, идею уловила, пойду переписывать)
Спасибо)))))
Кутяшка вне форума Ответить с цитированием
Старый 17.02.2014, 20:49   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Кутяшка Посмотреть сообщение
Да, идею уловила, пойду переписывать)
Спасибо)))))
Всегда пожалуйста.
Успехов!

Тем, кто сам пытается решить задания (а это видно по коду), на форуме всегда помогают советами и поправками!

Если возникнут вопросы в ходе решения - пишите в данную тему, вместе, всем миром разберёмся!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[pascal] Работа с комбинированным типом файлов + типизированные файлы Korres Помощь студентам 0 18.05.2012 21:16
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Типизированные файлы. Alex20 Помощь студентам 0 27.11.2011 13:46
Типизированные файлы surf135 Помощь студентам 1 14.06.2010 11:55
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42