Example #1
0
        public void Calculate(string sing)
        {
            double ret = nums.Pop();

            while (nums.getTop() != 0)
            {
                if (sing == "+")
                {
                    ret += nums.Pop();
                }
                else if (sing == "-")
                {
                    ret -= nums.Pop();
                }
                else if (sing == "*")
                {
                    ret *= nums.Pop();
                }
                else if (sing == "/")
                {
                    ret /= nums.Pop();
                }
                else
                {
                    ret %= nums.Pop();
                }
            }

            nums.Push(ret);
            Console.WriteLine(ret);
        }
    public static void Main(string[] args)
    {
        Pilha <string> p = new Pilha <string>();

        p.Push("Vicente");
        p.Push("de");
        p.Push("Paiva");
        p.Push("Limeira");

        Form <string> .ListaOrdemChegada(p);

        Form <string> .ListaOrdemInversa(p);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        p.Pop();
        Form <string> .ListaOrdemChegada(p);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        p.Pop();
        Form <string> .ListaOrdemChegada(p);

        Console.WriteLine($"\nAgora com inteiros ...");

        Pilha <int> n = new Pilha <int>();

        n.Push(100);
        n.Push(7);
        n.Push(21);
        n.Push(19);

        Form <int> .ListaOrdemChegada(n);

        Form <int> .ListaOrdemInversa(n);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        n.Pop();
        Form <int> .ListaOrdemChegada(n);

        Console.WriteLine($"\nExcluindo o ultimo a chegar ...");
        n.Pop();
        Form <int> .ListaOrdemChegada(n);

        return;
    }
Example #3
0
        static void Main(string[] args)
        {
            //Criando meu objto do tipo Pilha, passando aquantidade de casas que a pilha recebera
            Pilha pilha = new Pilha(10);

            int    sair    = 0;
            string imprime = "";

            while (sair == 0)
            {
                ImprimeOpcoes();
                int opcao = int.Parse(Console.ReadLine());
                if (opcao == 0)
                {
                    sair = 1;
                }
                else
                {
                    if (opcao == 1)
                    {
                        Console.Clear();
                        Console.WriteLine("Digite um valor para inserir na Pilha \n");
                        int valor = int.Parse(Console.ReadLine());
                        pilha.Push(valor);
                        Console.Clear();
                        imprime = pilha.ImprimirPilha();
                        Console.WriteLine(imprime);
                    }
                    else if (opcao == 2)
                    {
                        Console.Clear();
                        pilha.Pop();
                        Console.Clear();
                        imprime = pilha.ImprimirPilha();
                        Console.WriteLine(imprime);
                    }
                    else if (opcao == 3)
                    {
                        // Console.Clear();
                        Console.WriteLine("Digite um valor para inserir na Pilha \n");
                        int valor = int.Parse(Console.ReadLine());
                        pilha.Peek(valor);
                        // Console.Clear();
                        imprime = pilha.ImprimirPilha();
                        Console.WriteLine(imprime);
                    }
                    else if (opcao == 4)
                    {
                        Console.Clear();
                        imprime = pilha.ImprimirPilha();
                        Console.WriteLine(imprime);
                    }
                }
            }
        }
Example #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Exemplo Pilha!");
            Pilha pilha = new Pilha();

            pilha.Push(14);
            pilha.Push(25);
            pilha.Push(36);

            Console.WriteLine($"Topo={pilha.Peek()}");
            Console.WriteLine($"Qtd={pilha.Count()}");

            pilha.Pop();
            pilha.Pop();

            Console.WriteLine($"Topo={pilha.Peek()}");
            Console.WriteLine($"Qtd={pilha.Count()}");

            pilha.Pop();

            Console.WriteLine($"Topo={pilha.Peek()}");
            Console.WriteLine($"Qtd={pilha.Count()}");
        }
Example #5
0
        private Carta GetValidCard()
        {
            Carta         aux      = this.monte.RemoveTopCard();
            Pilha <Carta> pilhaaux = new Pilha <Carta>();

            while (aux is Especial || aux is Curinga)
            {
                pilhaaux.Push(aux);
                aux = this.monte.RemoveTopCard();
            }
            while (pilhaaux.Count > 0)
            {
                this.monte.Add(pilhaaux.Pop());
            }
            return(aux);
        }
Example #6
0
        private void btnApagar_Click(object sender, EventArgs e)
        {
            char ultimoCaractere = ' ';

            do
            {
                infixaMostrada = infixaMostrada.Substring(0, infixaMostrada.Length - 1);
                if (infixaMostrada.Length > 0)
                {
                    ultimoCaractere = infixaMostrada[infixaMostrada.Length - 1];
                }
                else
                {
                    break;
                }
            } while (ultimoCaractere.Equals(' '));

            if (ultimoCaractere == '√')
            {
                infixaMostrada = infixaMostrada.Substring(0, infixaMostrada.Length - 1);
            }
            else if (ultimoCaractere == 'g' && infixaMostrada.Length > 2 && infixaMostrada.Substring(infixaMostrada.Length - 3) == "log")
            {
                infixaMostrada = infixaMostrada.Substring(0, infixaMostrada.Length - 3);
            }

            string qualApagou = " ";

            qualApagou = calculadora.Infixa[calculadora.QtdElementosUltimaConta - 1];
            if (IsNumeric(qualApagou) || qualApagou == "." || qualApagou == ",")
            {
                qualApagou = qualApagou[qualApagou.Length - 1].ToString();
                string ultimoNumero = calculadora.Infixa[calculadora.QtdElementosUltimaConta - 1];
                calculadora.Infixa[calculadora.QtdElementosUltimaConta - 1] = ultimoNumero.Substring(0, ultimoNumero.Length - 1);
                if (ultimoNumero.Length <= 1)
                {
                    calculadora.ExcluirDoVetor();
                }
            }
            else
            {
                if (qualApagou == "√")
                {
                    operacoesAColocar.Empilhar("√");
                    quandoColocarOperacao.Empilhar(1);

                    calculadora.ExcluirDoVetor();
                }
                else if (qualApagou == "log")
                {
                    operacoesAColocar.Empilhar("log");
                    quandoColocarOperacao.Empilhar(1);

                    calculadora.ExcluirDoVetor();
                }

                calculadora.ExcluirDoVetor();

                if (qualApagou == "(" && !operacoesAColocar.EstaVazia())
                {
                    quandoColocarOperacao.Empilhar(quandoColocarOperacao.Pop() - 1); // Significa que a operação está mais próxima de ser colocada
                    if (quandoColocarOperacao.Topo == 0)                             // Quer dizer que o parênteses que deu origem à operação - Ex: log( - foi apagado
                    {
                        operacoesAColocar.Pop();
                        quandoColocarOperacao.Pop();
                    }
                }
                else if (qualApagou == ")" && !operacoesAColocar.EstaVazia()) // Afasta a operação de poder ser colocada
                {
                    quandoColocarOperacao.Empilhar(quandoColocarOperacao.Pop() + 1);
                }
            }
            HabilitarBotoes();
            AtualizarVisor();
        }