Exemplos de execuções do programa completo .......................................... Exemplo de execução da calculadora completa (função ``main()``). .. sourcecode:: python Python 3.4.3 (default, Mar 26 2015, 22:03:40) [GCC 4.9.2] on linux Type "copyright", "credits" or "license()" for more information. >>> ================================ RESTART ================================ >>> ================================================== C A L C U L A D O R A P O L O N E S A ================================================== Digite: - uma expressão em notação infixa como "soma = 2 + 3"; ou - "ver" para ligar/desligar o modo verboso; ou - "dic" para exibir o dicionário de variáveis; ou - "fim" para terminar. Operadores possíveis: + - * / % :cinco operações aritméticas básicas ^ : exponeciação ! : menos unário = : atribuição calc >>> 2 ^8 # 2 elevado a 8 256 calc >>> 2 ^!1 # 2 elevado a -1 0.5 calc >>> 2+3 * 4 14 calc >>> 2 ^ 2 ^ 3 # o mesmo que 2 elevado a (2 elevado a 3) 256 calc >>> (2 ^ 2) ^ 3 64 calc >>> ( 2+ 3 )*4 20 calc >>> (2 + 2) * 4 ^ !1 1 calc >>> 2 + 2 * 4 ^ !1 2.5 calc >>> (2 + 2) * 4 ^ 0.5 8 calc >>> ((2 + 2) * 4) ^ 0.5 4 calc >>> a = 5 5 calc >>> a 5 calc >>> b = a + 1 6 calc >>> c = a + b 11 calc >>> c 11 calc >>> prova_1 = 6 6 calc >>> prova_2 = 7 7 calc >>> media = (prova_1 + 2*prova_2) / 3 6.66667 calc >>> media 6.66667 calc >>> i = j = k = 0 0 calc >>> i 0 calc >>> j 0 calc >>> k 0 calc >>> c 11 calc >>> a = b = c + 1 12 calc >>> a 12 calc >>> b 12 calc >>> c 11 calc >>> fim Curta a nossa página no feiçebuqui. .. sourcecode:: python Python 3.4.3 (default, Mar 26 2015, 22:03:40) [GCC 4.9.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> ================================ RESTART ================================ >>> ================================================== C A L C U L A D O R A P O L O N E S A ================================================== Digite: - uma expressão em notação infixa como "soma = 2 + 3"; ou - "ver" para ligar/desligar o modo verboso; ou - "dic" para exibir o dicionário de variáveis; ou - "fim" para terminar. Operadores possíveis: + - * / % :cinco operações aritméticas básicas ^ : exponeciação ! : menos unário = : atribuição calc >>> ver AVISO: modo verboso ativado. calc >>> a = b = c = 1 eval(): string expr = 'a = b = c = 1' eval(): lista tokens = [V('a'), O('='), V('b'), O('='), V('c'), O('='), N(1)] lista de tokens: [V('a'), V('b'), V('c'), N(1), O('='), O('='), O('=')] pilha de execução: [] dicionário de variáveis: {} modo verboso: ativado lista de tokens: [V('b'), V('c'), N(1), O('='), O('='), O('=')] pilha de execução: [V('a')] dicionário de variáveis: {} modo verboso: ativado lista de tokens: [V('c'), N(1), O('='), O('='), O('=')] pilha de execução: [V('a'), V('b')] dicionário de variáveis: {} modo verboso: ativado lista de tokens: [N(1), O('='), O('='), O('=')] pilha de execução: [V('a'), V('b'), V('c')] dicionário de variáveis: {} modo verboso: ativado lista de tokens: [O('='), O('='), O('=')] pilha de execução: [V('a'), V('b'), V('c'), N(1)] dicionário de variáveis: {} modo verboso: ativado lista de tokens: [O('='), O('=')] pilha de execução: [V('a'), V('b'), N(1)] dicionário de variáveis: {'c': 1.0} modo verboso: ativado lista de tokens: [O('=')] pilha de execução: [V('a'), N(1)] dicionário de variáveis: {'c': 1.0, 'b': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(1)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 1 calc >>> a eval(): string expr = 'a' eval(): lista tokens = [V('a')] lista de tokens: [V('a')] pilha de execução: [] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [V('a')] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 1 calc >>> b eval(): string expr = b eval(): lista tokens = [V('b')] lista de tokens: [V('b')] pilha de execução: [] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [V('b')] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 1 calc >>> c eval(): string expr = c eval(): lista tokens = [V('c')] lista de tokens: [V('c')] pilha de execução: [] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [V('c')] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 1 calc >>> 2 ^ 2 ^ 3 eval(): string expr = '2 ^ 2 ^ 3' eval(): lista tokens = [N(2), O('^'), N(2), O('^'), N(3)] lista de tokens: [N(2), N(2), N(3), O('^'), O('^')] pilha de execução: [] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(2), N(3), O('^'), O('^')] pilha de execução: [N(2)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(3), O('^'), O('^')] pilha de execução: [N(2), N(2)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('^'), O('^')] pilha de execução: [N(2), N(2), N(3)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('^')] pilha de execução: [N(2), N(8)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(256)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 256 calc >>> (2 ^ 2) ^ 3 eval(): string expr = '(2 ^ 2) ^ 3' eval(): lista tokens = [P('('), N(2), O('^'), N(2), P(')'), O('^'), N(3)] lista de tokens: [N(2), N(2), O('^'), N(3), O('^')] pilha de execução: [] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(2), O('^'), N(3), O('^')] pilha de execução: [N(2)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('^'), N(3), O('^')] pilha de execução: [N(2), N(2)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(3), O('^')] pilha de execução: [N(4)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('^')] pilha de execução: [N(4), N(3)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(64)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 64 calc >>> 2 ^ (a + b) eval(): string expr = '2 ^ (a + b)' eval(): lista tokens = [N(2), O('^'), P('('), V('a'), O('+'), V('b'), P(')')] lista de tokens: [N(2), V('a'), V('b'), O('+'), O('^')] pilha de execução: [] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [V('a'), V('b'), O('+'), O('^')] pilha de execução: [N(2)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [V('b'), O('+'), O('^')] pilha de execução: [N(2), V('a')] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('+'), O('^')] pilha de execução: [N(2), V('a'), V('b')] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('^')] pilha de execução: [N(2), N(2)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(4)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 4 calc >>> c = c + 1 eval(): string expr = 'c = c + 1' eval(): lista tokens = [V('c'), O('='), V('c'), O('+'), N(1)] lista de tokens: [V('c'), V('c'), N(1), O('+'), O('=')] pilha de execução: [] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [V('c'), N(1), O('+'), O('=')] pilha de execução: [V('c')] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(1), O('+'), O('=')] pilha de execução: [V('c'), V('c')] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('+'), O('=')] pilha de execução: [V('c'), V('c'), N(1)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('=')] pilha de execução: [V('c'), N(2)] dicionário de variáveis: {'c': 1.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(2)] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 2 calc >>> c eval(): string expr = 'c' eval(): lista tokens = [V('c')] lista de tokens: [V('c')] pilha de execução: [] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [V('c')] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 2 calc >>> a = c ^ 0.5 eval(): string expr = 'a = c ^ 0.5' eval(): lista tokens = [V('a'), O('='), V('c'), O('^'), N(0.5)] lista de tokens: [V('a'), V('c'), N(0.5), O('^'), O('=')] pilha de execução: [] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [V('c'), N(0.5), O('^'), O('=')] pilha de execução: [V('a')] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(0.5), O('^'), O('=')] pilha de execução: [V('a'), V('c')] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('^'), O('=')] pilha de execução: [V('a'), V('c'), N(0.5)] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('=')] pilha de execução: [V('a'), N(1.41421)] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(1.41421)] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado 1.41421 calc >>> a eval(): string expr = 'a' eval(): lista tokens = [V('a')] lista de tokens: [V('a')] pilha de execução: [] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado lista de tokens: [] pilha de execução: [V('a')] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado 1.41421 calc >>> dic {'c': 2, 'b': 1, 'a': 1.41421} calc >>> ver AVISO: modo verboso desativado. calc >>> ver AVISO: modo verboso ativado. calc >>> a = eval(): string expr = 'a =' eval(): lista tokens = [V('a'), O('=')] lista de tokens: [V('a'), O('=')] pilha de execução: [] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado lista de tokens: [O('=')] pilha de execução: [V('a')] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado ERRO: falta(m) operando(s) para processar o operador: = calc >>> a = 1 eval(): string expr = 'a = 1' eval(): lista tokens = [V('a'), O('='), N(1)] lista de tokens: [V('a'), N(1), O('=')] pilha de execução: [] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado lista de tokens: [N(1), O('=')] pilha de execução: [V('a')] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado lista de tokens: [O('=')] pilha de execução: [V('a'), N(1)] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.4142135623730951} modo verboso: ativado lista de tokens: [] pilha de execução: [N(1)] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado 1 calc >>> b = 2 eval(): string expr = 'b = 2' eval(): lista tokens = [V('b'), O('='), N(2)] lista de tokens: [V('b'), N(2), O('=')] pilha de execução: [] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(2), O('=')] pilha de execução: [V('b')] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('=')] pilha de execução: [V('b'), N(2)] dicionário de variáveis: {'c': 2.0, 'b': 1.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(2)] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado 2 calc >>> c = (a + 1) * b ^ 0.5 eval(): string expr = 'c = (a + 1) * b ^ 0.5' eval(): lista tokens = [V('c'), O('='), P('('), V('a'), O('+'), N(1), P(')'), O('*'), V('b'), O('^'), N(0.5)] lista de tokens: [V('c'), V('a'), N(1), O('+'), V('b'), N(0.5), O('^'), O('*'), O('=')] pilha de execução: [] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [V('a'), N(1), O('+'), V('b'), N(0.5), O('^'), O('*'), O('=')] pilha de execução: [V('c')] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(1), O('+'), V('b'), N(0.5), O('^'), O('*'), O('=')] pilha de execução: [V('c'), V('a')] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('+'), V('b'), N(0.5), O('^'), O('*'), O('=')] pilha de execução: [V('c'), V('a'), N(1)] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [V('b'), N(0.5), O('^'), O('*'), O('=')] pilha de execução: [V('c'), N(2)] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [N(0.5), O('^'), O('*'), O('=')] pilha de execução: [V('c'), N(2), V('b')] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('^'), O('*'), O('=')] pilha de execução: [V('c'), N(2), V('b'), N(0.5)] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('*'), O('=')] pilha de execução: [V('c'), N(2), N(1.41421)] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [O('=')] pilha de execução: [V('c'), N(2.82843)] dicionário de variáveis: {'c': 2.0, 'b': 2.0, 'a': 1.0} modo verboso: ativado lista de tokens: [] pilha de execução: [N(2.82843)] dicionário de variáveis: {'c': 2.8284271247461903, 'b': 2.0, 'a': 1.0} modo verboso: ativado 2.82843 calc >>> ver AVISO: modo verboso desativado. calc >>> fim Curta a nossa página no feiçebuqui.