Практическая часть.
Основы кодирования в информационных системах
Конструирование формы. Открывается форма (рис. 2), где поместить необходимые элементы: три метки Label для надписей, три текстовых поля TextBox для ввода и вывода необходимых значений, три кнопки Button для создания КА, его работы и завершения работы программы и таблица DataGridView. Для чего выполнить следующее: Запуск Visual Studio.Net. Открывается главное окно и в меню Файл выбрать… Читать ещё >
Практическая часть. Основы кодирования в информационных системах (реферат, курсовая, диплом, контрольная)
Синтез конечного автомата
1. Запуск Visual Studio.Net. Открывается главное окно и в меню Файл выбрать — Создать/Новый проект. Открывается окно создания нового проекта (рис. 1), где среди типов проектов выбрать — Visual C# -Windows и в шаблонах Visual Studio выбрать Приложение Windovs Forms.
Рис. 1 — Окно создания нового проекта
Далее ввести имя проекта КА, определить его расположение D: TISПроекты_КА 2 и нажать кнопку OK.
2. Конструирование формы. Открывается форма (рис. 2), где поместить необходимые элементы: три метки Label для надписей, три текстовых поля TextBox для ввода и вывода необходимых значений, три кнопки Button для создания КА, его работы и завершения работы программы и таблица DataGridView. Для чего выполнить следующее:
Рис. 2 — Окно Visual Studio с открытым проектом
a) «перетащить» мышкой с панели элементов Toolbox текстовое поле TextBox1 и метку Label1 для ввода значения (a) входных символов конечного автомата КА и надписи Aлфавит А;
b) аналогичную операцию проделать для текстового поля TextBox2 и метки Label2 для вывода выходных символов (v) КА и надписи Aлфавит V;
c) текстовое поле TextBox3 и метку Label3 поместить для задания числа состояний КА и надписи Множество Q;
d) «перетащить» мышкой с панели элементов кнопку Button1 и в открытом окне Свойства (Properties) в свойстве Text ввести надпись Синтез для создания КА;
e) аналогичную операцию проделать для кнопку Button2 и в открытом окне Свойства (Properties) в свойстве Text ввести надпись Пуск для начала работы КА;
f) аналогичную операцию проделать для кнопку Button3 и в открытом окне Свойства (Properties) в свойстве Text ввести надпись Стоп для завершения работы КА;
g) «перетащить» мышкой с панели элементов таблицу DataGridView и в открытом окне Свойства (Properties) в свойстве Columns сформировать четыре столбца и ввести их обозначения q_a1, v_a1 и q_a2, v_a2.
3. Создание обработчиков событий
Двойное нажатие кнопки Синтез формирует первый обработчик событий:
private void button1_Click (object sender, EventArgs e).
{.
}.
где между фигурными скобками будет создана программа, синтезирующая КА, а двойное нажатие кнопки Пуск формирует второй обработчик событий.
private void button2_Click (object sender, EventArgs e).
{.
}.
где между фигурными скобками будет создана программа, определяющая работу КА, а двойное нажатие кнопки Стоп формирует третий обработчик событий.
private void button3_Click (object sender, EventArgs e).
{.
}.
где между фигурными скобками ввести команду Close () для завершения работы программы.
4. Разработка программы
a) Синтез КА. Программа создается в первом обработчике событий кнопки Синтез:
private void button1_Click (object sender, EventArgs e).
{.
dGV.Rows.Clear (); //обновление таблицы.
int q = int. Parse (textBox3.Text); //инициализация.
KA.Q = 0; //инициализация.
Random x = new Random (); //задание случайной переменной х.
for (int i = 0; i < q; i++) //задание цикла.
{.
dGV.Rows.Add (x.Next (q), x. Next (2), x. Next (q), x. Next (2));
dGV.Rows [i]. HeaderCell. Value = «q» + i. ToString ();
}.
}.
На рис. 3 показано задание четырех состояний КА Q={q0, q1, q2, q3}, вводимых в заголовки каждого ряда КА. В первом ряду КА, обозначенном — q0, первая ячейка x. Next (q)=0, что соответствует состоянию q0, вторая ячейка x. Next (2)=1, что соответствует выходному сигналу v=1, третья ячейка x. Next (q)=3, что соответствует состоянию q3, а четвертая ячейка x. Next (2)=1, что соответствует выходному сигналу v=1, при этом x. Next (2) означает, что случайный выбор осуществляется с равной вероятностью из двух значений — 0 и 1, а x. Next (q) означает, что случайный выбор осуществляется с равной вероятностью из четырех состояний — q0, q1, q2, q3. Напоминаем, что начальное состояние КА — q0 (KA.Q = 0).
б) Работа КА. Программа создается во втором обработчике событий кнопки Пуск:
private void button2_Click (object sender, EventArgs e).
{.
int a = int. Parse (textBox1.Text);//инициализация.
if (a == 0).
{.
KA.V = (int)dGV [1, KA. Q]. Value;
KA.Q = (int)dGV [0, KA. Q]. Value;
}.
else.
{.
KA.V = (int)dGV [3, KA. Q]. Value;
KA.Q = (int)dGV [2, KA. Q]. Value;
}.
textBox2.Text = KA.V. ToString ();
textBox3.Text = KA.Q. ToString ();
}.
На рис. 4 показано, что при подаче на вход а=1, КА из состояния q0 переходит в q3, а на выходе формируется выходной сигнал v=1.
Рис. 4 — Работа КА
в) Завершение работы КА. Нажатие кнопки Стоп включает третий обработчик событий.
private void button3_Click (object sender, EventArgs e).
{.
Close ();
}.
где выполняется команда Close (), что прекращает работу программы.
А.5 Работа программы.
a) запустить программу с отладкой, нажатием кнопки F5;
b) ввести значение числа состояний КА в текстовое поле TextBox3;
c) нажать кнопку Синтез, что создает КА;
d) ввод входных сигналов, а и нажатие кнопки Пуск обеспечивает работу КА;
e) нажать кнопку Стоп для прекращения работы КА.