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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 17:33   #1
good-spamer
Новичок
Джуниор
 
Регистрация: 16.02.2010
Сообщений: 3
По умолчанию Работа с файлами

Помогите исправить недочеты в программе. Среда Turbo Pascal 7.1

Программа должна считывать информацию из входного файла, сравнивать бинарное изображение с его негативом, в выходной файл выводить кол-во неправильно сформированных пикселей.

Код программы:
Код:
var z,x:text;a:array[1..100,1..100]of string[1];i,j,n,m,s:integer;b:string[1];
begin
  s:=0;
  assign(z,'negative.in');
  assign(x,'negative.out');
  reset(z);
  while not eof (z) do
  begin
    readln(z,n,m);
    for i:=1 to n do
    for j:=1 to m do
    begin
      if j<>m then read(z,a[i,j])
      else readln(z,a[i,j]);
    end;
    readln(z);
    for i:=1 to n do
    for j:=1 to m do
    begin
      if j<>m then read(b)
      else readln(b);
      if a[i,j]=b then s:=s+1;
    end;
  end;
  close(z);
  rewrite(x);
  write(x,s);
  close(x);
end.
Пример входного и выходного файла:

negative.in
3 4 {размеры изобрачения}
W B B W
B B B B
W B B W

B W W W
W W W B
B W W B

negative.out
2

Последний раз редактировалось Stilet; 17.02.2010 в 08:40.
good-spamer вне форума Ответить с цитированием
Старый 16.02.2010, 19:29   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

var z,x:text;a:array[1..100,1..100]of string[2];i,j,n,m,s:integer;b:string[2]; //"пиксели" разделены пробелом, поэтому на каждый "пиксель" приходится по 2 символа. Следует учесть, что в конце строки либо всегда должны быть пробелы, либо их не должно быть вообще, либо при сравнении использовать trim

{while not eof (z) do} //эта строка вообще не нужна, т.к у файла есть загаловок (то есть мы заранее знаем его структуру)

if j<>m then read(z,b) // не забываем указывать, что читаем из файла
else readln(z,b); // аналогично
if a[i,j]=b then s:=s+1;//if trim(a[i,j])=trim(b) then... - для снятия ограничения на пробелы
eoln вне форума Ответить с цитированием
Старый 17.02.2010, 16:38   #3
good-spamer
Новичок
Джуниор
 
Регистрация: 16.02.2010
Сообщений: 3
По умолчанию

Спасибо огромное!
Надо же было такие пустяки не заметить.
good-spamer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами BloodMaX Помощь студентам 7 11.03.2010 22:03
Работа с файлами sancheszone Паскаль, Turbo Pascal, PascalABC.NET 4 11.11.2009 14:21
c++ работа с файлами tipson Помощь студентам 9 27.06.2009 20:01
работа с файлами в с++ kermit Помощь студентам 13 09.06.2008 02:21
Работа с файлами Acros Помощь студентам 5 14.02.2007 18:40