Jump to content
Fórum Script Brasil
  • 0

Consistencia de cadastro do e-mail


karyn

Question

1 answer to this question

Recommended Posts

  • 1

Uma boa forma é usando Autômato finito determinístico e usar a sintaxes que se pode observar aqui: "Syntaxe de um email".

Em Autômato finito determinístico serve, entre muitas coisas, para validar uma string e saber se ela idêntica a outra que temos. Por sorte tenho um exemplo.

Imaginamos umas quantas palavras ou frases(neste exemplo somente veremos algumas palavras):
"char"
"for"
"float"duvida.jpg.8cb0283df00dda51a94e6f634bb8e243.jpg

Esses seriam os caminhos a seguir para validar essas três palavras. Então nosso código seria esse mais ou menos:
 

#include <stdio.h>
#define TAM 100

void qInicio ( char palavra[TAM]);
void q0( int contador, char palavra[TAM]);
void q1( int contador, char palavra[TAM]);
void q2( int contador, char palavra[TAM]);
void q3( int contador, char palavra[TAM]);
void q4( int contador, char palavra[TAM]);
void q5( int contador, char palavra[TAM]);
void q6( int contador, char palavra[TAM]);
void q7( int contador, char palavra[TAM]);
void q8( int contador, char palavra[TAM]);
void q9( int contador, char palavra[TAM]);
void qFim();
void qErro();

int main(){
    char palavra[TAM] = "for"; //casos de comprovação: o programa só aceitará "char", "for" ou "float". Mas você pode por qualquer frase
    qInicio(palavra);
    
    return 0;
}

void qInicio ( char palavra[TAM] ){
    int contador = 0;
    q0( contador, palavra );
}

void q0( int contador, char palavra[TAM] ){
    if ( contador < TAM ){
        if ( palavra[contador] == 'f' ){
           q1( ++contador, palavra ); 

        }else if (palavra[contador] == 'c'){
           q8( ++contador, palavra ); 

        }else{
            qErro();
        }

    }
}

void q1( int contador, char palavra[TAM] ){
    if ( contador < TAM ){
        if ( palavra[contador] == 'l' ){
          q2( ++contador, palavra ); 

        }else if (palavra[contador] == 'o'){
           q3( ++contador, palavra ); 

        }else{
            qErro();
        }

    }
}

void q2( int contador, char palavra[TAM] ){
    if ( palavra[contador] == 'o' ) {
        q5 ( ++contador, palavra );
        
    } else {
        qErro();
    }
}

void q3( int contador, char palavra[TAM] ){
    if ( palavra[contador] == 'r' ) {
        q4 ( ++contador, palavra );
        
    } else {
        qErro();
    }
}

void q4( int contador, char palavra[TAM] ){
    qFim();
}

void q5( int contador, char palavra[TAM] ){
    if ( palavra[contador] == 'a' ) {
        q6 ( ++contador, palavra );
        
    } else {
        qErro();
    }
}

void q6( int contador, char palavra[TAM] ){
    if ( palavra[contador] == 't' ) {
        q7 ( ++contador, palavra );
        
    } else {
        qErro();
    }
}

void q7( int contador, char palavra[TAM] ){
    qFim();
}

void q8( int contador, char palavra[TAM] ){
    if ( contador < TAM ){
        if ( palavra[contador] == 'h' ){
          q9( ++contador, palavra ); 

        }else{
            qErro();
        }

    }
}

void q9( int contador, char palavra[TAM] ){
    if ( palavra[contador] == 'a' ) {
        q3 ( ++contador, palavra );
        
    } else {
        qErro();
    }
}


void qErro(){
    printf("Palavra regeitada pelo automata!\n");
}

void qFim(){
    printf("Palavra Aceita pelo automata!\n");
}

Pode inserir qualquer palavra na string que esta na primeira linha do for porem o programa só aceitará uma das 3 que citei no inicio. De uma estudada e se tiver duvidas pergunte. Tente resolver com isso pois é muito potente esse sistema.

Edited by vangodp
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148681
    • Total Posts
      644507
×
×
  • Create New...