Exemplo n.º 1
0
        public override object Ejecutar(Entorno e, bool funcion, bool ciclo, bool sw, bool tc, LinkedList <Salida> log, LinkedList <Error> errores)
        {
            object valExpr = Expr.GetValor(e, log, errores);

            if (valExpr != null)
            {
                if (valExpr is Throw)
                {
                    return(valExpr);
                }

                Simbolo sim = Target.GetSimbolo(e);

                if (sim != null)
                {
                    Aritmetica arit    = new Aritmetica(new Literal(sim.Tipo, sim.Valor, Linea, Columna), new Literal(Expr.Tipo, valExpr, Linea, Columna), Op, Linea, Columna);
                    object     valArit = arit.GetValor(e, log, errores);

                    if (valArit != null)
                    {
                        if (valArit is Throw)
                        {
                            return(valArit);
                        }

                        sim.Valor = valArit;
                    }

                    return(null);
                }
                errores.AddLast(new Error("Semántico", "No hay una variabla declarada con el id: " + Target.GetId() + ".", Linea, Columna));
            }
            return(null);
        }
Exemplo n.º 2
0
        public ThirdPageViewModel()
        {
            BtnCommandMultiplicar = new Command(async() => await MultiplicarNumeros());
            Datos = new Aritmetica();
            PersonaServices personaService = new PersonaServices();

            Personas = personaService.GetPersonas();
        }
Exemplo n.º 3
0
 public int Division(Aritmetica x)
 {
     if (x.FactorB == 0)
     {
         return(0);
     }
     return(x.FactorA / x.FactorB);
 }
    public void SumaTestMethod(int param1, int param2, int result)   //Los tipos de estos parámetros tienen que ser del mismo tipo que los de los TestCase.
    {
        double resultado = Aritmetica.sumar(param1, param2);

        //Cada Assert corresponde una comprobación necesaria para pasar la prueba.
        Assert.AreEqual(result, resultado);
        //Assert.That() --> Permite introducir una condición. Ej:
        Assert.That(result == resultado);
    }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            int    opcion = 0;
            double a, b;

            Console.WriteLine("Ingrear valor de a");
            a = double.Parse(Console.ReadLine());
            Console.WriteLine("Ingrear valor de b");
            b = double.Parse(Console.ReadLine());
            while (opcion != 5)
            {
                Console.Clear();
                Console.WriteLine("1. Suma");
                Console.WriteLine("2. Resta");
                Console.WriteLine("3. Multiplicacion");
                Console.WriteLine("4. Division");
                Console.WriteLine("5. Salir");

                opcion = int.Parse(Console.ReadLine());

                switch (opcion)
                {
                case 1:
                    Aritmetica del = (double x, double y) =>
                    { return(x + y); };
                    Console.WriteLine(del(a, b));
                    Console.ReadKey();
                    break;

                case 2:
                    del = (double x, double y) =>
                    { return(x - y); };
                    Console.WriteLine(del(a, b));
                    Console.ReadKey();
                    break;

                case 3:
                    del = (double x, double y) =>
                    { return(x * y); };
                    Console.WriteLine(del(a, b));
                    Console.ReadKey();
                    break;

                case 4:
                    del = (double x, double y) =>
                    { return(x / y); };
                    Console.WriteLine(del(a, b));
                    Console.ReadKey();
                    break;

                case 5:
                    opcion = 5;
                    break;
                }
            }
        }
Exemplo n.º 6
0
        public void Division_DivisionEntreCero_RetornaDivideByZeroException()
        {
            //  Arrange
            var aritmetica = new Aritmetica();

            //  Act
            aritmetica.Division(5, 0);

            // Assert no necesario.
        }
Exemplo n.º 7
0
        public void TestDividirCaso2()
        {
            // Preparacion
            var aritmetica = new Aritmetica();

            //Accion
            var response = aritmetica.Dividir(2, 0);

            // Assert
            Assert.AreEqual("Error division con 0 no valida", response.Message);
        }
