Tema: Compiladores
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/06/2005, 00:53
Avatar de Jorgemen
Jorgemen
 
Fecha de Ingreso: mayo-2005
Ubicación: Perú
Mensajes: 322
Antigüedad: 19 años, 10 meses
Puntos: 1
El primer ejemplo pero en codigo C# para consola
using System;
Código PHP:
namespace compiladores_1
{

    class 
AFN_real
    
{
        
int actual;//almacena la posición del arreglo que se esta utilizando
        //var $arreglo;
        
public int mover(int s,char c)
        {
            if(
s==1)
            {
                if((
c=='-')||(c=='+'))s=2;
                else if((
System.Convert.ToInt16(c)>=48)&&(System.Convert.ToInt16(c)<=57))s=3;
                else 
s=6;
            }
            else if(
s==2)
            {
                if((
System.Convert.ToInt16(c)>48)&&(System.Convert.ToInt16(c)<=57))s=3;
                else if(
c=='0')s=2;
                else 
s=6;                        
            }
            else if(
s==3){
                if(
c=='.')s=4;
                else if((
System.Convert.ToInt16(c)>=48)&&(System.Convert.ToInt16(c)<=57))s=3;
                else 
s=6;
            }
            else if(
s==4){
                if((
System.Convert.ToInt16(c)>=48)&&(System.Convert.ToInt16(c)<=57))s=5;
                else 
s=6;
            }
            else if(
s==5){
                if((
System.Convert.ToInt16(c)>=48)&&(System.Convert.ToInt16(c)<=57))s=5;
                else 
s=6;
            }
            return 
s;
        }
        public 
bool verificar(string numero)
        {
            
int lon=numero.Length//longitud de un numero
            
int s=1;            //inicializo el estado s en el primer estado que es 1
            
char c=numero[0];     //saca el primer elemento del número
            
this.actual=0;
            
string con="";
            while ((
con!=numero)&&(s!=6))
            {
                
con=con+c;
                
s=this.mover(s,c);
                
this.actual++;
                if (
this.actual!=lon)
                    
c=numero[this.actual];
            }
            if(
s==5)
                return 
true;
            else
                return 
false;
        }
    }
// fin de clase
    
class inicio
    
{
        
        static 
void Main(string[] args)
        {
            
Console.WriteLine("Digite número");
            
string numero=Console.ReadLine();
            
int a=System.Convert.ToInt16('c');
            
AFN_real afn=new AFN_real();
            if(
afn.verificar(numero))
                
Console.WriteLine("si es un número real");
            else
                
Console.WriteLine("no es un número real");
            
inicio.Main(args);    
        }
    }