IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задача на строки, поиск слов, буквосочетаний, словосочетаний.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


Помогите написать программу, которая в тексте ищет слова, словосочетания, буквосочетания из списка.
В списке на каждой строчке расположен отдельный элемент для поиска.
uses crt;
type
st = array [1..10] of String;
rz = array [1..10] of Integer;

function isLetter(c : char) : boolean;
begin
if ((c >= 'A') and (c <= 'z')) or ((c >= #128) and (c <= #175)) or ((c >= #224) and ( c <= #241))
then
isLetter := true
else
isLetter := false;
end;


function FindNextWord(s : string; var b : integer; var w : string) : boolean;
var
i, j : integer;
begin
i := b;
w :='';
while not isLetter(s[i]) and (i <= length(s)) do
i := i + 1;
if i > length(s) then
begin
FindNextWord := false;
exit;
end;
while isLetter(s[i]) do
begin
w := w + s[i];
i := i + 1;
end;
b := i + 1;
if length(w) > 0 then
FindNextWord := true
else
FindNextWord := false;
end;


var
sp : st;
rez : rz;
s, w : string;
tx, str : text;
i, j, b : integer;
BEGIN
clrscr;
i := 0;
j := 0;
b := 1;
assign(tx, 'text.txt');
reset(tx);
assign(str, 'spisok.txt');
reset(str);
While not eof(str) do
begin
i := i + 1;
readln(str, sp[i]);
end;
While not eof(tx) do
begin
s := '';
readln(tx, s);
for j := 1 to i do
begin
while FindNextWord(s, b, w) = true do
begin
If w = sp[j] then
Inc(rez[j]);
end;
b := 1
end;
end;
for j := 1 to i do
WriteLn(sp[j], ' - ', rez[j]);
ReadLn;
close(tx);
close(str);
END.

Вот частичный.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.04.2024 5:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name