Программирование информационно-управляющих систем на основе конечных автоматов

Программная реализация алгоритма. Обработка текста с применением конечно-автоматной модели. Конечно-автоматная модель алгоритма решения задачи. Блок-схема алгоритма программы. Разработка функциональных кнопок для различных действий на языке Visual Basic.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 24.03.2016
Размер файла 250,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

В данной курсовой работе рассматривалась задача на обработку текста с применением конечно-автоматной модели. Условие задачи: имеется текст, содержащий слова, знаки препинания и другие символы, а также числа. Число - непрерывная последовательность цифр, перед которой может быть (а может не быть) знак «-» или «+» (таким образом, в этом задании рассматриваются только целые числа). Найти максимальное (по величине) число. Была построена модель на основе детерминированного полностью определенного конечного автомата без выхода, на основе которой был разработан алгоритм решения задачи и выполнена его программная реализация на языке программирования Visual Basic 2005.

1. Конечно-автоматная модель алгоритма решения задачи

Для выполнения задачи требуется 5 основных состояния и условия перехода между ними:

1. Движение по массиву символов:

-символ массива не является цифрой или знаком отрицательности;

2. Проверка отрицательности:

-символ массива является знаком отрицательности;

3. Запись числа при движении по массиву:

-символ массива является цифрой;

4. Сравнение полученного числа с максимальным и запись нового максимального, если полученное число является таковым:

-символ массива не является цифрой или знаком отрицательности;

-предыдущим состоянием была запись числа;

5. Выдача максимального числа в качестве результата:

-конец массива.

Схематичное представление модели представлено на рисунке 1.

Рис.1 Модель конечного автомата.

2. Алгоритм решения задачи

В начале работы программы задаются значения необходимых переменных и загружается текст в виде массива символов. Движение по массиву осуществляется посимвольно с использованием цикла. Очередной символ проходит проверку, и, в зависимости от её результата, выполняется переход в одно из состояний конечного автомата. Первой выполняется проверка конца массива, и, в случае положительного результата, программа выводит максимальное число. В противном случае проверяется - является ли символ цифрой, и начинается запись числа и дальнейшее движение по массиву, если это так. Если символ не является цифрой, то выполняется сравнение записанного числа с максимальным значением, которое перезаписывается, если условие соблюдено. Далее запись числа прекращается, а само число обнуляется. Следующее действие - проверка отрицательности и возврат к первому шагу (движение по массиву).

Блок-схема этих процессов изображена на рисунке 2.

Рис. 2 Блок-схема алгоритма программы.

3. Программная реализация алгоритма решения задачи

программа visual basic алгоритм

Программа написана на языке Visual Basic 2005.

На форме размещены текстовые поля для просмотра обрабатываемого текста и для вывода результата, функциональные кнопки для различных действий (Рис. 3).

Рис. 3 Окно программы.

Основное текстовое поле содержит текст для обработки, текстовое поле с меткой «Результат» отображает результат работы программы (максимальное число в тексте).

Кнопка «Загрузить из файла» выводит диалоговое окно, позволяющее загрузить текст из файла с форматом *.txt (Рис. 4).

Кнопка «Ввести вручную» позволяет пользователю самостоятельно ввести текст для обработки.

Кнопка «Поиск максимального» выполняет основную задачу программы - поиск максимального числа в тексте.

Кнопка «Очистить» позволяет очистить текстовые поля.

Рис. 4 Диалоговое окно загрузки текста из файла

Ниже приведен программный код продукта:

Public Class Form1

Dim MyFileName, s As String

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim t() As Char

Dim check, minus As Boolean

Dim state As Byte

Dim i, n, a, max As Integer

Dim c As String

state = 1

s = TextBox1.Text

t = s.ToCharArray

n = UBound(t)

max = -2147483648

a = -2147483648

c = ""

minus = False

For i = 0 To n

check = IsNumeric(t(i))

If check = True Then

state = 2

Else

state = 1

