Ensinar a linguagem Python, do zero, bem do básico, da maneira mais simples e fácil possível, oferecendo o conteúdo mais rico e bem destrinchado da internet.
Adquirimos livros, cursos, assistimos aulas presenciais (de cursos e universidades), vídeo-aulas e lemos dezenas de outros sites (em português e inglês), com um objetivo: passar todo o conhecimento possível para vocês.
Isso foi feito através de centenas de tutoriais, com explicações, conversas, códigos comentados, questões propostas, exercícios resolvidos, criação de softwares e até jogos.
E o custo disso: 0.
Nada.
Nem se cadastrar precisa, nem fazer login ou sequer nos dar seu e-mail ou nome.
Só acessar e estudar. Simples assim.
Deseja fazer parte dessa família e nos ajudar?
Veja abaixo:
Escreva um programa recursivo que se comporte como uma calculadora básica. Seu
ResponderExcluirprograma receberá como entrada uma string contendo uma expressão aritmética que incluirá
apenas valores inteiros, parênteses e operações de adição (+), subtração (-), multiplicação (*)
e divisão (/). Como saída seu programa deverá emitir o resultado da expressão informada.
Lembre-se que a ordem para realizar as operações determina que multiplicações e divisões
têm precedência sobre adição e subtração. Parênteses têm precedência sobre multiplicações
e divisões.
Restrições
O programa deve avaliar a expressão recursivamente. Soluções que não utilizem recursão
como mecanismo de avaliação das expressões não serão consideradas.
Não é permitido importar nenhum módulo. Faça tudo utilizando Python básico.
Dica
A avaliação de uma expressão aritmética pode ser vista como um processo recursivo, onde
para avaliar cada operação antes é preciso avaliar as expressões que definem seus
operandos. Por exemplo, para avaliar a expressão “3 + 5 * 6 - 8” podemos organizar as
operações conforme a seguinte precedência dada pelos parênteses “3 + ((5 * 6) - 8)”. Ou seja,
a chamada de função que avalia a adição do operando “3” com o operando “5 * 6 - 8” é
chamada recursivamente para avaliar o segundo operando, que por sua vez quebra a
expressão em “5 * 6” e “8” na avaliação da subtração e, em nova chamada recursiva sobre o
operando “5 * 6” retorna o resultado da avaliação da multiplicação entre “5” e “6”.
Descrição da Entrada
A entrada é composta por vários casos de teste, um por linha. Cada linha contêm uma
expressão matemática.
Sempre existirá um espaço em branco antes e depois de cada operador aritmético. Os
operadores de adição, subtração, multiplicação e divisão são representados, respectivamente
pelos caracteres “+”, “-”, “*” e “/”.
O caractere de abertura de parênteses “(“ sempre será seguido de um espaço em branco. Por
sua vez, o caractere de fechamento de parênteses “)” sempre será precedido de um espaço
em branco.
O término da entrada é sinalizado pelo texto “0”.
Descrição da Saída
Para cada caso de teste seu programa deve imprimir uma linha contendo o resultado da
expressão avaliada. Imprima os resultados com duas casas decimais.