Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
WhiteFang
Помогите написать программу, которая в тексте ищет слова, словосочетания, буквосочетания из списка.
В списке на каждой строчке расположен отдельный элемент для поиска.
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.

Вот частичный.
WhiteFang
Неужели никто не поможет, или скажите хотя бы где могу найти =)
Renbo

Const
r: set of char=[',','.',';','!','?',' ',':','"',''''];
VAR
S,W,P :String;
i,ns :integer;

BEGIN
WRITE ('введите сроку: ');
READLN(S);
i:=1; W:='';
WHILE i <= length(S) do
begin
IF not(S[i] in r) then
begin
ns:=i;
WHILE (i<=length(S)) and not(S[i] in r) do
inc(i);
W:=copy(S,ns,i-ns);





Вот алгоритм выделения слова из строки, слово - W. Ну а теперь соответственно сравнивай его с тем что тебе надо, я просто не врубил в задание твоё мальца ))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.