Exemplo n.º 8
0
        public void TestDividirCaso1()
        {
            // Preparacion
            var aritmetica = new Aritmetica();

            //Accion
            var response = aritmetica.Dividir(2, 10);

            // Assert
            Assert.AreEqual(0.2f, response.Resultado);
        }
Exemplo n.º 9
0
        public void Suma_SumaDosNumeros_RetornaTrue()
        {
            //  Arrange
            var aritmetica = new Aritmetica();

            //  Act
            var resultado = aritmetica.Suma(1, 4);

            //  Assert
            Assert.IsTrue(resultado == 5);
        }
Exemplo n.º 10
0
        public void TestMultiplcar()
        {
            // Preparacion
            var aritmetica = new Aritmetica();

            //Accion
            var total = aritmetica.Multiplicar(6, 5);

            // Assert
            Assert.AreEqual(1, total);
        }
Exemplo n.º 11
0
        public void TestSumar()
        {
            // Preparacion
            var aritmetica = new Aritmetica();

            //Accion
            var total = aritmetica.Sumar(5, 6);

            // Assert
            Assert.AreEqual(11, total);
        }
Exemplo n.º 12
0
            static void Main(string[] args)
            {
                Aritmetica DoOperacion = new Aritmetica(Multiplicacion);

                Console.WriteLine(DoOperacion(10, 2));
                DoOperacion = Division;
                Console.WriteLine(DoOperacion(10, 2));
                DoOperacion = Suma;
                Console.WriteLine(DoOperacion(10, 2));
                DoOperacion = Resta;
                Console.WriteLine(DoOperacion(10, 2));
                Console.ReadKey();
            }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            Aritmetica del = (int a, int b) =>
            { return(a + b); };

            Console.WriteLine(del(4, 5));

            del = (int a, int b) =>
            { return(a - b); };

            Console.WriteLine(del(4, 5));


            Console.ReadKey();
        }
Exemplo n.º 14
0
        public override Result GetC3D(Ent e, bool funcion, bool ciclo, bool isDeclaracion, bool isObjeto, LinkedList <Error> errores)
        {
            if (!isDeclaracion)
            {
                Debugger(e, "Asignacion");
            }

            Result result = new Result();

            if (!isDeclaracion)
            {
                Aritmetica operacion = new Aritmetica(Objetivo, Valor, Op, Linea, Columna);

                Result rsOperacion = operacion.GetC3D(e, funcion, ciclo, isObjeto, errores);

                if (rsOperacion != null)
                {
                    if (!operacion.GetTipo().IsIndefinido())
                    {
                        if (Objetivo is Identificador)
                        {
                            ((Identificador)Objetivo).Acceso = false;
                        }
                        else if (Objetivo is Referencia)
                        {
                            ((Referencia)Objetivo).Acceso = false;
                        }

                        Result rsObjetivo = Objetivo.GetC3D(e, funcion, ciclo, isObjeto, errores);

                        if (operacion.GetTipo().Tip == Objetivo.GetTipo().Tip)
                        {
                            result.Codigo += rsOperacion.Codigo;
                            result.Codigo += rsObjetivo.Codigo;
                            result.Codigo += rsObjetivo.Valor + " = " + rsOperacion.Valor + ";\n";
                        }
                        else
                        {
                            errores.AddLast(new Error("Semántico", "El valor a asignar no es del mismo tipo.", Linea, Columna));
                            return(null);
                        }
                    }
                }
            }

            return(result);
        }
Exemplo n.º 15
0
        static void Main(string[] args)
        {
            Console.WriteLine("\t\t\t~~~~~~~~~~~~FACULTAD DE INGENIERIA~~~~~~~~~~~~");
            Console.WriteLine("\t\t\tSanchez Catedra Diego Issac\n\t\t\tTemas Selectos de Programacion\n");
            Console.WriteLine("\t\t\tSUMATORIAS");

            double[] arreglo = new double[5] {
                1, 2, 3, 4, 5
            };

            //Obtener la suma de los elementos del arreglo
            double s = Aritmetica.Sum(arreglo);
            //Obtiene el promedio
            double prom = s / args.Length;

            Console.WriteLine("Promedio: {0}", prom);
            Console.WriteLine("Suma de arreglos {1}", 5);
            Console.ReadLine();
        }
