Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
max33x
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 27
#1

Организация регулярной грамматики используя конечный автомат, представленный в виде графа - C++

23.11.2012, 03:00. Просмотров 718. Ответов 1
Метки нет (Все метки)

Доброй ночи!
Организация регулярной грамматики с помощью конечного автомата, представленного в виде графа.
Хочу попросить у вас помощи. Не получается сопоставить конечный автомат и проверку введенного в поле Edit выражения на соответствие переходов графа. Автомат реализую через case, но пока получается только по одному символу проверять. Фразу целиком посимвольно не понимаю как. Может есть примеры или может хотя бы подсказку н нужное направление. Заранее благодарен!
Организация регулярной грамматики используя конечный автомат, представленный в виде графа
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 03:00     Организация регулярной грамматики используя конечный автомат, представленный в виде графа
Посмотрите здесь:

C++ Конечный автомат для строк
C++ Конечный автомат
Конечный автомат. Лабиринт (поиск в глубину) C++
Конечный автомат C++
C++ Построить конечный автомат из вещественных чисел в 16-речной системе счисления
Создать программу, реализующую конечный автомат и таблицу перехода. C++
Детерминированный конечный автомат C++
C++ Как организовать на си++ недетерминированый конечный автомат?
Конечный автомат по поиску числовых констант в строке C++
C++ Конечный автомат. Построить транслитератор
C++ Конечный автомат

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zvoronz
271 / 238 / 21
Регистрация: 29.05.2012
Сообщений: 889
23.11.2012, 04:15     Организация регулярной грамматики используя конечный автомат, представленный в виде графа #2
Сначала составим матрицу переходов конечного автомата.
Организация регулярной грамматики используя конечный автомат, представленный в виде графа
Затем напишем код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
int termbychar(char ch)
{
    switch(ch)
    {
        case 'A': return 0;     
        case 'B': return 1;     
        case 'Z': return 2;     
    }
}
 
int main(int argc, char **argv)
{
    int state_matr[4][3] = {{1,2,-1},
                            {1,-1,3},
                            {-1,2,3},
                            {1,2,-1}};                      
    int state = 0;
    char ch;
    while((ch = getchar()) != '\n')
    {
        int term = termbychar(ch);
        state = state_matr[state][term];
        if(state == -1)     
            cout << "Error in expression!" << endl;
    }
    if(state != -1)
        cout << "Good expression!" << endl;
    getchar();
    return 0;
}
Yandex
Объявления
23.11.2012, 04:15     Организация регулярной грамматики используя конечный автомат, представленный в виде графа
Ответ Создать тему
Опции темы

Текущее время: 17:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru