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

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;

2.3 Результаты тестирования программного продукта

В ходе тестирования созданного программного продукта оно работала без сбоев и точно отвечала заданным условиям. После открытия текстового документа содержащего русский текст: « Назовем, сложностью предложения -сумму слов и знаков препинания. Составить программу, определяющую максимальную сложность предложений, в, тексте на русском языке и среднюю сложность по всем предложениям. В файле результатов: должен быть исходный текст. Значение максимальной сложности и предложение, соответствующее этой сложности и значение средней сложности предложения. Потоки данных или потоки управления в схемах показываются линиями. Направление потока -слева -направо, и, сверху, вниз считается: стандартным. В случаях когда необходимо внести большую ясность в схему на линиях используются стрелки. Если поток имеет направление, отличное от стандартного, стрелки должны указывать это направление. / Это программа все равно не прочитает).» программа выдала максимальное сложное предложение до символа «/» равной значению «20», а среднее значение по всем предложениям – «12.875» . Все приведенные выше данные являются правильными.

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