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

автомат не детерминированный - C++

Восстановить пароль Регистрация
 
Tachikoma
2 / 2 / 1
Регистрация: 02.06.2011
Сообщений: 61
18.04.2012, 09:28     автомат не детерминированный #1
написал программу, ошибка в том, что при прохожденни по автомату, если он натыкается в значении на выход из автомата, он пишет что строка распознается.
Автомат должен распознавать строку, в которой последний символ встречается где либо раньше в строке
автомат не детерминированный
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
36
37
38
39
40
41
42
43
44
45
46
47
#include "stdafx.h"
#include "locale.h"
#include <iostream>
using namespace std;
bool contains (char ch){
char alphabet[] = {'1','2','3','\0'};
for (int i=0; i<strlen(alphabet);i++){
    if (ch==alphabet[i]){return true;}
}
return false;}
bool correctno_li(char chain[]) {
    for (int i=0; i<strlen(chain); i++) {
        if (!contains(chain[i])) {
            return false;} 
        
    }
    return true;
}
 
int main()
 {
    char chain[100];
    do{
        cout << "Enter chain: ";
        cin >> chain;
      }
    while (!correctno_li(chain));
    char z='q';
    for (int i=0; i<strlen(chain);i++){
    switch (z){
    case 'q': if (chain[i]=='1') {z='w';}
               else if (chain[i]=='2'){z='e';}
               else {z='r';}break;
    case 'w': if (chain[i]=='1'){z='f';}
               else {z='w';}break;
    case 'e': if (chain[i]=='2'){z='f';}
               else {z='e';}break;
    case 'r': if (chain[i]=='3'){z='f';}
               else {z='r';}break;
    case 'f': z='f';break;
    default:break;
    }
    }
    if(z=='f'){cout<<"Цепочка прошла\n";}
    else {cout<<"Цепочка не прошла\n";}
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2012, 09:28     автомат не детерминированный
Посмотрите здесь:

C++ Игровой автомат
построить детерминированный конечный распознаватель C++
C++ некоторый Автомат
детерминированный конечный распознаватель C++
C++ Конечный автомат
Конечный автомат C++
C++ конечный автомат
Детерминированный конечный автомат C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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