- •Оглавление
- •Введение
- •1 Теоретическая часть
- •Постановка задачи
- •Математическая модель объекта или процесса
- •Алгоритм решения задачи
- •Блок-схема алгоритма решения задачи
- •2 Практическая часть
- •2.1 Описание объектов, свойств, методов
- •2.2 Формы и основные модули текста программы в среде Delphi
- •2.3 Результаты тестирования программного продукта
- •2.4 Графическое представление результатов
- •2.5 Анализ результатов
- •Заключение
- •Список использованных источников
2.4 Графическое представление результатов
Запуск программы нажатием двойным щелчком мыши по исполняемому файлу (рисунок 2.2).
Рисунок 2.2 – Запуск программы
Открытие файла и последующая загрузка текста из него осуществляется с помощью кнопки «Загрузить текст» (рисунки 2.3 – 2.6).
Рисунок 2.3 – Открытие файла
Рисунок 2.4 – Открытие файла
Рисунок 2.5 – Исходный файл
Рисунок 2.6 – Загрузка текста
Определение сложности предложений и сохранения результатов в файл осуществляется с помощью кнопки «Выполнить» (рисунки 2.7 - 2.10).
Рисунок 2.7 – Определение сложности предложений
Рисунок 2.8 – Сохранение результатов
Рисунок 2.9 – Сохранение результатов
Рисунок 2.10 – Файл результатов
Вывод информации о разработчике представлена на рисунке 2.11.
Рисунок 2.11 – Информация
2.5 Анализ результатов
В ходе выполнения работы программы она работала без сбоев и корректно. Точно соответствует заданным по условию требованиям. В программе имеется возможность открывать текст из файла и сохранять результаты в новый файл. Для того чтобы определить сложность предложений необходимо определить количество слов и знаков препинания в каждом предложении, а затем высчитывается по заданной формуле (сумма слов плюс сумма знаков препинания). Результаты работы программы выводятся в текстовое поле и сохраняются в текстовый файл.
Заключение
При решении поставленной задачи, были приобретены навыки по созданию объектов среды программирования Delphi. Приобретены различные подходы при написании алгоритмов, обобщены знания по управляющим операторам языка Pascal, практическим навыкам работы с файлами, в организации ввода/вывода значений комбинированных типов данных, навыков программирования задач с использованием записей и файлов в среде Delphi.
В процессе создания курсовой работы разработан алгоритм решения поставленной задачи. Составлена программа, определяющая сложность предложений на русском языке. В данном приложении предусмотрены:
Возможность использовать в качестве источника текста для удобства уже готовый файл, так как программой предусмотрена работа с файлами.
Возможность изменять исходный текст вручную.
Сохранение исходного текста и результатов определения сложности предложений в новый файл.
На основе этого алгоритма в среде разработки Delphi 7 составлена и отлажена программа. Разработанная программа является полностью работоспособной и простой в использовании.
Список использованных источников
1. Архангельский, А.Я. Программирование в Delphi 7 / А.Я.Архангельский. - М.: ЗАО «Издательство БИНОМ», 2003.-412с.
2. Бронштейн, И.Н. Справочник по высшей математике для инженеров и учащихся втузов / И.Н. Бронштейн. – М.: Наука , 1981г.- 850с.
3. Волосевич, А.А. Язык Object Pascal и Система программирования в Delphi: учебное пособие / А.А. Волосевич. - Мн.: БГУИР, 2003. – 60 с.
4. Культин, Н.Б. Основы программирования в среде Delphi 7: учебное пособие / Н.Б. Культин. – БХВ-Петербург, 2003.- 608 с.
5. Немнюгин, С.А. Turbo Pascal. 2–е изание / С.А.Немнюгин. – Минск, 2004г.-877с.
6. Фаронов, В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов / В.В. Фаронов. - Питер, 2006. – 640 с.
7. Эбнер, М.М. Delphi 5. Руководство разработчика: Пер. с нем / М.М.Эбнер.-К.: Издательская группа BHV, 2003. – 480 с., ил.
ПРИЛОЖЕНИЕ А
Исходный код программы представлен ниже:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
MainMenu1: TMainMenu;
N1: TMenuItem;
N3: TMenuItem;
Memo2: TMemo;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
Button2: TButton;
Button4: TButton;
Label5: TLabel;
Button3: TButton;
Label1: TLabel;
N2: TMenuItem;
procedure N3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.N3Click(Sender: TObject);
begin
if MessageDlg('Вы точно хотите выйти ?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then Application.Terminate;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if MessageDlg('Открыть файл ?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName+opendialog1.Filter);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
memo1.Clear;
memo2.Clear;
end;
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;
procedure TForm1.N2Click(Sender: TObject);
begin
form2.show;
end;
end.
