Особенности запуска и работы с программой
Для нормального функционирования программного продукта следует выполнить следующее: – Ознакомиться с файлом readme.txt; – Создать папки на компьютере с таким адресом: – 'C:\Program Files\Internet Explorer\Iexplore.exe F:\Моя курсовая работа\Моя Web-страница\Справка.mht – Извлечь в данную папку все файлы из архива, копировать туда исполняющий файл программы (Primer4.exe), проследить чтобы также там был файл Справка. mht. – Для начала работы с ПП запустите Primer4.exe.
3.3 Тестовые варианты программы (печатный и прописной вариант) Для проверки работы программы можно использовать предложенные ниже тестовые варианты. В программе специально предусмотрены 2 тестовых варианта, которые будут рассмотрены ниже. При сравнении результатов анализа вручную и работы программы мы видим, что результат одинаков, что свидетельствует о правильности работы программы. Пример 1. Запустим файл Primer4.exe. Вводим состояния и алфавит (рисунок 7) и заполянем управляющую таблицу (рисунок 8):
Рисунок 7 – Ввод состояний и алфавита Рисунок 8 – Заполнение управляющей таблицы. Строим грамматику (рисунок 9):
Рисунок 9 – Полученная граматика
Пример 2. Запустим файл Primer4.exe. Вводим состояния и алфавит (рисунок 10), заполняем управляющую таблицу (рисунок 11):
Рисунок 10 - Ввод состояний и алфавита
Рисунок 11 - Заполнение управляющей таблицы Строим грамматику (рисунок 12):
Рис.12 – Полученная граматика Выводы В рамках данной курсовой работы мною была разработана программа построения грамматики для заданного конечного автомата. А также я ознакомилась с теорией конечных автоматов и грамматик, научилась писать программы - конструкторы для построения автоматных грамматик закрепила умение работы в среде Delphi 7.0. Была создана справочная система в виде Web-страницы, в которой находится подробная справка по работе с программы продуктом. Написано вступление, где рассматривается общий обзор средств электронной связи.
Список литературы 1 Яблонский С.В. «Введение в дискретную математику: Учеб. пособие для вузов» / С.В Яблонский, - М.: Наука, 1986 – 384с. 2 «Разработка приложений в среде Delphi», -М.: Издательский дом “Вильямс”,2000.-464 с. 3 Грис Д.П. « Конструирование компиляторов для цифровых вычислительных машин» / Д.П. Грис, – М.: Мир, 1975. – 544 с. 4 Кузнецов О.П. «Дискретная математика для инженера» / О.П. Кузнецов, Г.М. Адельсон-Вельский, – М: Энергоатомиздат, 1988.– 480 с. 5 Лебедев А.Н.«Моделирование в научно-технических исследованиях» / А.Н.Лебедев, - М.:Москва 1989.-519с. 6 Суворова Н.И. «Информационное моделирование. Величины, объекты, алгоритмы » / Н.И. Суворова, - М.:2002. 7 Богдан М.П. «Краткий курс лекций по дисциплине “ Основы дискреной математики”» / М.П. Богдан, – Краматорск: ДГМА,2002. 8 Новиков Ф.А. «2Дискретная математика для программистов» / Новиков Ф.А., – СПб: Питер, 2000. – 304с.
Приложение А
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Grids, Menus, HtmlHlp; type TForm1 = class(TForm) StringGrid1: TStringGrid; BitBtn1: TBitBtn; Edit1: TEdit; Label1: TLabel; Edit2: TEdit; Label2: TLabel; Label4: TLabel; Label5: TLabel; BitBtn2: TBitBtn; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; ListBox1: TListBox; BitBtn3: TBitBtn; N7: TMenuItem; N8: TMenuItem; BitBtn4: TBitBtn; BitBtn5: TBitBtn; N9: TMenuItem; BitBtn6: TBitBtn; BitBtn7: TBitBtn; procedure BitBtn1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn7Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses unit2,unit4,unit3; var Sostin:set of char; procedure TForm1.BitBtn1Click(Sender: TObject); var s1,s2,s:string; i,j:integer; begin s1:=Edit2.Text; s2:=Edit1.Text; StringGrid1.ColCount:=Length(s1)+2; StringGrid1.RowCount:=length(s2)+1; StringGrid1.Cells[Length(s1)+1,0]:='-|'; for i:=1 to Length(s2) do StringGrid1.Cells[0,i]:=s2[i]; for i:=1 to Length(s1) do StringGrid1.Cells[i,0]:=s1[i]; for i:=1 to length(s2)-1 do for j:=i+1 to length(s2) do if (s2[i]=s2[j]) then begin MessageBox(form1.Handle,'Введи правильно состояния не должны повторяться!!!','Error',mb_ok or mb_iconerror); edit1.SetFocus; exit; end; for i:=1 to length(s2) do if not ((s2[i]>='A') and (s2[i]<='Z')) then begin MessageBox(form1.Handle,'Введите правильно состояния!!!', 'Error',mb_ok or mb_iconerror); edit1.SetFocus; exit; end; for i:=1 to length(s1)-1 do for j:=i+1 to length(s1) do if (s1[i]=s1[j]) then begin MessageBox(form1.Handle,'Введи правильно буквы алфавита не должны повторяться!!!','Error',mb_ok or mb_iconerror); edit2.SetFocus; exit; end; for i:=1 to length(s1) do if not ((s1[i]>='a') and (s1[i]<='z')) then begin MessageBox(form1.Handle,'Введите правильно буквы алфавита!!!','Error',mb_ok or mb_iconerror); edit2.SetFocus; exit; end; for i:=0 to stringgrid1.ColCount-1 do StringGrid1.ColWidths[i]:=(Stringgrid1.ClientWidth div stringgrid1. ColCount)-1; for i:=0 to stringgrid1.RowCount-1 do StringGrid1.RowHeights[i]:=(Stringgrid1.ClientHeight div stringgrid1. RowCount)-1; Sostin:=['0']; s:=Edit1.Text; for i:=1 to Length(s) do Sostin:=Sostin+[s[i]]; end; procedure TForm1.Button1Click(Sender: TObject); begin close; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin close; end; procedure TForm1.N2Click(Sender: TObject); begin close; end; procedure TForm1.N4Click(Sender: TObject); begin form3.ShowModal; end; procedure TForm1.N5Click(Sender: TObject); begin form2.ShowModal; end; procedure TForm1.N6Click(Sender: TObject); var s1,s2:string; i,j:integer; begin s1:=Edit2.Text; s2:=Edit1.Text; StringGrid1.ColCount:=Length(s1)+2; StringGrid1.RowCount:=length(s2)+1; StringGrid1.Cells[Length(s1)+1,0]:='-|'; for i:=1 to Length(s2) do StringGrid1.Cells[0,i]:=s2[i]; for i:=1 to Length(s1) do StringGrid1.Cells[i,0]:=s1[i]; for i:=1 to length(s2)-1 do for j:=i+1 to length(s2) do if (s2[i]=s2[j]) then begin MessageBox(form1.Handle,'Введи правильно состояния не должны повторяться!!!','Error',mb_ok or mb_iconerror); edit1.SetFocus; exit; end; for i:=1 to length(s2) do if not ((s2[i]>='A') and (s2[i]<='Z')) then begin MessageBox(form1.Handle,'Введите правильно состояния!!!',' Error',mb_ok or mb_iconerror); edit1.SetFocus; exit; end; for i:=1 to length(s1)-1 do for j:=i+1 to length(s1) do if (s1[i]=s1[j]) then begin MessageBox(form1.Handle,'Введи правильно буквы алфавита не должны повторяться!!!','Error',mb_ok or mb_iconerror); edit2.SetFocus; exit; end; for i:=1 to length(s1) do if not ((s1[i]>='a') and (s1[i]<='z')) then begin MessageBox(form1.Handle,'Введите правильно буквы алфавита!!!','Error',mb_ok or mb_iconerror); edit2.SetFocus; exit; end; for i:=0 to stringgrid1.ColCount-1 do StringGrid1.ColWidths[i]:=(Stringgrid1.ClientWidth div stringgrid1. ColCount)-1; for i:=0 to stringgrid1.RowCount-1 do StringGrid1.RowHeights[i]:=(Stringgrid1.ClientHeight div stringgrid1. RowCount)-1; end; procedure TForm1.BitBtn3Click(Sender: TObject); var i,j:integer; stroka:string; begin ListBox1.Items.Clear; for i:=1 to Stringgrid1.RowCount-1 do begin stroka:=''; for j:=1 to Stringgrid1.ColCount-1 do begin if (stringgrid1.Cells[j,i]>='A') and (stringgrid1.Cells[j,i]<='Z') then begin stroka:=stroka+stringgrid1.Cells[0,i]; stroka:=stroka+'>'+stringgrid1.Cells[j,0]; stroka:=stroka+stringgrid1.Cells[j,i]; ListBox1.Items.Add(stroka); end else if (stringgrid1.Cells[j,i]='+') then begin stroka:=stroka+stringgrid1.Cells[0,i]; stroka:=stroka+'>'+'*'; ListBox1.Items.Add(stroka); end; stroka:=''; end; end; end; procedure TForm1.N7Click(Sender: TObject); var i,j:integer; stroka:string; begin ListBox1.Items.Clear; for i:=1 to Stringgrid1.RowCount-1 do begin stroka:=''; for j:=1 to Stringgrid1.ColCount-1 do begin if (stringgrid1.Cells[j,i]>='A') and (stringgrid1.Cells[j,i]<='Z') then begin stroka:=stroka+stringgrid1.Cells[0,i]; stroka:=stroka+'>'+stringgrid1.Cells[j,0]; stroka:=stroka+stringgrid1.Cells[j,i]; ListBox1.Items.Add(stroka); end else if (stringgrid1.Cells[j,i]='+') then begin stroka:=stroka+stringgrid1.Cells[0,i]; stroka:=stroka+'>'+'*'; ListBox1.Items.Add(stroka); end; stroka:=''; end; end; end; procedure TForm1.N8Click(Sender: TObject); begin form4.ShowModal; end; procedure TForm1.BitBtn4Click(Sender: TObject); begin form4.ShowModal; end; procedure TForm1.BitBtn5Click(Sender: TObject); const Dop=['+','-']; var dost:set of char; i,j:integer; sost:string; nedost:boolean; begin for i:=1 to StringGrid1.RowCount-1 do for j:=1 to StringGrid1.ColCount-1 do begin if (j=StringGrid1.ColCount-1) then if not (StringGrid1.Cells[j,i][1] in Dop) then begin ShowMessage('Введен неверный символ!Н'); StringGrid1.Row:=i; StringGrid1.Col:=j; exit; end else continue; if not (StringGrid1.Cells[j,i][1] in Sostin) then begin ShowMessage('Введен неверный символ!'); StringGrid1.Row:=i; StringGrid1.Col:=j; exit; end; end; nedost:=false; dost:=[]; sost:=StringGrid1.Cells[0,1]; dost:=dost+[sost[1]]; for i:=1 to StringGrid1.RowCount-1 do for j:=1 to StringGrid1.ColCount-2 do begin sost:=StringGrid1.Cells[j,i]; if (not (sost[1] in dost)) and (StringGrid1.Cells[0,i][1] in dost) then dost:=dost+[sost[1]]; end; for i:=1 to StringGrid1.RowCount-1 do if not (StringGrid1.Cells[0,i][1] in dost) then begin MessageBox(form1.Handle,pchar('Состояние '+StringGrid1.Cells[0,i][1]+' является недостижимым!!!'),'Error',mb_iconerror or mb_ok); nedost:=true; end; if not nedost then BitBtn3.Enabled:=true; end; procedure TForm1.N9Click(Sender: TObject); begin WinExec('C:\Program Files\Internet Explorer\Iexplore.exe F:\Моя курсовая работа\Моя Web-страница\Справка.mht',1); end; procedure TForm1.BitBtn6Click(Sender: TObject); begin ListBox1.Clear; end; procedure TForm1.FormCreate(Sender: TObject); begin Sostin:=[]; end; procedure TForm1.BitBtn7Click(Sender: TObject); begin form2.ShowModal; end; end
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (166)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |