Exemplo de RDF 

 

#include

 

int main()

{

    int q, i;

    char string[1000];

    

    printf("Programa que reconhece strings terminadas com 'aaa'.\n");

    

    for(;;)

    {

    

    q = 0;

    

    printf("\nDigite a string.\nDigite qualquer caractere diferente de 'a' ou 'b' para sair do programa.\n\n");

    scanf("%s", &string);

    

       for(i = 0; i < strlen(string); i++)

       {

             if(string[i] != 'a' && string[i] != 'b')

             return 0;

             

             else if( q == 0 && string[i] == 'a')

             q = 1;

             

             else if( q == 1 && string[i] == 'a')

             q = 2;

             

             else if( q == 2 && string[i] == 'a')

             q = 3;

             

             else if( (q == 1 && string[i] == 'b') || (q == 2 && string[i] == 'b') || (q == 3 && string[i] == 'b'))

             q = 0;

       }

    

    if(q == 3)

    printf("\nReconhece.\n");

    else

    printf("\nNao reconhece.\n");

    

    }

}

 

 

Exemplo de RFN

 

#include

 

int main()

{

    int s, i;

    char string[1000];

    

    printf("Programa que reconhece strings formadas por numero par de a's e de b's.\n");

    

    for(;;)

    {

    

    s = 0;

    

    printf("\nDigite a string.\nDigite qualquer caractere diferente de 'a' ou 'b' para sair do programa.\n\n");

    scanf("%s", &string);

    

       for(i = 0; i < strlen(string); i++)

       {

             if(string[i] != 'a' && string[i] != 'b')

             return 0;

             

             else if( s == 0 && string[i] == 'a' || (s == 3 && string[i] == 'b'))

             s = 1;

             

             else if( s == 1 && string[i] == 'a' || (s == 2 && string[i] == 'b'))

             s = 0;

             

             else if( s == 0 && string[i] == 'b' || (s == 3 && string[i] == 'a'))

             s = 2;

             

             else if( s == 1 && string[i] == 'b' || (s == 2 && string[i] == 'a'))

             s = 3;

       }

    

    if(s == 0)

    printf("\nReconhece.\n");

    else

    printf("\nNao reconhece.\n");

    

    }

}