Программа частотного словаря сочетаний слов

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

er;: array of string;: array of char;, s1: string;: string;:boolean;

 

. Clear; (slova, 0); // обнуление словаря

setlength (razd, 0); // обнуления списка разделителей

i:=0;:=0;:=1;

//////////////////////////// :=memo3. Lines[0]; // j<= length(s) do // //

setLength (razd, p+1); //

razd[p]:=s[j]; // // создание массива с разделителями

p:=p+1; // :=j+2; // ; //

/////////////////////////// (razd, length(razd)+1);[length(razd) - 1]:= #13;(razd, length(razd)+1);[length(razd) - 1]:= #9;

 

:= 0;

j:= 1;

i:= 0;

 

t:=GetTickCount(); // начало замера времени

 

whilei<>memo1. Lines. Count do:= memo1. Lines[i]; // просмотрi-й строки

( , s)=1 do delete (s, 1,1); // удаляемотступы

 

{Чтобы символ - не определялся как слово}

h:= 1;h<=length(s) - 2 dop1:= 0 to length(razd) - 1 dos[h]=- then if s [h+1]=razd[p1] then(s, h, 1);:= h+1;;

 

whilelength (s)>0 do // если конец строки, то переход на следующую

 

begin

k:= 0;

e:= -1;

 

{Проверка строки на наличие разделителя}

while k<= length(razd) - 1 do(s[j]= razd[k]) then e:= 1;:= k+1

end;

 

ife>0 then // если проверяемый символ оказался разделителем

begin

// Заносим слово в массив slova

////////////////////////////////////////////////////////////////////////// // s[j]=. then s1:= copy (s, 1, j) else if s[j]=! // s1:= copy (s, 1, j) else if s[j]=? then s1:= copy (s, 1, j) // s1:= copy (s, 1, j-1); // 1:= AnsiUpperCase(s1); // перевод всех букв в слове в верхний регистр //

if (length (s1)=0) or (s1=-) then begin j:= j+1; delete (s, 1,1); end // begin // (slova, p+1); // [p]:=s1; // := p+1; // (s, 1, j); // :=1; end; end; end // j:= j+1; // ; //

 

i:= i+1; //

end; //

//////////////////////////////////////////////////////////////////////////

 

{Очистка слов от оставшихся разделителей}

For i:=0 to length(slova) - 1 dok:=0 to length(razd) - 1 do(razd[k], slova[i])>0 do delete (slova[i], pos (razd[k], slova[i]), 1);

 

{Составляем фразы из полученных слов}

p:= 0; i:= 0; then(frazi, p+1);[p]:=slova[i]+ +slova [i+1];:= p+1;;:= i+1;;

 

{Удаление оставшихся знаков препинания}

fori:= 0 toLength(frazi) - 1 do

begin:= frazi[i];:= length (s);s[j]=. then delete (s, j, 1) else if s[j]=!delete (s, j, 1) else if s[j]=? then delete (s, j, 1); [i]:= s;

end;

 

{Подсчет и удаление одинаковых фраз}

h:= High(frazi);:= 0;p then[i]:= IntToStr(e) + …….. + Sbegin x:= i+1;;(i);;(frazi, h + 1);

 

{Чистка словаря отсловосочетаний с пустыми строками вместо слов}

k:=0;k <= length(frazi) - 1 do:= length (frazi[k]);( , frazi[k])=p then begin for i:=K+1 to Length(frazi) - 1 do[i-1]:= frazi[i];(frazi, Length(frazi) - 1); end; inc(k);

;

 

t:=GetTickCount() - t; // конец замера времени

 

{Сортировка фраз по алфавиту}

repeat

priz:=false;

fori:= 0 to length(frazi) - 2 do:= pos (., frazi[i])+8;:= pos (., frazi [i+1])+8;:= copy (frazi[i], p, length (frazi[i]));:= copy (frazi [i+1], p1, length (frazi[i+1]));(s>s1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;

 

{Вывод словаря в мемо}

Memo2. Clear;

fori:= 0 to length(frazi) - 1 do. Lines. Add ( );. Lines[i]:=frazi[i];;. Caption:= Времяработы t=+inttostr(t);;

TForm1. Button4Click (Sender: TObject); // Сохранить:TSaveDialog;:= TSaveDialog. Create(self);. InitialDir:= GetCurrentDir;

// Разрешаемсохранятьфайлытипа.txt и.rtf. Filter:= Text Files|*.txt|Text Files|*.rtf;

// Отображение диалог сохранения файла

ifsaveDialog. Execute:=saveDialog. FileName;. Lines. SaveToFile(Slvr);;;

 

TForm1. Button5Click (Sender: TObject); // Сортировка, p, p1: integer;, s, s1: string;:boolean;

{Сортировкапоалфавиту}RadioGroup1. ItemIndex=0 then begin:=false;:= 0 to length(frazi) - 2 do:= pos (., frazi[i])+8;:= pos (., frazi [i+1])+8;:= copy (frazi[i], p, length (frazi[i]));:= copy (frazi [i+1], p1, length (frazi[i+1]));(s>s1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;

{Вывод в мемо}. Clear;:= 0 to length(frazi) - 1 do. Lines. Add ( );. Lines[i]:=frazi[i];;

begin

 

{Сортировкапочастоте}:=false;:= 0 to length(frazi) - 2 do:= pos (., frazi[i]);:= pos (., frazi [i+1]);

:= copy (frazi[i], 1, p-1);:= copy (frazi [i+1], 1, p-1);p<p1 then begin

:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;(s<s1) and (p=p1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;

 

{Вывод в мемо}. Clear;:= 0 to length(frazi) - 1 do. Lines. Add ( );.lines[i]:= frazi[i];; end;;

TForm1. Button6Click (Sender: TObject); // Поиск:string;, k, j, p, p1:integer;, s1, buf: string;:boolean;. Caption:=;:=false;:= 0 to length(frazi) - 2 do:= pos (., frazi[i])+8;:= pos (., frazi [i+1])+8;:= copy (frazi[i], p, length (frazi[i]));:= copy (frazi [i+1], p1, length (frazi[i+1]));(s>s1) then:= frazi[i];[i]:= frazi [i+1];[i+1]:=buf;:=true;;;=false;:=AnsiUpperCase (edit1. Text);:=0; j:=length(frazi) - 1;:=0; s then:= k + 1if obr< s then:= k - 1;;

s= obr then1. Caption:=Словосочетание +s+ встречается в тексте +s1+ раз(-а)

elseLabel1. Caption:=Словосочетание не найдено;

 

if Edit1. Text= then label1. Caption:=;;

 

procedure TForm1. Edit1KeyPress (Sender: TObject; var Key: Char);Key = #13 then Button6Click(Button6);;.