Tema: Automatas
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/09/2005, 00:01
Avatar de Jorgemen
Jorgemen
 
Fecha de Ingreso: mayo-2005
Ubicación: Perú
Mensajes: 322
Antigüedad: 19 años
Puntos: 1
número e identificador de variable

Código PHP:
function verificarNumero($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=='0')&&($longitud==$delantero))
                            {
                                
$es=true;
                                
$salir=true;
                            }
                            elseif (
$c=='+')
                            {    
                                
$estado=3;
                            }
                            elseif (
$this->esDigitoNoCero($c))
                            {
                                
$estado=1;
                            }                    
                            else 
                                
$estado=2;
                            break;
                        case 
3:    
                            
$c=$edValor[$delantero];
                            if((
$c=='0')&&($longitud==$delantero))
                            {
                                
$es=true;
                                
$salir=true;
                            }
                            elseif (
$this->esDigitoNoCero($c))
                            {    
                                
$estado=1;
                            }
                            else 
                                
$estado=2;
                            break;
                        case 
1:    //if longitud es igual a 1 no se actualiza $c    
                            
if($longitud>1)        
                            {    
                                
$c=$edValor[$delantero];
                                
$delantero++;
                            }
                            if (
$this->esDigito($c))
                            {
                                if(
$delantero==$longitud)
                                {
                                    
$es=true;
                                    
$salir=true;
                                }
                                else
                                {
                                    
$estado=1;
                                }
                            }
                            else 
                                
$estado=2;
                            break;
                        case 
2:    
                            
$salir=true;
                            break;
                        default:
                            echo 
"ocurrio un error!!";
                    }    
// fin swhish
                
}     //fin while
            
return $es;
        }
//FIN verficarNumero()
        
    //
    //    función automata para verificar variable ---------------------------------------------------------------------------------
    //
        
function verificarVariable($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 (
$this->esLetra($c))
                            {
                                
$estado=1;
                            }
                            else 
                                
$estado=2;
                            break;
                        case 
1:    
                            if(
$longitud>1)        
                            {    
                                
$c=$edValor[$delantero];
                                
$delantero++;
                            }
                            if ((
$this->esLetra($c))||($c=='_')||($this->esDigito($c)))
                            {
                                if(
$delantero==$longitud)
                                {
                                    
$es=true;
                                    
$salir=true;
                                }
                                else
                                {
                                    
$estado=1;
                                }
                            }
                            else 
                            {
                                
$estado=2;
                            }
                            break;
                        case 
2:    
                            
$salir=true;
                            break;
                        default:
                            echo 
"ocurrio un error!!";
                    }    
// fin swhish
                
}     //fin while
            
return $es;
        }
//FIN verficarVariable()