История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Для того чтобы проверить правильность работы программы и оправдать выбор среды разработки, необходимо провести тестирование программы. Как говорилось при постановке задачи, программа будет извлекать из текста данные по некоторому шаблону. Для примера, создадим программу, которая будет проверять текст, и в случае если найдет конструкцию.regtest, будет извлекать слово, написанное перед точкой. Ниже представлен скриншот выполнения работы программы reg1.cpp. Данная программа будет проверять строку “one.regtesttwothree”.

Рисунок 1. Результат работы программы reg1.cpp
Данная программа работает не совсем корректно, точнее не совсем по тому плану, который был поставлен в постановке задачи. Если предоставить программе на проверку строку вроде “onetwo.regtestthree”, то результат будет следующим.

Рисунок 2. Тестирование reg1.cpp
Как видно из рис. 2, программа извлекла весь текст строки, написанный до.regtest, а по условию необходимо было извлечь лишь одно слово перед.regtest. Поэтому данная программа работает не совсем корректно. Для того, чтобы полностью удовлетворить требованиям к задаче, была разработана вторая версия программы - reg2.cpp.
Предоставим reg2.cpp строку “onetwo.regtestthree”

Рисунок 3. Результат работы reg2.cpp
Программа корректно обработала данную строку и вывела необходимые данные. Попробуем усложнить задачу, и введем строку “testmy.regtestprogramplease.regtest”.

Рисунок 4. Тестирование reg2.cpp
Как видно из рис.4 программа reg2.cpp корректно обрабатывает исходные данные, и извлекает необходимую информацию.
В ходе тестирования приложений reg1.cpp и reg2.cpp было установлено, что оба приложения работают корректно, однако программа reg2.cpp наиболее точно выполняет указанные требования в постановке задачи. Листинги обеих программ можно найти в приложениях А и Б.
Возможная модификация приложений
В качестве возможного изменения и модификации программ reg1.cpp и reg2.cpp можно рассмотреть работу непосредственно с файлами, для более удобного предоставления результата. Также возможно создание более удобного и дружелюбного интерфейса для работы с пользователем.
Что касается технических изменений, то тут возможно использование описанной выше библиотеки boost/regex для уменьшения размеров программного кода, т.к. алгоритмы regex_match, regex_search, regex_replace, regex_iterator, regex_token_iterator, Partial match заметно упрощают процесс разработки программы и уменьшают количество строк программного кода.
ЗАКЛЮЧЕНИЕ
регулярный выражение программа
В ходе выполнения данной работы, были рассмотрены основные принципы работы с регулярными выражениями, а также способы их построения.
Регулярные выражения подчиняются многим алгебраическим законам арифметики, хотя есть и различия. Объединение и конкатенация ассоциативны, но только объединение коммутативно. Конкатенация дистрибутивна относительно объединения. Объединение идемпотентно.
Также были разработаны две программы на основе регулярных выражений для поиска в тексте необходимой информации. Данные приложения были протестированы и проверены на правильность функционирования.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Хопкрофт, Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. / Д. Хопкрофт, Э. Мотвани, Р. Ульман - М.: Издательский дом “Вильямс”, 2002. - 528 с.
. СТО ЮУрГУ 04-2008 Стандарт организации. Курсовое и дипломное проектирование. Общие требования к содержанию и оформлению / составители: Т.И. Парубочая, Н.В. Сырейщикова, В.И. Гузеев, Л.В. Винокурова. - Челябинск: Изд-во ЮУрГУ, 2008. - 56 с.
. Молчанов, А.Ю. Системное программное обеспечение: Учебник для вузов / А.Ю. Молчанов. - СПб.: Питер, 2006. - 396 с.
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ А
Листинг программы reg1.cpp

ПРИЛОЖЕНИЕ Б
Листинг программы reg2.cpp

|
|
|
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!