static void Main(string[] args)
        {
            Program RegraDoTrapezio = new Program();
               // RegraDoTrapezio.ExecucaoExercicioTrapezio();
            RegraDoTrapezio regra = new RegraDoTrapezio();
            Console.WriteLine(regra.CalculaRegraExemplo(0, 0.8, 100));
            //Não é necessário, utilizado para entender o problema 24.1
            //RegraDoTrapezio.ExecucaoExemploAV1_24_1();

            Console.ReadLine();
        }
        public double CalculaIntegracao(double a, double b, int maxit, double es)
        {
            Stopwatch sw = new Stopwatch();
            tempoExecucao = TimeSpan.Zero;
            sw.Start();

            RegraDoTrapezio.RegraDoTrapezio trap = new RegraDoTrapezio.RegraDoTrapezio();
            FuncoesSimpson simp = new FuncoesSimpson();
            double[,] I = new double[maxit, maxit];
            double ea = 0;
            int n = 1;
            int j = 0;
            int iter = 0;
            double solucao = 0;
            I[1, 1] = trap.CalculaRegraEq(n, a, b);

            while (true)
            {
                iter += 1;

                n = (int)Math.Pow(2, iter);

                I[iter+1,1] = trap.CalculaRegraEq(n, a, b);

                for(int k = 2; k <= iter + 1; k++)
                {
                    j = 2 + iter - k;
                    I[j, k] = (Math.Pow(4, k - 1) * I[j + 1, k - 1] - I[j, k - 1]) / (Math.Pow(4, k - 1) - 1);
                }
                ea = Math.Abs((I[1, iter] - I[2, iter - 1]) / I[1, iter]) * 100;
                if(iter >= maxit || ea <= es)
                {
                    break;
                }
            }

            iteracoes = iter;
            solucao = Math.Round(I[1, iter + 1],6);
            sw.Stop();

            tempoExecucao = sw.Elapsed;

            return solucao;
        }
        private void ExecucaoExemploAV1_24_1()
        {
            RegraDoTrapezio exercicioAV1_24_1 = new RegraDoTrapezio();
            double[] H = { 300, 150, 100, 50, 25, 10, 5, 1, 0.05 };
            int[] n = { 1, 2, 3, 6, 12, 30, 60, 300, 6000 };
            double ti = -100, tf = 200;
            Console.WriteLine("Utilizacao da regra do trapezio para calcular a equacao: ");
            Console.WriteLine();
            Console.WriteLine(equacaoExercicioAV1_24_1);
            Console.WriteLine("Gramas: 1000 g");
            Console.WriteLine("Temperatura inicial " + ti + " °C");
            Console.WriteLine("Temperatura final " + tf + " °C");

            for (int i = 0; i < n.Length; i++)
            {
                Console.WriteLine("H = " + H[i]);
                Console.WriteLine("s = " + exercicioAV1_24_1.CalculaExercicioAV1_24_1(ti, tf, n[i]));
            }
        }
 private void ExecucaoExercicioTrapezio()
 {
     RegraDoTrapezio aplicacaoDaRegra = new RegraDoTrapezio();
     int[] segmentos = { 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000 };
     Console.WriteLine("Utilização da Regra do Trapezio para calcular o deslocamento do paraquedista: ");
     Console.WriteLine();
     Console.WriteLine(equacaoExercicio);
     Console.WriteLine();
     Stopwatch sw = new Stopwatch();
     TimeSpan tempo = TimeSpan.Zero;
     sw.Start();
     for (int i = 0; i < segmentos.Length; i++)
     {
         Console.WriteLine("I = " + aplicacaoDaRegra.CalculaRegraExercicio(0, 10, segmentos[i]));
         //Console.WriteLine("O sitema levou " + aplicacaoDaRegra.tempoTrapezio + " para ser resolvido");
     }
     sw.Stop();
     tempo = sw.Elapsed;
     Console.WriteLine();
     Console.WriteLine("O sistema levou " + tempo + " com a regra do trapezio para ser resolvido");
     Console.WriteLine("");
 }