minus = False

c = ""

End If

If t(i) = "-" Then

minus = True

c = "-"

End If

Select Case state

Case 1

If a > max Then

max = a

TextBox2.Text = Str(max)

End If

a = -2147483648

Case 2

c = c + t(i)

a = Val(c)

If i = n And a > max Then

max = a

TextBox2.Text = Str(max)

End If

End Select

Next i

If TextBox1.Text = "" Then

TextBox2.Text = "Требуется текст"

MsgBox("Требуется текст")

End If

If TextBox2.Text = "" Then TextBox2.Text = "Чисел не найдено"

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim MyOpenFileDialog = New OpenFileDialog()

MyOpenFileDialog.Filter = "txt-files|*.txt;"

If MyOpenFileDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then

MyFileName = MyOpenFileDialog.FileName

End If

FileOpen(1, MyFileName, OpenMode.Input)

TextBox1.Text = ""

Do Until EOF(1)

s = LineInput(1)

TextBox1.Text &= s & vbCrLf

Loop

FileClose(1)

TextBox1.ReadOnly = True

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

TextBox1.Text = ""

TextBox2.Text = ""

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

TextBox1.ReadOnly = False

TextBox1.Focus()

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

TextBox2.Text = ""

End Sub

End Class

Заключение

В данной курсовой работе была решена задача на обработку текста с применением конечно-автоматной модели. Был построен детерминированный полностью определенный конечный автомат без выхода. На основе конечно-автоматной модели был разработан алгоритм решения задачи. Программная реализация алгоритма выполнена на языке программирования Visual Basic 2005. Программа позволяет ввести произвольный русский или латинский текст, содержащий числа. В качестве результата выводится максимальное число.

Список литературы

Пример оформления списка литературы:

1. ГОСТ 2.105-95. Общие требования к текстовым документам [Текст]. - Взамен ГОСТ 2.105-79, ГОСТ 2.906-71; введ. 1996-07-01.

2. ГОСТ 19.701-90. Схемы алгоритмов программ, данных и систем [Текст]. - Взамен ГОСТ 19.002-80; введ. 1992-01-01.

3. Зюбин В. Е. Программирование информационно-управляющих систем на основе конечных автоматов: учебное пособие. -- Новосибирск: Изд-во: Новосиб. гос. ун-т, 2012. -- 96 с.

4. Непейвода Н.Н. Стили и методы программирования: курс лекций, учебное пособие. -- М.: Интернет-университет информационных технологий, 2014. -- С. 145--212. -- 316 с.

Размещено на Allbest.ru

...

