Помогите пожалуйста!!У меня задача, которую я не понимаю!!Все сайты облазила ни где не могу найти!!Вот условие: Дан файл содержащий текст на русском языке и некоторые два слова. Определить, сколько раз они встречаются в тексте и сколько из них непосредственно друг за другом.Я вас умоляю помогите!
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; while not eof(f) do begin flag:=true; new(px); readln(f, px^); while flag=true do begin k:=pos(' ',px^); if k<>0 then begin st:=copy(px^,1,k); delete(px^,1,k); if lenght<st>maxd then begin maxd:=lenght<st>; s1:=st; end; flag:=true; end; if k=0 then begin s:=copy<px^,1,lenght<px^>>; if lenght<st>maxd then begin maxd:=lenght<st>; s1:st; end; flag:=false; end; end; dispose<px>; end; close<f>; reset<f>; while not eof<f> do begin new<px>; readln<f,px^>; k:=pos<s1,px^>; if k<>0 then ch:ch+1; dispose<px>; end; textcolor<2>; writeln<'samoe dlinnoe slovo ',s1,' ego dlina ',maxd,' povtor ',ch>; readln; end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.