- •Оглавление
- •Введение
- •1 Теоретическая часть
- •2 Практическая часть
- •2.1 Описание объектов, свойств, методов
- •2.2 Формы и основные модули текста программы в среде Delphi
- •2.3 Результаты тестирования программного продукта
- •2.4 Графическое представление результатов
- •2.5 Анализ результатов
- •Заключение
- •Список использованных источников
2 Практическая часть
2.1 Описание объектов, свойств, методов
При разработке указанного приложения использовались объекты и методы, представленные в таблицах 2.1 и 2.2 соответственно.
Таблица 2.1 – Описание объектов приложения
Memo1 |
Поле для вывода исходного текста, загруженного из файла. |
Memo2 |
Поле для вывода результатов. |
Button2 |
Загрузка текста из файла. |
Button3 |
Очистить поля для вывода. |
Button4 |
Определение сложности предложений. |
Label1 |
Содержит надпись «Итоговый текст». |
Label2 |
Содержит надпись «Результаты». |
Таблица 2.2 – Описание основных методов приложения
Procedure TForm1.Button4Click() |
Определение сложности предложений. Вывод результатов в поле memo2 и внешний файл. |
Procedure TForm1.Button2Click() |
Открытие исходного файла с текстом. |
Procedure TForm1.N3Click() |
Выход из программы. |
procedure TForm1.Button3Click() |
Очищает поля данных в memo1 и memo2. |
Procedure TForm1.N2Click() |
Открытие окна содержащего информацию об авторе. |
2.2 Формы и основные модули текста программы в среде Delphi
Для решения поставленной задачи разработана система диалоговых окон, посредством которых достигается главная цель проекта.
Создана главная форма программы (рисунок 2.1).
Рисунок 2.1 – Главная форма программы
Основная процедура программы для решения поставленной задачи представлена ниже:
procedure TForm1.Button4Click(Sender: TObject);
var
text:string;
arr_word:array[0..1000] of integer;
arr_punkt:array[0..1000] of integer;
arr_slog:array[0..1000] of double;
arr_max:array[0..1000] of char;
start:array[0..1000] of integer;
result,k,col_w,col_p:integer;
str:string;
n,j,predl,nomer,finish,nom:integer;
buf:double;
i : LongWord;
begin
n:=0;
predl:=-1;
col_w:=-1;
col_p:=-1;
Text:=memo1.Text;
for i:=1 to length(Text) do
if (Text[i]='/')
then
n:=i;
result:=0;
memo2.Text:=memo1.Text;
for i:=1 to n do
begin
if (Text[i]=' ') then
begin
inc(result);
if ((text[i-1]='.') or (text[i-1]='?') or (text[i-1]='!') or (text[i-1]=';')) then
begin
inc(col_w);
arr_word[col_w]:=result;
start[col_w]:=i+1;
result:=0;
inc(predl);
end;
end;
end;
result:=0;
for i:=0 to n do
begin
if ((Text[i]=',') or (Text[i]=':') or(Text[i]='-') or (Text[i]='"')) then
inc(result);
if ((text[i]='.') or (text[i]='?') or (text[i]='!') or (text[i]=';')) then
begin
inc(col_p);
arr_punkt[col_p]:=result;
result:=0;
end;
end;
for i:=0 to predl do
begin
arr_slog[i]:=arr_punkt[i]+arr_word[i];
memo2.Lines.Add('¹'+inttostr(i+1)+': кол-во слов: '+inttostr(arr_word[i])+', кол-во знаков: '+inttostr(arr_punkt[i])+', сложность: '+floattostr(arr_slog[i]));
end;
buf:=0;
for i:=0 to predl do
buf:=buf+arr_slog[i];
buf:=buf/(predl+1);
memo2.Lines.Add('Средняя сложность по предложениям: '+floattostr(buf));
buf:=0;
for i:=0 to predl do
begin
if (buf<arr_slog[i]) then
begin
buf:=arr_slog[i];
nomer:=i;
end;
end;
nom:=0;
for j:=0 to predl do
begin
if(j=nomer-1) then
begin
for i:=start[j] to n do
if (text[i]<>'.') then
begin
arr_max[nom]:=text[i];
inc(nom);
end else if (text[i]='.') then break;
end;
end;
for i:=0 to nom do
str:=str+arr_max[i];
memo2.Lines.Add('Максимальная сложность предложения: '+floattostr(buf)+' = '+str);
if MessageDlg('Сохранить результаты ?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
if savedialog1.Execute then memo2.Lines.SaveToFile(savedialog1.Filename+savedialog1.Filter);
end;