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);
}
}
}