Автор работы: Пользователь скрыл имя, 11 Января 2013 в 15:08, курсовая работа
Конечный распознаватель – это модель устройства с конечным числом состояний, которое отличает правильно образованные, или «допустимые» цепочки, от «недопустимых».
Примером задачи распознавания может служить проверка нечетности числа единиц в произвольной цепочке, состоящей из нулей и единиц. Соответствующий конечный автомат будет допускать все цепочки, содержащие нечетное число единиц, и отвергать все цепочки с четным их числом. Назовем его «контролером нечетности».
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ 3
ПРАКТИЧЕСКАЯ ЧАСТЬ 6
1. ПОСТАНОВКА ЗАДАЧИ 6
2. ПОСТРОЕНИЕ ФОРМАЛЬНОЙ ГРАММАТИКИ 6
3. ПОСТРОЕНИЕ КОНЕЧНОГО АВТОМАТА 6
4. ТАБЛИЦА ПЕРЕХОДОВ 7
5. ГРАФ ПЕРЕХОДОВ 7
6. ПРОГРАММНОЕ МОДЕЛИРОВАНИЕ КОНЕЧНОГО АВТОМАТА 8
7. БЛОК СХЕМА 15
8. РЕЗУЛЬТАТ ВЫПОЛНЕНИЯ ПРОГРАММЫ 18
cout<<Rus("Задайте имя файла в меню конфигурации")<<endl;
return;
}
obj->ReadFile();
obj->InAlf();
obj->Test();
for (int i = 0; i < obj->count; i++)
{
cout<<obj->str[i]<<endl;
cout<<Rus("Строка допустима - ");
if (obj->otch[i].alf)
cout<<Rus("[ ДА ]")<<endl;
else
cout<<Rus("[ НЕТ ]")<<endl;
cout<<Rus("Строка принимается автоматом - ");
if (obj->otch[i].det)
cout<<Rus("[ ДА ]")<<endl;
else
cout<<Rus("[ НЕТ ]")<<endl;
if (!obj->otch[i].det)
cout<<Rus("Строка отвергнута на символе - ")<<obj->otch[i].simb<<endl;
cout<<"-----------------------
}
}
void Config(Avto *a)
{
bool flag = true;
char *temp = new char [100];
while (flag)
{
switch(MenuConfig())
{
case 0:
cout<<Rus("Введите имя файла")<<endl;
cin>>temp;
a->FileName(temp);
break;
case 1:
a->DisplayTabl();
system("pause");
break;
case 2:
a->DisplayAlf();
system("pause");
break;
case 3:
flag = false;
}
//system("pause");
}
}
int main()
{
Avto a;
a.FileName("test.txt");
// Run(&a);
cout<<Rus("Добро пожаловать")<<endl;
cout<<Rus("Первоначальное задание имени входного файла")<<endl;
cout<<Rus("Введите имя файла")<<endl;
char *fname = new char [100];
// cin>>fname;
// a.FileName(fname);
bool flag = true;
while (flag)
{
switch(MenuMain())
{
case 0: Run(&a); system("pause"); break;
case 1: Config(&a); break;
case 2: flag = false; break;
}
// system("pause");
}
return 0;
}
7. Блок – схема