Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / ОТЧЕТ(5).docx
Скачиваний:
16
Добавлен:
23.07.2013
Размер:
652.41 Кб
Скачать

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;

Соседние файлы в папке Архив1