Exemplo n.º 16
0
 public int Sustraccion(Aritmetica x)
 {
     return(x.FactorA - x.FactorB);
 }
Exemplo n.º 17
0
 public int Adiccion(Aritmetica x)
 {
     return(x.FactorA + x.FactorB);
 }
Exemplo n.º 18
0
    [Test] //Tipo de prueba en la que puedes controlar intervalos de tiempo en PlayMode
    public void MultiplicarTestMethod()
    {
        double resultado = Aritmetica.multiplicar(2, 2);

        Assert.AreEqual(8, resultado);
    }
Exemplo n.º 19
0
 static int DoOperacion(Aritmetica op, int x, int y, int z)
 {
     return(op(x, y, z));
 }
Exemplo n.º 20
0
        static void Main(string[] args)
        {
            try
            {
                for (int i = 0; i <= 10; i++)
                {
                    var guid        = Guid.NewGuid();
                    var justNumbers = new String(guid.ToString().Where(Char.IsDigit).ToArray());
                    var seed        = int.Parse(justNumbers.Substring(0, 4));

                    var random = new Random(seed);
                    var value  = random.Next(2, 6);

                    Console.WriteLine($"Iteración {i} - semilla {seed} - valor {value}");
                }
                var randomNumber = new Random().Next(2, 6);

                string clave           = "Grup0l321tZ";
                var    tieneSecuencias = clave.Select((x, i) => new { v1 = x, v2 = clave.Skip(i + 1).Take(1).FirstOrDefault() - 1, v3 = clave.Skip(i + 2).Take(1).FirstOrDefault() - 2 })
                                         .Count(x => x.v1 == x.v2 && x.v2 == x.v3);
                var claveInversa       = clave.Reverse();
                var tieneSecuenciasInv = claveInversa.Select((x, i) => new { v1 = x, v2 = claveInversa.Skip(i + 1).Take(1).FirstOrDefault() - 1, v3 = claveInversa.Skip(i + 2).Take(1).FirstOrDefault() - 2 })
                                         .Count(x => x.v1 == x.v2 && x.v2 == x.v3);

                Func <string, int> eval = obj => obj.Select((x, i) => new
                {
                    v1 = x,
                    v2 = obj.Skip(i + 1).Take(1).FirstOrDefault() - 1,
                    v3 = obj.Skip(i + 2).Take(1).FirstOrDefault() - 2
                }).Count(f => f.v1 == f.v2 && f.v2 == f.v3);

                Func <List <char>, int> evalReverse = obj => obj.Select((x, i) => new
                {
                    v1 = x,
                    v2 = obj.Skip(i + 1).Take(1).FirstOrDefault() - 1,
                    v3 = obj.Skip(i + 2).Take(1).FirstOrDefault() - 2
                }).Count(f => f.v1 == f.v2 && f.v2 == f.v3);

                var uu = eval(clave) == 0 && evalReverse(clave.Reverse().ToList()) == 0;

                var tieneMayusculas = clave.Count(c => char.IsUpper(c));
                var tieneMinusculas = clave.Count(c => char.IsLower(c));
                var tieneNumeros    = clave.Count(c => char.IsDigit(c));

                var dirs = ConfigurationManager.GetSection("RecargasElectronicasConfig");

                string ejemplo = "Isack";

                var funcLinqAnd = Expresion <string> .linqAnd(p => p.Equals("Isack"), p => p.Equals("Isack")).Invoke(ejemplo);

                var resultAnd = Expresion <string> .And(lexp => lexp.Equals("Munguia"), rexp => rexp.Equals("Isack")).Invoke(ejemplo);

                var resultOr = Expresion <string> .Or(lexp => lexp.Equals("Munguia"), rexp => rexp.Equals("Isack")).Invoke(ejemplo);

                var circulo1 = new Core.v1.Circulo("circulo1", 1);
                Console.WriteLine(circulo1);

                Console.WriteLine(nameof(circulo1));

                Console.WriteLine("Operaciones aritmeticas");
                Aritmetica.Operacion += Aritmetica.Dividir;
                Console.WriteLine(Aritmetica.Operacion(4, 2));
                Console.WriteLine(Aritmetica.Multiplicar(4, 2));
                Console.WriteLine(Aritmetica.Restar(4, 2));
                Console.WriteLine(Aritmetica.Sumar(4, 2));

                // Iniciamos la ejecucion.
                //Aritmetica.Fibonacci(0, 1);

                Console.WriteLine("Numeros de fibonacci");
                Console.WriteLine(Fibonacci.FibonacciNumeroEnLaSucecion(20));
                Console.WriteLine(Fibonacci.NumeroMayorIgualQue(500, 0, 1));
                Console.WriteLine(string.Join(",", Fibonacci.PrimerosNumeros(21, new List <long>())));
                Console.WriteLine(string.Join(",", Fibonacci.NumerosMenoresQue(500, 0, 1, new List <long>())));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.ReadKey();
            }
        }
