- •Оглавление
- •Введение
- •1 Теоретическая часть
- •Постановка задачи
- •Математическая модель объекта или процесса
- •Алгоритм решения задачи
- •Блок-схема алгоритма решения задачи
- •2 Практическая часть
- •2.1 Описание объектов, свойств, методов
- •2.2 Формы и основные модули текста программы в среде Delphi
- •2.3 Результаты тестирования программного продукта
- •2.4 Графическое представление результатов
- •2.5 Анализ результатов
- •Заключение
- •Список использованных источников
Математическая модель объекта или процесса
Математическая модель процесса определения сложности предложений. Входные данные - исходный текст из файла. Выходные данные – исходный текст, описание результатов вычисления. Добавление текста из файла с помощью метода Memo1.Lines.LoadFromFile(OpenDialog1.FileName+opendialog1.Filter). При этом текст, сразу помещается в memo1. Определяется количество слов и знаков препинаний в каждом предложении, это достигается при помощи строк 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; и 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; inc(predl); соответственно, входящих в цикл перебора символов. Необходимым условием правильности работы приложения является корректное использование пробелов и знаков препинания. Считывание символов происходит до символа означающего конец текста ‘/’, после его цикл перебора символов не идет. Определяется количество слов и знаков препинания, с помощью ранее описанных блоков кода. Определяется сложность каждого предложения, суммируются слова и знаки препинания (arr_slog[i]:=arr_punkt[i]+arr_word[i]). Далее поиск максимального числа из полученных наборов для нахождения максимально сложного предложения (if (buf<arr_slog[i]) then buf:=arr_slog[i]). Определение средней сложности предложений (buf:=buf+arr_slog[i]; buf:=buf/(predl+1)). Далее вывод результатов в поле memo2 и сохранение в новый файл (memo2.Lines.SaveToFile(savedialog1.Filename+savedialog1.Filter)). Выход из приложения (Application.Terminate).
Алгоритм решения задачи
Для реализации поставленной задачи используется следующий алгоритм ее решения:
Открытие исходного файла с текстом.
Нахождение количества слов и знаков препинания в каждом предложении текста до символа ‘/’.
Запись полученных наборов в массив.
Запись в отдельный массив позиции начала каждого предложения.
Нахождение сложности предложений текста по формуле: количество слов + количество знаков препинания.
Поиск предложений максимальной сложности.
Подсчет средней сложности предложений входящих в текст по формуле: сумма всех сложностей / количество предложений.
Вывод результатов на экран и в файл.
Завершение программы.
Блок-схема алгоритма решения задачи
Блок-схема нахождения сложности предложений представлена на рисунке 1.1.
Рисунок 1.1 – Блок-схема сложности предложений
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() |
Открытие окна содержащего информацию об авторе. |
