Помощь в написании студенческих работ
Антистрессовый сервис

Практическая часть. 
Основы кодирования в информационных системах

РефератПомощь в написанииУзнать стоимостьмоей работы

Конструирование формы. Открывается форма (рис. 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. Для чего выполнить следующее:

Окно Visual Studio с открытым проектом.

Рис. 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) нажать кнопку Стоп для прекращения работы КА.

Показать весь текст
Заполнить форму текущей работой