Exemplo n.º 21
0
        public override object GetValor(Entorno e, LinkedList <Salida> log, LinkedList <Error> errores)
        {
            Select.Mostrar = false;
            object obj = Select.Ejecutar(e, false, false, false, false, log, errores);

            if (obj != null)
            {
                if (obj is Throw)
                {
                    return(obj);
                }

                LinkedList <Entorno> data = (LinkedList <Entorno>)obj;

                Aritmetica op;
                Relacional rel;

                switch (Funcion)
                {
                case Aggregation.COUNT:
                    int count = data.Count();
                    Tipo = new Tipo(Type.INT);
                    return(count);

                case Aggregation.MIN:
                    if (data.Count() > 0)
                    {
                        object min;

                        Entorno ent1 = data.ElementAt(0);
                        Simbolo sim1 = ent1.Simbolos.ElementAt(0);

                        if (ent1.Simbolos.Count() > 1)
                        {
                            errores.AddLast(new Error("Semántico", "El Select solo debería retornar una Columna.", Linea, Columna));
                        }

                        if (sim1.Tipo.IsNumeric() || sim1.Tipo.IsDate() || sim1.Tipo.IsTime())
                        {
                            Tipo = sim1.Tipo;
                            min  = sim1.Valor;
                        }
                        else
                        {
                            errores.AddLast(new Error("Semántico", "La función de agregación MIN solo puede ser utilizada en datos numéricos, fechas y horas.", Linea, Columna));
                            return(null);
                        }

                        for (int i = 1; i < data.Count(); i++)
                        {
                            ent1 = data.ElementAt(i);
                            sim1 = ent1.Simbolos.ElementAt(0);

                            rel = new Relacional(new Literal(Tipo, min, Linea, Columna), new Literal(sim1.Tipo, sim1.Valor, Linea, Columna), Operador.MENORQUE, Linea, Columna);

                            object valRel = rel.GetValor(e, log, errores);

                            if (valRel != null)
                            {
                                if (valRel is Throw)
                                {
                                    return(valRel);
                                }

                                if (!((bool)valRel))
                                {
                                    min = sim1.Valor;
                                }
                            }
                            else
                            {
                                errores.AddLast(new Error("Semántico", "No se pudo realizar la función de agregación MIN.", Linea, Columna));
                                return(null);
                            }
                        }
                        return(min);
                    }
                    Tipo = new Tipo(Type.NULL);
                    return(new Null());

                case Aggregation.MAX:
                    if (data.Count() > 0)
                    {
                        object max;

                        Entorno ent1 = data.ElementAt(0);
                        Simbolo sim1 = ent1.Simbolos.ElementAt(0);

                        if (ent1.Simbolos.Count() > 1)
                        {
                            errores.AddLast(new Error("Semántico", "El Select solo debería retornar una Columna.", Linea, Columna));
                        }

                        if (sim1.Tipo.IsNumeric() || sim1.Tipo.IsDate() || sim1.Tipo.IsTime())
                        {
                            Tipo = sim1.Tipo;
                            max  = sim1.Valor;
                        }
                        else
                        {
                            errores.AddLast(new Error("Semántico", "La función de agregación MAX solo puede ser utilizada en datos numéricos, fechas y horas.", Linea, Columna));
                            return(null);
                        }

                        for (int i = 1; i < data.Count(); i++)
                        {
                            ent1 = data.ElementAt(i);
                            sim1 = ent1.Simbolos.ElementAt(0);

                            rel = new Relacional(new Literal(Tipo, max, Linea, Columna), new Literal(sim1.Tipo, sim1.Valor, Linea, Columna), Operador.MAYORQUE, Linea, Columna);

                            object valRel = rel.GetValor(e, log, errores);

                            if (valRel != null)
                            {
                                if (valRel is Throw)
                                {
                                    return(valRel);
                                }

                                if (!((bool)valRel))
                                {
                                    max = sim1.Valor;
                                }
                            }
                            else
                            {
                                errores.AddLast(new Error("Semántico", "No se pudo realizar la función de agregación MAX.", Linea, Columna));
                                return(null);
                            }
                        }
                        return(max);
                    }
                    Tipo = new Tipo(Type.NULL);
                    return(new Null());

                case Aggregation.SUM:
                    if (data.Count() > 0)
                    {
                        object sum;

                        Entorno ent1 = data.ElementAt(0);
                        Simbolo sim1 = ent1.Simbolos.ElementAt(0);
                        Tipo = sim1.Tipo;
                        sum  = sim1.Valor;

                        if (ent1.Simbolos.Count() > 1)
                        {
                            errores.AddLast(new Error("Semántico", "El Select solo debería retornar una Columna.", Linea, Columna));
                        }

                        if (!(Tipo.IsNumeric() || Tipo.IsString()))
                        {
                            errores.AddLast(new Error("Semántico", "La función de agregación AVG solo puede ser utilizada sobre datos numéricos y Cadenas.", Linea, Columna));
                            return(null);
                        }

                        for (int i = 1; i < data.Count(); i++)
                        {
                            ent1 = data.ElementAt(i);
                            sim1 = ent1.Simbolos.ElementAt(0);

                            op   = new Aritmetica(new Literal(Tipo, sum, Linea, Columna), new Literal(sim1.Tipo, sim1.Valor, Linea, Columna), Operador.SUMA, Linea, Columna);
                            sum  = op.GetValor(e, log, errores);
                            Tipo = op.Tipo;

                            if (sum == null)
                            {
                                errores.AddLast(new Error("Semántico", "No se pudo realizar la función de agregación SUM.", Linea, Columna));
                                return(null);
                            }

                            if (sum is Throw)
                            {
                                return(sum);
                            }
                        }

                        if (Tipo.IsString() || Tipo.IsNumeric())
                        {
                            return(sum);
                        }
                        else
                        {
                            errores.AddLast(new Error("Semántico", "No se pudo realizar la función de agregación SUM.", Linea, Columna));
                            return(null);
                        }
                    }
                    Tipo = new Tipo(Type.NULL);
                    return(new Null());

                case Aggregation.AVG:
                    if (data.Count() > 0)
                    {
                        object sum;

                        Entorno ent1 = data.ElementAt(0);
                        Simbolo sim1 = ent1.Simbolos.ElementAt(0);
                        Tipo = sim1.Tipo;
                        sum  = sim1.Valor;

                        if (ent1.Simbolos.Count() > 1)
                        {
                            errores.AddLast(new Error("Semántico", "El Select solo debería retornar una Columna.", Linea, Columna));
                        }

                        if (!Tipo.IsNumeric())
                        {
                            errores.AddLast(new Error("Semántico", "La función de agregación AVG solo puede ser utilizada sobre datos numéricos.", Linea, Columna));
                            return(null);
                        }

                        for (int i = 1; i < data.Count(); i++)
                        {
                            ent1 = data.ElementAt(i);
                            sim1 = ent1.Simbolos.ElementAt(0);

                            op   = new Aritmetica(new Literal(Tipo, sum, Linea, Columna), new Literal(sim1.Tipo, sim1.Valor, Linea, Columna), Operador.SUMA, Linea, Columna);
                            sum  = op.GetValor(e, log, errores);
                            Tipo = op.Tipo;

                            if (sum == null)
                            {
                                errores.AddLast(new Error("Semántico", "No se pudo realizar la función de agregación AVG.", Linea, Columna));
                                return(null);
                            }

                            if (sum is Throw)
                            {
                                return(sum);
                            }
                        }

                        int total = data.Count();
                        op = new Aritmetica(new Literal(Tipo, sum, Linea, Columna), new Literal(new Tipo(Type.INT), total, Linea, Columna), Operador.DIVISION, Linea, Columna);

                        sum = op.GetValor(e, log, errores);

                        if (sum != null)
                        {
                            Tipo = op.Tipo;
                            return(sum);
                        }
                        else
                        {
                            errores.AddLast(new Error("Semántico", "No se pudo realizar la función de agregación AVG.", Linea, Columna));
                            return(null);
                        }
                    }
                    Tipo = new Tipo(Type.NULL);
                    return(new Null());
                }
            }
            return(null);
        }
