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

Código PHP:
function verificarBisiesto($edValor)
        {
            
$j=0;
            while(
$edValor[$j]<>'/')
            {
                
$j++;
            }
            
                
$es="error";        // 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->esDigito($c))
                            {
                                if(
$j==1)
                                {
                                    if ((
$c=='0')||($c=='4')||($c=='8'))
                                    {
                                        
$estado=6;
                                    }
                                    else 
//if (($c=='1')||($c=='3')||($c=='5')||($c=='7')||($c=='9')) 
                                    
{
                                        
$estado=5;
                                    }
                                }
                                elseif(
$j==2)
                                {
                                    if ((
$c=='0')||($c=='2')||($c=='4')||($c=='6')||($c=='8'))
                                    {
                                        
$estado=3;
                                    }
                                    else 
//if (($c=='1')||($c=='3')||($c=='5')||($c=='7')||($c=='9')) 
                                    
{
                                        
$estado=4;
                                    }
                                }
                                else    
//($j>2)
                                
{
                                    
$j--;
                                    
$estado=0;
                                }

                            }
//fin if
                            
                            
else 
                            {
                                
$estado=35;
                            }
                            break;
                        case 
1:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$this->esDigito($c))
                            {
                                if(
$j>2)
                                {
                                    
$estado=0;
                                }
                                
$estado=2;
                            }
                            else 
                                
$estado=35;
                            break;
                        case 
2:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='2')||($c=='4')||($c=='6')||($c=='8'))
                            {
                                
$estado=3;
                            }
                            elseif((
$c=='1')||($c=='3')||($c=='5')||($c=='7')||($c=='9')) 
                            {
                                
$estado=4;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
3:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='4')||($c=='8'))
                            {
                                
$estado=6;
                            }
                            elseif ((
$c=='1')||($c=='3')||($c=='5')||($c=='7')||($c=='9'))
                            {
                                
$estado=5;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
4:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='2')||($c=='6'))
                            {
                                
$estado=6;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
5:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=7;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
6:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=8;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
7:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=11;
                            }
                            elseif (
$c=='1')
                            {
                                
$estado=12;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
8:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=9;
                            }
                            elseif (
$c=='1')
                            {
                                
$estado=10;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
9:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='1')||($c=='3')||($c=='5')||($c=='7')||($c=='8'))
                            {
                                
$estado=13;
                            }
                            elseif ((
$c=='2'))
                            {
                                
$estado=14;
                            }
                            elseif ((
$c=='4')||($c=='6')||($c=='9'))
                            {
                                
$estado=15;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
10:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='2'))
                            {
                                
$estado=13;
                            }
                            elseif (
$c=='1')
                            {
                                
$estado=15;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
11:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='2')
                            {
                                
$estado=16;
                            }
                            elseif ((
$c=='1')||($c=='3')||($c=='5')||($c=='7')||($c=='8'))
                            {
                                
$estado=17;
                            }
                            elseif ((
$c=='4')||($c=='6')||($c=='9'))
                            {
                                
$estado=18;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
12:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if ((
$c=='0')||($c=='2'))
                            {
                                
$estado=17;
                            }
                            elseif (
$c=='1')
                            {
                                
$estado=18;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
13:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=19;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
14:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=20;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
15:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=21;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
16:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=22;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
17:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=23;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
18:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='/')
                            {
                                
$estado=24;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
19:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=25;
                            }
                            elseif ((
$c=='1')||($c=='2'))
                            {
                                
$estado=36;
                            }
                            elseif (
$c=='3')
                            {
                                
$estado=26;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
20:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=25;
                            }
                            elseif ((
$c=='1')||($c=='2'))
                            {
                                
$estado=36;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
21:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=25;
                            }
                            elseif ((
$c=='1')||($c=='2'))
                            {
                                
$estado=36;
                            }
                            elseif (
$c=='3')
                            {
                                
$estado=27;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
22:    
                            
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=28;
                            }
                            elseif (
$c=='1')
                            {
                                
$estado=29;
                            }
                            elseif (
$c=='2')
                            {
                                
$estado=30;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
23:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=28;
                            }
                            elseif ((
$c=='1')||($c=='2'))
                            {
                                
$estado=29;
                            }
                            elseif (
$c=='3')
                            {
                                
$estado=31;
                            }
                            else
                                
$estado=35;
                            break;
                        case 
24:    
                            
$c=$edValor[$delantero];
                            
$delantero++;
                            if (
$c=='0')
                            {
                                
$estado=28;
                            }
                            elseif ((
$c=='1')||($c=='2'))
                            {
                                
$estado=29;
                            }
                            elseif (
$c=='3')
                            {
                                
$estado=32;
                            }
                            else
                                
$estado=35;
                            break;