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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2013, 01:18   #1
Артемdgty
 
Регистрация: 08.10.2013
Сообщений: 9
По умолчанию Паскаль(Файлы). Два типизированных файла одинакового размера. Получить третий файл как сумму элементов.

Задание:
Имеется два типизированных файла одинакового размера, элементами, которых являются числа. Получить третий файл: каждый элемент, которого равен сумме соответствующих элементов заданных файлов.
(p.c Помогите, пожалуйста, с кодом, числа можно брать любые) Заранее спасибо)
Артемdgty вне форума Ответить с цитированием
Старый 08.10.2013, 01:42   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Примерно:
Код:
assign(f1, 'f1.dat');
assign(f2, 'f2.dat');
assign(f3, 'f3.dat');
reset(f1);
reset(f2);
rewrite(f3);
while not eof(f1) do
begin
  read(f1, a);
  read(f2, b);
  write(f3, a + b);
end;
close(f1);
close(f2);
close(f3);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.10.2013, 15:14   #3
Артемdgty
 
Регистрация: 08.10.2013
Сообщений: 9
По умолчанию

Спасибо большое)
Артемdgty вне форума Ответить с цитированием
Старый 08.10.2013, 19:08   #4
Артемdgty
 
Регистрация: 08.10.2013
Сообщений: 9
По умолчанию

а еще способы есть, например через функции или процедуры?
Артемdgty вне форума Ответить с цитированием
Старый 08.10.2013, 19:45   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

В смысле, через функции или процедуры? Даже не знаю, что тут можно обернуть в функцию.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.10.2013, 19:55   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Даже не знаю, что тут можно обернуть в функцию.
Всё что угодно
Код:
function InitF1 () : boolean;
begin
{$I-}
assign(f1, 'f1.dat');reset(f1));
{$I+}
 
InitF1 :=  ioresult = 0;

end;

if not InitF1 then
   WriteLn ('Ужасъ')
Poma][a вне форума Ответить с цитированием
Старый 08.10.2013, 20:22   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Всё что угодно
Да чего уж там
Код:
procedure af1();
begin
  assign(f1, 'f1.dat');
end;

procedure af2();
begin
  assign(f2, 'f2.dat');
end;

procedure af3();
begin
  assign(f3, 'f3.dat');
end;

procedure rf1();
begin
  reset(f1);
end;

procedure rf2();
begin
  reset(f2);
end;

procedure rf3();
begin
  rewrite(f3);
end;

procedure whilef();
begin
  while not eof(f1) do
  begin
    read(f1, a);
    read(f2, b);
    write(f3, a + b);
  end;
end;

procedure cf1();
begin
  close(f1);
end;

procedure cf2();
begin
  close(f2);
end;

procedure cf3();
begin
  close(f3);
end;



af1();
af2();
af3();
rf1();
rf2();
rf3();
whilef();
cf1();
cf2();
cf3();
Кстати, можно попробовать (на ideone проверил компилируемость):
Код:
type
  intfile = file of integer;
var
  f1, f2, f3: intfile;

function f(var b: intfile; path: string; for_read: boolean): boolean;
begin
  {$I-}
  assign(b, path);
  if for_read then
    reset(b)
  else
    rewrite(b);
  {$I+}
  f := ioresult = 0;
end;

begin
  f(f1, 'f1.dat', true);
  f(f2, 'f2.dat', true);
  f(f3, 'f3.dat', false);
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.10.2013, 20:26   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Кстати, можно попробовать (на ideone проверил компилируемость):
А в честь чего он не должен компилироваться?

Цитата:
Код:
af1();
af2();
af3();
rf1();
rf2();
rf3();
whilef();
cf1();
cf2();
cf3();
А еще так :
Код:
procedure af ();
begin
af2;
af3;
end;

procedure rf ();
begin
rf1; rf2; rf3
end;
Чую ТС будет доволен такими процедурками
Зато здесь явно показан принцип абстрактности
Poma][a вне форума Ответить с цитированием
Старый 08.10.2013, 20:32   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
А в честь чего он не должен компилироваться?
По-моему, в "каноническом" (turbo pascal) так не получалось сделать - могу ошибаться.
Цитата:
Сообщение от Poma][a Посмотреть сообщение
А еще так...
Да-да. Еще пара вложенных, и нормально будет.
Вот как опасно спрашивать про другие способы решения
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы.Дан символьный файл f. Получить копию файла в файле g (на Delphi) Zaraaa Помощь студентам 5 06.10.2013 21:42
Дано два файла. Получить третий, содержащий поочередно строки исходных двух файлов. 95% Помощь студентам 0 07.01.2013 16:54
Сравнение двух bmp картинок одинакового размера Artiomtb Помощь студентам 2 15.09.2012 08:50
Два текстовых файла. Записать в третий те строки, которые есть и в первом, и во втором файлах (Паскаль) dark999 Паскаль, Turbo Pascal, PascalABC.NET 4 28.03.2011 21:41
дано два файла. получить третий,содержащий поочередно строки исходных двух файлов. HyvAchoK Паскаль, Turbo Pascal, PascalABC.NET 1 18.12.2008 10:51