Exemplo n.º 22
0
        static void Main(string[] args)
        {
            int opcion = 0;



            Aritmetica x = Aritmetica.getInstance();

            do
            {
                Console.WriteLine("1. sumar");
                Console.WriteLine("2. resta");
                Console.WriteLine("3. multiplicar");
                Console.WriteLine("4. division");
                Console.WriteLine("5. potencia");
                Console.WriteLine("6. raiz");
                Console.WriteLine("7. Salir");

                //opcion = int.Parse(Console.ReadLine());
                opcion = int.Parse(Console.ReadLine());
                Console.WriteLine("Escribe primer numero");
                Double a = double.Parse(Console.ReadLine());
                Console.WriteLine("Escribe segunco numero");
                Double b = double.Parse(Console.ReadLine());



                switch (opcion)
                {
                case 1:
                    Console.WriteLine("1. la suma es");

                    Console.WriteLine(x.suma(a, b));
                    break;

                case 2:

                    Console.WriteLine("1. la resta es");

                    Console.WriteLine(x.resta(a, b));
                    break;

                case 3:
                    Console.WriteLine("1. la multiplicacion es");

                    Console.WriteLine(x.multiplicacion(a, b));
                    break;

                case 4:

                    Console.WriteLine("1. la division es");

                    Console.WriteLine(x.division(a, b));
                    break;

                case 5:
                    Console.WriteLine("1. la potencia es");

                    Console.WriteLine(x.potencia(a, b));
                    break;

                case 6:
                    Console.WriteLine("1. la raiz es");

                    Console.WriteLine(x.raiz(a, b));

                    break;
                }
            } while (opcion != 7);
        }
