Пример #1
0
 public override void Mostrar(int nivel = 0)
 {
     Separar(nivel); Console.WriteLine("WHILE");
     Izquierda.Mostrar(nivel + 1);
     Separar(nivel); Console.WriteLine("DO");
     Derecha.Mostrar(nivel + 1);
     Separar(nivel); Console.WriteLine("END");
 }
Пример #2
0
        public override int Evaluar()
        {
            var resultado = 0;

            while (Izquierda.Evaluar() != 0)
            {
                resultado = Derecha.Evaluar();
            }
            return(resultado);
        }
Пример #3
0
 public override void Mostrar(int nivel = 0)
 {
     Separar(nivel); Console.WriteLine("IF");
     Condicion.Mostrar(nivel + 1);
     Separar(nivel); Console.WriteLine("THEN");
     Izquierda.Mostrar(nivel + 1);
     if (Derecha != null)
     {
         Separar(nivel); Console.WriteLine("ELSE");
         Derecha.Mostrar(nivel + 1);
     }
     Separar(nivel); Console.WriteLine("END");
 }
Пример #4
0
        Patron(char Caracter, List <bool> data)//Crea patron para prefijos
        {
            if (Derecha == null && Izquierda == null)
            {
                if (Caracter.Equals(this.Caracter))
                {
                    return(data);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                List <bool> left  = null;
                List <bool> right = null;
                if (Izquierda != null)
                {
                    List <bool> leftPath = new List <bool>();
                    leftPath.AddRange(data);
                    leftPath.Add(false);

                    left = Izquierda.Patron(Caracter, leftPath);
                }
                if (Derecha != null)
                {
                    List <bool> rightPath = new List <bool>();
                    rightPath.AddRange(data);
                    rightPath.Add(true);
                    right = Derecha.Patron(Caracter, rightPath);
                }
                if (left != null)
                {
                    return(left);
                }
                else
                {
                    return(right);
                }
            }
        }
Пример #5
0
        public int calcularaltura()
        {
            if (Izquierda == null && Derecha == null)
            {
                altura = 1;
            }
            else
            {
                if (Izquierda == null)
                {
                    Derecha.calcularaltura();
                    altura = Derecha.altura + 1;
                }
                else
                {
                    if (Derecha == null)
                    {
                        Izquierda.calcularaltura();
                        altura = Izquierda.altura + 1;
                    }

                    else
                    {
                        Izquierda.calcularaltura();
                        Derecha.calcularaltura();
                        if (Derecha.altura >= Izquierda.altura)
                        {
                            altura = Derecha.altura + 1;
                        }
                        else
                        {
                            altura = Izquierda.altura + 1;
                        }
                    }
                }
            }

            return(altura);
        }
Пример #6
0
 public override int Evaluar() => Izquierda.Evaluar() < Derecha.Evaluar() ? 1 : 0;
Пример #7
0
 public override int Evaluar() => Izquierda.Evaluar() *Derecha.Evaluar();
Пример #8
0
 public override void Mostrar(int nivel = 0)
 {
     Separar(nivel); Console.WriteLine(Operador);
     Izquierda.Mostrar(nivel + 1);
     Derecha.Mostrar(nivel + 1);
 }
Пример #9
0
 public override string NPI() => $"({Operador} {Izquierda.NPI()} {Derecha.NPI()})";
Пример #10
0
 public override int Evaluar() => Condicion.Evaluar() != 0 ? Izquierda.Evaluar() : Derecha?.Evaluar() ?? 0;