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

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

Войти
Регистрация
Восстановить пароль
 
Tachikoma
2 / 2 / 1
Регистрация: 02.06.2011
Сообщений: 61
#1

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

18.04.2012, 09:28. Просмотров 391. Ответов 0
Метки нет (Все метки)

написал программу, ошибка в том, что при прохожденни по автомату, если он натыкается в значении на выход из автомата, он пишет что строка распознается.
Автомат должен распознавать строку, в которой последний символ встречается где либо раньше в строке
автомат не детерминированный
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++
делаю игру &quot;игровой автомат&quot; вот код кнопки &quot;Играть&quot; void __fastcall TForm1::Button1Click(TObject *Sender) { int a, b, c, d, e; //...

Конечный автомат для строк - C++
Конечный автомат для строк используя switch. Помогите пожалуйста...

Корректность ввода времени (автомат) - C++
Прошу, помогите! Нужно написать автомат (метод &quot;цикл&quot;), который проверяет корректность ввода времени. Например, я ввожу время 15:30,...

автомат для проверки ввода - C++
Доброго времени суток, Нужно проверять ввод на ошибки, читаю матрицу. Пример ввода: /*{ {1.0,2.0,3.0}, {4.0,5.0,6.0} ...

Как организовать на си++ недетерминированый конечный автомат? - C++
Доброго времени суток. Подскажите пожалуйста как организовать на си++ не детерминированый конечный автомат, с теорией знаком, на практике...

Построить некоторый Автомат на три команды - C++
Некоторый автомат может запросить два числа и выполнить 3 команды. Команда А преобразует имеющуюся пару чисел (х, у) в (х-у,у), команда В...

Написать клеточный автомат Аква-тор - C++
Нужно написать программу , клеточный автомат Аква-тор на С++, Visual Basic или C#. Кто может написать (за денюжку), помочь написать,...

Конечный автомат по поиску числовых констант в строке - C++
Построить автомат, осуществляющий чтение вектор строки, содержащей числовые константы. Например, такой: (+27, -3, 2.1, 15, 0.7Е+12). На...

Рандомное перемещение фишек по квадратной матрице (клеточный автомат) - C++
В квадратной таблице размера NxN в левом верх-нем и правом нижнем углу стоят фишки. За одну секунду каждая фишка случайным образом...


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

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

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