19.06.2011, 07:36 | #1 (permalink) |
Студент БГПУ
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
|
Файлы в паскаль
Помогите решить задачу в Паскаль. Дан файл с неизвестным количеством строк, сравнить каждую строку с массивом в программе увеличить счетчик совпадений. З.Ы Каждый элемент массива меньше 10. В каждой строке 9 символов. Заранее огромное спасибо. |
19.06.2011, 07:36 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Отправлю вам схожие темы, рекомендую почитать Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл Паскаль, текстовые файлы |
19.06.2011, 07:48 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Тогда нужно уточнить - что за файл? Тип файла (хорошо бы, если текстовый)? В нем только строки из цифр или еще что-то может быть? А массив тоже состоит из 9 цифр?
|
19.06.2011, 07:52 | #5 (permalink) |
Студент БГПУ
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
|
Обыкновенный текстовый файл. В файле только строки записанные при помощи того массива с которым их (строки) нужно сравнить, только в при предыдущих запусках программы.
Файл является некой текстовой базой данных. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
19.06.2011, 08:00 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Нет, Миша - так я ничего не понимаю.
Ну вот есть файл. В нем каждая строка - это набор 9 цифр? Или нет? Есть массив из 9 цифр. Так? Запускаем программу. Она нашла N совпадений строк с массивом. Дальше что? Записывает массив в файл последней строкой? Выводит число N? Куда - на экран? В общем, подробнее, пожалуйста. |
19.06.2011, 08:22 | #7 (permalink) |
Студент БГПУ
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
|
Вообще это большая программа в большим количеством процедур. В программе, при каждом запуске, происходят расчеты и их результаты записываются в файл, таким образом формируется база, после чего нужно сравнить результаты текущих расчетов (массив) с результатами предыдущих расчетов (строка в файле).
Вот так-то так. |
19.06.2011, 08:51 | #8 (permalink) |
Специалист
Регистрация: 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. Код:
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 |
19.06.2011, 08:56 | #9 (permalink) |
Студент БГПУ
Регистрация: 06.02.2010
Сообщений: 420
Записей в дневнике: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 470
|
Огромное спасибо!!!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|