Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 19.06.2011, 07:36   #1 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию Файлы в паскаль

Доброго времени суток!
Помогите решить задачу в Паскаль.

Дан файл с неизвестным количеством строк, сравнить каждую строку с массивом в программе увеличить счетчик совпадений.

З.Ы Каждый элемент массива меньше 10. В каждой строке 9 символов.

Заранее огромное спасибо.
shrek=) вне форума   Ответить с цитированием

Старый 19.06.2011, 07:36
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Отправлю вам схожие темы, рекомендую почитать

Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл
Паскаль, текстовые файлы

Старый 19.06.2011, 07:40   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Миша, а, собственно, в чем конкретно проблемы?
Vladimir_S вне форума   Ответить с цитированием
Старый 19.06.2011, 07:45   #3 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Проблема собственно в том, что я не могу понять алгоритм. Если можно опишите алгоритм, а я попробую написать.
shrek=) вне форума   Ответить с цитированием
Старый 19.06.2011, 07:48   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от shrek=) Посмотреть сообщение
Проблема собственно в том, что я не могу понять алгоритм. Если можно опишите алгоритм, а я попробую написать.
Тогда нужно уточнить - что за файл? Тип файла (хорошо бы, если текстовый)? В нем только строки из цифр или еще что-то может быть? А массив тоже состоит из 9 цифр?
Vladimir_S вне форума   Ответить с цитированием
Старый 19.06.2011, 07:52   #5 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Обыкновенный текстовый файл. В файле только строки записанные при помощи того массива с которым их (строки) нужно сравнить, только в при предыдущих запусках программы.
Файл является некой текстовой базой данных.
shrek=) вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 19.06.2011, 08:00   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Нет, Миша - так я ничего не понимаю.
Ну вот есть файл. В нем каждая строка - это набор 9 цифр? Или нет? Есть массив из 9 цифр. Так? Запускаем программу. Она нашла N совпадений строк с массивом. Дальше что? Записывает массив в файл последней строкой? Выводит число N? Куда - на экран? В общем, подробнее, пожалуйста.
Vladimir_S вне форума   Ответить с цитированием
Старый 19.06.2011, 08:22   #7 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Вообще это большая программа в большим количеством процедур. В программе, при каждом запуске, происходят расчеты и их результаты записываются в файл, таким образом формируется база, после чего нужно сравнить результаты текущих расчетов (массив) с результатами предыдущих расчетов (строка в файле).
Вот так-то так.
shrek=) вне форума   Ответить с цитированием
Старый 19.06.2011, 08:51   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

М-да... К сожалению, ни на один из своих конкретных вопросов я ответа не получил. Ну что же, тогда - как понял. Если понял условие не так - я не виноват.
Два варианта.

1. С преобразованием массива в число:
Код:
CONST
 M:Array[1..9] of Byte=(2, 8, 7, 7, 0, 5, 6, 7, 7);
VAR
 f:TEXT;
 C,D,J:LongInt;
 i,N:Integer;
BEGIN
 J:=1000000000;
 D:=0;
 For i:=1 to 9 do
  begin
   J:=J div 10;
   D:=D+M[i]*J;
  end;
 Assign(f,'D:\Base.txt');
 Reset(f);
 N:=0;
 Repeat
  Readln(f,C);
  If C=D then Inc(N);
 Until EoF(f);
 Writeln(N,' coincidences');
 Close(f);
 Append(f);
 Writeln(f,D);
 Close(f);
 Readln
END.
2. С преобразованием массива в строку:
Код:
CONST
 M:Array[1..9] of Byte=(2, 8, 7, 7, 0, 5, 6, 7, 7);
VAR
 f:TEXT;
 S,S1,Sch:String;
 i,N:Integer;
BEGIN
 S1:='';
 For i:=1 to 9 do
  begin
   Str(M[i],Sch);
   S1:=S1+Sch;
  end;
 Assign(f,'D:\Base.txt');
 Reset(f);
 N:=0;
 Repeat
  Readln(f,S);
  If S=S1 then Inc(N);
 Until EoF(f);
 Writeln(N,' coincidences');
 Close(f);
 Append(f);
 Writeln(f,S1);
 Close(f);
 Readln
END.
Вид файла данных:
Код:
960157736
287705677
678345668
287705677
378905543
067789897
287705677
Vladimir_S вне форума   Ответить с цитированием
Старый 19.06.2011, 08:56   #9 (permalink)
shrek=)
Студент БГПУ
 
Аватар для shrek=)
 
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
По умолчанию

Огромное спасибо!!!
shrek=) вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 09:06.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.