Помогите пожалуйста!!У меня задача, которую я не понимаю!!Все сайты облазила ни где не могу найти!!Вот условие: Дан файл содержащий текст на русском языке и некоторые два слова. Определить, сколько раз они встречаются в тексте и сколько из них непосредственно друг за другом.Я вас умоляю помогите!
CaMPeR
12.04.2007 21:17
Мне нужно решение абсолютно идентичной задачи! Уже гигабайт траффика сжег пока искал и так и не нашел! Просьба большая не давать ссылки (там все равно нет того что нужно, я смотрел по 10 раз). Хотя бы часть задачи может у кого нибудь есть или просто похожая! Выручайте!
считали строку. с помощью pos посмотрели, есть ли надежда обнаружить хотя бы одно из слов. если есть -разбили строку на слова. посчитали, сколько раз встречается первое, сколько второе. нашли, где они по соседству. считали следующую строку...
на каком этапе трудности?
CaMPeR
12.04.2007 22:23
Сам алгоритм действий я знаю. Как эти действия реализовать в Паскале не знаю. Дали похожую задачу. Что в ней нужно изменить для получения нужного результата? Тему я читал. Это что либо даст тому у кого хорошая база знаний. У меня пока ее нет. Сдавать вот уже завтра. Было бы больше времени.
uses
crt;
var
f:text;
px:^string;
st,s1^string;
flag^boolean;
k,d,maxd,ch:integer;
begin
clrscr;
assign<f, 'c:\tp70\bin\program.txt');
reset(f);
maxd:=1;
whilenot eof(f) dobegin
flag:=true;
new(px);
readln(f, px^);
while flag=true dobegin
k:=pos(' ',px^);
if k<>0thenbegin
st:=copy(px^,1,k);
delete(px^,1,k);
if lenght<st>maxd thenbegin
maxd:=lenght<st>;
s1:=st;
end;
flag:=true;
end;
if k=0thenbegin
s:=copy<px^,1,lenght<px^>>;
if lenght<st>maxd thenbegin
maxd:=lenght<st>;
s1:st;
end;
flag:=false;
end;
end;
dispose<px>;
end;
close<f>;
reset<f>;
whilenot eof<f> dobegin
new<px>;
readln<f,px^>;
k:=pos<s1,px^>;
if k<>0then ch:ch+1;
dispose<px>;
end;
textcolor<2>;
writeln<'samoe dlinnoe slovo ',s1,' ego dlina ',maxd,' povtor ',ch>;
readln;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.