Подобные документы

  • Составление блок-схемы алгоритма решения задачи, погрешности вычисления суммы членов числового ряда. Разработка программ на языке на Visual Basic, работа с массивами. Особенности работы со строковыми данными. Варианты реализации формы приложения.

    контрольная работа [220,4 K], добавлен 18.06.2010

  • Особенности метода неопределенных множителей Лагранжа, градиентного метода и метода перебора и динамического программирования. Конструирование алгоритма решения задачи. Структурная схема алгоритма сценария диалога и описание его программной реализации.

    курсовая работа [1010,4 K], добавлен 10.08.2014

  • Изучение понятия и свойств алгоритма. Определение сущности технологии Robson. Исполнитель, а также блок-схема алгоритма или его графическое представление, в котором он изображается в виде последовательности связанных между собой функциональных блоков.

    реферат [155,9 K], добавлен 19.10.2013

  • Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.

    курсовая работа [823,0 K], добавлен 18.12.2011

  • Разработка модели лифта, алгоритма и программы на языке JavaScript. Возможность использования модели при проектировании промышленных лифтов и отладки управляющих программ. Основные принципы построения модели лифта, выполнение вычислительного эксперимента.

    курсовая работа [495,8 K], добавлен 09.06.2013

  • Алгоритм решения задачи: расположение значений ветора в порядке возрастания методом "Всплывающих пузырьков". Блок-схема алгоритма решения задачи. Описание блок-схемы, распечатка программы. Операторы: rem, dim, print, input, lprint using, for-next.

    курсовая работа [17,4 K], добавлен 27.02.2010

  • Основные принципы разработки программ. Разработка алгоритма решения задачи о пересечении двухвыпуклым многоугольником. Реализация разработанного алгоритма на языке программирования. Тесты для проверки работы программы. Графическая иллюстрация решения.

    курсовая работа [53,3 K], добавлен 20.11.2015

  • Разработка программы "Виселица" с использованием программной среды Visual Basic и средств объектно-ориентированного программирования: программные требования, описание алгоритма, блок-схема программы и дополнительной процедуры. Листинг программы.

    курсовая работа [188,2 K], добавлен 28.06.2009

  • Создание и реализация алгоритма решения транспортной задачи методом наименьших стоимостей. Схема алгоритма основной программы. Основные шаги алгоритма решения транспортной задачи. Инструкция по эксплуатации программы и обзор результатов ее выполнения.

    курсовая работа [2,0 M], добавлен 12.02.2013

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

  • Выполнение арифметических операций, этапы решения задач с помощью ЭВМ - постановка задачи, составление алгоритма решения, программная реализация алгоритма в среде Qbasic. Решение систем линейных уравнений по формулам Крамера. Графический режим Qbasic.

    курсовая работа [101,7 K], добавлен 29.09.2009

  • Структура и основные операции коммерческого банка. Использование языка программирования Visual Basic for Application, математическая формулировка задачи. Разработка модуля программы расчёта кредитов и депозитов. Схема алгоритма выполнения программы.

    курсовая работа [2,9 M], добавлен 09.04.2012

  • Разработка криптографического алгоритма программы ручного шифра по таблице Виженера. Разработка программы, выполняющей шифрование и расшифрование. Особенности использования в качестве ключа самого открытого текста. Алгоритмы решения "обратных" задач.

    курсовая работа [45,0 K], добавлен 13.11.2009

  • Архитектура и принцип действия персонального компьютера, понятие и классификация его программного обеспечения. Блок-схема алгоритма расчета квадратного трехчлена. Назначение, возможности, интерфейс и работа Windows. Программирование на Visual Basic.

    реферат [33,5 K], добавлен 26.12.2009

  • Варианты паутинообразной модели фирмы: детерминированная, вероятностная, модель с обучением и модель с запасами. Условие локального равновесия рынка. Язык программирования Visual Basic. Схема алгоритма процедур обработки. Решение задачи моделирования.

    контрольная работа [415,1 K], добавлен 07.01.2009

  • Численные методы в задачах без ограничений. Схема методов спуска. Среда редактора Visual Basic. Использование объектов ActiveX в формах. Блок-схема алгоритма моделирования. Задачи оптимизирования детерменированных функций с единственной точкой экстремума.

    курсовая работа [129,5 K], добавлен 26.04.2010

  • Решение трансцендентного уравнения методом Ньютона. Построение графика функции. Блок-схема алгоритма решения задачи и программа решения на языке Pascal. Вычисление значения интеграла методом трапеции, блок-схема алгоритма, погрешности вычисления.

    задача [163,4 K], добавлен 16.12.2009

  • Основные аналитические соотношения. Блок схемы и алгоритм решения задачи. Проверка работоспособности алгоритма вручную. Таблица идентификации переменных. Формы входной и выходной печати. Разработка и отладка программы. Инструкция для работы с программой.

    курсовая работа [69,8 K], добавлен 13.02.2012

  • Введение в объектно-ориентированное программирование. Постановка задачи. Описание алгоритма решения в псевдокоде (команды в виде текста на русском языке). Исходный текст программы на С. Тестирование программы. Модификация программы. Полиморфизм.

    курсовая работа [294,0 K], добавлен 08.09.2008

  • Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.

    курсовая работа [1,4 M], добавлен 16.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.