Tema: Automatas
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/09/2005, 01:10
Avatar de Jorgemen
Jorgemen
 
Fecha de Ingreso: mayo-2005
Ubicación: Perú
Mensajes: 322
Antigüedad: 19 años
Puntos: 1
Validar Código Universitario
Código PHP:
function verificarCodigo($edValor)
        {
                
$es=false;        // indica si es falso o verdadero
                
$salir=false;    // mientras sea falso verifica....
                
$estado=0
                
$delantero=0;
                
$longitud=strlen($edValor);
                while(!
$salir)
                {
                    switch(
$estado)
                    {
                        case 
0:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='7')||($c=='8')||($c=='9'))
                            {
                                
$estado=1;
                            }
                            elseif(
$c=='0')
                            {
                                
$estado=9;
                            }
                            else 
                                
$estado=15;
                            break;
                        case 
9:
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='1')||($c=='2')||($c=='3')||($c=='4')||($c=='5'))
                            {
                                
$estado=10;
                            }
                            else 
                                
$estado=15;
                            break;
                        case 
10:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=11;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
11:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=12;
                            }
                            else
                            {
                                
$estado=15;
                            }
                        case 
12:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=13;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
13:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=14;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
14:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='a')||($c=='b')||($c=='c')||($c=='d')||($c=='e')||($c=='f')||($c=='g')||($c=='h')||
                                (
$c=='i')||($c=='j')||($c=='k'))
                            {
                                
$estado=16;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
16:
                            if(
$longitud==$delantero)
                            {
                                if(
$this->letraCorrecta($edValor))
                                {
                                    
$es=true;
                                    
$salir=true;
                                }
                                else
                                    
$estado=15;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            
                            break;
                        case 
1:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=2;
                            }
                            else 
                            {
                                
$estado=15;
                            }
                            break;
                        case 
2:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=3;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
3:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=4;
                            }
                            else
                            {
                                
$estado=15;
                            }
                        case 
4:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=5;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
5:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                
$estado=6;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
6:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='a')||($c=='b')||($c=='c')||($c=='d')||($c=='e')||($c=='f')||($c=='g')||($c=='h')||
                                (
$c=='i')||($c=='j')||($c=='k'))
                            {
                                
$estado=7;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            break;
                        case 
7:    
                            if(
$longitud==$delantero)
                            {
                                if(
$this->letraCorrecta($edValor))
                                {
                                    
$es=true;
                                    
$salir=true;
                                }
                                else
                                    
$estado=15;
                            }
                            else
                            {
                                
$estado=15;
                            }
                            
                            break;
                        case 
15:    
                            
$salir=true;
                            break;
                        default:
                            echo 
"ocurrio un error!!";
                    }    
// fin swhish
                
}     //fin while
            
return $es;
        }
//FIN verficarFraccion()