Exemplo n.º 23
0
 public int Producto(Aritmetica x)
 {
     return(x.FactorA * x.FactorB);
 }
Exemplo n.º 24
0
 static double DoOperacion(Aritmetica op, double x, double y)
 {
     return(op(x, y));
 }
Exemplo n.º 25
0
        public MainWindow()
        {
            int thId = Thread.CurrentThread.ManagedThreadId;

            int x = Random();

            act  = InitializeComponent;
            act2 = (int a, DateTime b, int?c, int?d) => { };

            string r = "_";

            if (DateTime.Now.DayOfWeek == DayOfWeek.Monday)
            {
                act4 = metodo;
            }
            else
            {
                act4 = metodo;
            }

            string str = act4(DateTime.Now, 9, new List <bool>()
            {
                true, false
            });

            ElaboraByte sequenza2 = step3;

            sequenza2 += step4;
            sequenza2 += step1;
            sequenza2 += step4;
            sequenza2 += step2;

            foreach (ElaboraByte item in sequenza2.GetInvocationList())
            {
                r = item.Invoke(r);
            }

            string finale = sequenza2("_");


            Metodo sequenza = new Metodo(m1) + m1 + m1;

            sequenza += m1;
            sequenza += m1;
            sequenza += m1;
            // sequenza = null;

            try
            {
                sequenza();
            }
            catch (Exception ex)
            {
            }

            sequenza = sequenza - m2;
            //sequenza();
            Delegate[] elenco = sequenza.GetInvocationList();

            // L'indirizzo di memoria del metodo chiamato InitializeComponent
            Metodo     puntatore  = InitializeComponent;
            Aritmetica somma      = this.sommaDueNumeri;
            Aritmetica somma1     = new Aritmetica(sommaDueNumeri);
            int        risultato1 = somma(8, 17);
            int        risultato2 = sommaDueNumeri(8, 17, () => { });

            InitializeComponent();

            ArrayList list = new ArrayList(20);

            list.Add(67);
            list.Add(true);
            list.Add(DateTime.Now);
            list.Add(89.45345);
            list.IndexOf(89.45345);
            // Perdita di performance a run-time
            // int number = (int)list[1];

            // Boxing & Unboxing
            DateTime         dt    = (DateTime)list[2];
            StringCollection list1 = new StringCollection();

            list1.Add("mdlkgnkldngkdffnkj");
            list1.Add("mdlkgnkldngkdffnkj");
            list1.Add("mdlkgnkldngkdffnkj");
            list1.Add("mdlkgnkldngkdffnkj");
            // list1.Add(34);

            var bytes = new byte[3] {
                5, 8, 10
            };
            BitArray ba = new BitArray(bytes);

            List <double>   pesiPersone     = new List <double>();
            List <bool>     statoAllarmi    = new List <bool>();
            List <DateTime> compleanniAmici = new List <DateTime>();

            List <Fattura> fatture = new List <Fattura>()
            {
                new Fattura(),
                new Fattura(),
                new Fattura()
            };
            var date = fatture.DammiPagamenti();

            fatture.Add(new Fattura());

            pesiPersone.Contains(78);
            statoAllarmi.Add(true);
            // Compile time
            //double pesoIgor = pesiPersone[0];
            int index = pesiPersone.IndexOf(89.3);

            Stack stack1 = new Stack();

            stack1.Push(4);
            stack1.Push("");
            string          pop = stack1.Pop().ToString();
            Stack <string>  stack2;
            Queue <Fattura> coda;

            ObservableCollection <Fattura> list3 = new ObservableCollection <Fattura>();
            //list3.AddRange();
            Dictionary <string, Fattura> tim = new Dictionary <string, Fattura>();
            // Fattura f1 = tim["5u4564545/2018"];

            // Calcolatrice<bool> calc = new Calcolatrice<bool>();
            //Calcolatrice<HttpClient> calc2 = new Calcolatrice<HttpClient>();
            Calcolatrice <Fattura> calc3 = new Calcolatrice <Fattura>();
            //Calcolatrice<Cliente> calc4;
            // Calcolatrice<BitArray> calc4 = new Calcolatrice<BitArray>();



            // calc3.Set(fp);

            // Anonymous Type
            var persona1 = new
            {
                Nome    = "",
                Cognome = "",
                Eta     = 42
            };

            // Object Initializer
            var persona2 = new Persona("Fabrizio")
            {
                Nome    = "",
                Cognome = "",
                Eta     = 42
            };

            //persona2.Nome = "";
            //persona2.Cognome = "";
            //persona2.Eta = 42;
            var pari = new List <int>()
            {
                2, 4, 6, 8, 10
            };

            int?annoNascita = 2018;

            annoNascita = null;
            annoNascita = 7;
            annoNascita++;
            annoNascita--;
            bool pari2 = annoNascita % 2 == 0;

            if (!annoNascita.HasValue)
            {
                // MsgBox
            }
            else
            {
                Console.WriteLine(annoNascita.Value);
            }
            int x5 = annoNascita.GetValueOrDefault();

            int?distanza1 = null;
            int?distanza2 = 1;
            int?totale    = distanza1 + distanza2;

            // Mi registro l'evento FatturaAppenaPagata
            fp.FatturaAppenaPagata += fattura_FatturaAppenaPagata;

            // Non riesco a deregistrare l'evento perchè non ho un nome
            // da utilizzare con -=
            fp.FatturaAppenaPagata += (o, s) => { };
        }