Metodologias (Parte I) Viviane Torres da Silva [email protected] viviane.silva/isma.
EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade...
Transcript of EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade...
![Page 1: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/1.jpg)
EXPRESSÕES ARITMÉTICAS
Inhaúma Neves Ferraz
Departamento de Ciência da Computação
Universidade Federal Fluminense
![Page 2: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/2.jpg)
2
Sumário
DefiniçõesAvaliação de expressõesTransformação de expressões infixas em pós-fixas Algoritmo com bastante abstração Exemplo Declaração de funções auxiliares
Avaliação de expressões pós-fixas Algoritmo com bastante abstração Exemplo
![Page 3: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/3.jpg)
3
Definições
Uma expressão aritmética é composta de operandos, operadores e delimitadores.As operações são definidas por seus operadores. A ordem de avaliação das operações depende dos delimitadores e da prioridade dos operadores.As expressões aritméticas podem ser representas por 3 tipos de notação. Infixa Pré-fixa Pós-fixa
![Page 4: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/4.jpg)
4
Avaliação de expressões (1)
A avaliação de expressões na forma pós-fixa é bastante simplificada por diversas razões: Não há necessidade de emprego de delimitadores; A prioridade dos operadores deixa de ser relevante; As expressões podem ser analisadas fazendo uma
varredura do início para o final armazenando os operandos em uma pilha, aplicando os operadores sobre os elementos da pilha e empilhando os resultados das operações efetuadas.
![Page 5: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/5.jpg)
5
Avaliação de expressões (2)
A avaliação de expressões aritméticas pode ser feita transformando as expressões infixas, familiares aos seres humanos, em expressões pós-fixas e, a seguir, avaliando o resultado das expressões pós-fixas obtidas.Para a transformação de expressões aritméticas infixas em pós-fixas e sua avaliação é conveniente definir diversas funções auxiliares.
![Page 6: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/6.jpg)
6
Transformação de expressões aritméticas infixas em pós-fixas
Esta transformação será mostrada da seguinte maneira: Inicialmente será apresentado um algoritmo
com bastante abstração Será apresentado um exemplo Finalmente serão apresentadas as declarações
de funções utilizadas em um algoritmo com pouca abstração (para implementação)
![Page 7: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/7.jpg)
Transformação de expressões infixas em pós-fixas
![Page 8: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/8.jpg)
8
Conversão da forma infixa para pós-fixa A entrada é um vetor infixVect de tokens (strings) de uma expressão infixa
Quando o token for um operando Inclui-lo no final do vetor postfixVect de tokens (strings) que armazena a expressão pós-
fixa correspondente Quando o token for um parênteses ou um operador
Se o token x for “(“ Empilhar o token x em stackVect de tokens (strings)
Se o token x for “)” Repetidamente desempilhar um token y de stackVect e adiciona-lo ao vetor postfixVect
até encontrar “(“ no final da pilha stackVect. Desempilhar então “(“ de stackVect. Se stackVect esvaziar antes de encontrar um “(“, a expressão de entrada não é válida.
Se o token x for um operador Passo 1: Examinar o token y no topo de stackVect. Passo 2: Se(caso 1) stackVect não estiver vazia e (caso 2) y não for “(“ e (caso 3) y
for um operador de precedência igual ou maior do que a de x, desempilhar o token y de stackVect, adiciona-lo ao vetor postfixVect, e ir para o Passo 1 novamente.
Passo 3: Se (caso 1) stackVect estiver vazia ou (caso 2) y for “(“ ou (caso 3) y for um operador de precedência menor do que a de x , adicionar o token x ao vetor postfixVect.
Quando todos os tokens de infixVect tiverem sido processados, repetidamente desempilhar um token y de stackVect e adiciona-lo ao vetor postfixVect até esvaziar a pilha stackVect.
![Page 9: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/9.jpg)
9
infixVect
postfixVect
( a + b - c ) * d – ( e + f )
Conversão da forma infixa para pós-fixa
stackVect
![Page 10: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/10.jpg)
10
infixVect
postfixVect
a + b - c ) * d – ( e + f )
(
stackVect
Conversão da forma infixa para pós-fixa
![Page 11: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/11.jpg)
11
infixVect
postfixVect
+ b - c ) * d – ( e + f )
(
a
stackVect
Conversão da forma infixa para pós-fixa
![Page 12: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/12.jpg)
12
infixVect
postfixVect
b - c ) * d – ( e + f )
(
a
+
stackVect
Conversão da forma infixa para pós-fixa
![Page 13: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/13.jpg)
13
infixVect
postfixVect
- c ) * d – ( e + f )
(
a b
+
stackVect
Conversão da forma infixa para pós-fixa
![Page 14: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/14.jpg)
14
infixVect
postfixVect
c ) * d – ( e + f )
(
a b +
-
Conversão da forma infixa para pós-fixa
stackVect
![Page 15: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/15.jpg)
15
infixVect
postfixVect
) * d – ( e + f )
(
a b + c
-
Conversão da forma infixa para pós-fixa
stackVect
![Page 16: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/16.jpg)
16
infixVect
postfixVect
* d – ( e + f )
a b + c -
Conversão da forma infixa para pós-fixa
stackVect
![Page 17: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/17.jpg)
17
infixVect
postfixVect
d – ( e + f )
a b + c -
*
Conversão da forma infixa para pós-fixa
stackVect
![Page 18: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/18.jpg)
18
infixVect
postfixVect
– ( e + f )
a b + c - d
*
Conversão da forma infixa para pós-fixa
stackVect
![Page 19: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/19.jpg)
19
infixVect
postfixVect
( e + f )
a b + c – d *
-
Conversão da forma infixa para pós-fixa
stackVect
![Page 20: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/20.jpg)
20
infixVect
postfixVect
e + f )
a b + c – d *
-
(
Conversão da forma infixa para pós-fixa
stackVect
![Page 21: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/21.jpg)
21
infixVect
postfixVect
+ f )
a b + c – d * e
-
(
Conversão da forma infixa para pós-fixa
stackVect
![Page 22: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/22.jpg)
22
infixVect
postfixVect
f )
a b + c – d * e
-
(
+
Conversão da forma infixa para pós-fixa
stackVect
![Page 23: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/23.jpg)
23
infixVect
postfixVect
)
a b + c – d * e f
-
(
+
Conversão da forma infixa para pós-fixa
stackVect
![Page 24: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/24.jpg)
24
infixVect
postfixVect
a b + c – d * e f +
-
Conversão da forma infixa para pós-fixa
stackVect
![Page 25: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/25.jpg)
25
infixVect
postfixVect
a b + c – d * e f + -
Conversão da forma infixa para pós-fixa
stackVect
![Page 26: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/26.jpg)
26
Funções auxiliares
Transformação de expressões aritméticas infixas em pós-fixas isoperand isdigit prio expon oper orcd postfix
Avaliação de expressões aritméticas pós-fixas eval
![Page 27: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/27.jpg)
27
Transformação de expressões aritméticas infixas em pós-fixas (1)
isoperand Recebe um caractere, ou “token”, e retorna
verdadeiro (TRUE) quando o caractere não for
+, -, *, /, , (, ).
isdigit Recebe um caractere, ou “token”, e retorna
TRUE quando o “token” for numérico.
![Page 28: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/28.jpg)
28
Transformação de expressões aritméticas infixas em pós-fixas (2)
prio Recebe um “token”, que seja operador e retorna
1 caso o operador seja + ou - 2 caso o operador seja * ou / 3 caso o operador seja ^ 0 em caso contrário
expon Recebe dois reais e retorna o valor do primeiro real elevado à
potencia igual ao segundo real
oper Recebe um “token” (operador) e dois reais (operandos) e
retorna o resultado da aplicação do operador aos dois operandos
![Page 29: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/29.jpg)
29
Transformação de expressões aritméticas infixas em pós-fixas (3)
prcd Recebe dois “tokens”, representando
operadores e retorna TRUE quando o primeiro operador tem precedência sobre o segundo operador ao aparecer à esquerda deste último em uma expressão infixa sem parênteses. Casos particulares ocorrem com o tratamento de parênteses.
![Page 30: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/30.jpg)
30
Transformação de expressões aritméticas infixas em pós-fixas (4)
Regras de tratamento de precedência de parênteses
Ao entrar um ‘)’ saem todos os elementos até encontrar um ‘(‘. Ambos os delimitadores são descartados.
![Page 31: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/31.jpg)
31
Transformação de expressões aritméticas infixas em pós-fixas (5)
postfix Recebe dois strings. O primeiro string (de entrada) representa uma
expressão aritmética sob a forma infixa. O segundo string serve para retornar uma expressão aritmética na forma pós-fixa.
O string de entrada é varrido do início até o final. Se o token do string de entrada for um operando é imediatamente
copiado para o string de saída. Se o token de entrada for um operador, enquanto houver operadores empilhados com precedência maior do que o operador de entrada, estes operadores que estavam empilhados são transferidos para a expressão de saída. O operador de entrada é empilhado.
Ao término da varredura os operadores são desempilhados e copiados para a expressão de saída. Os delimitadores não são transferidos para o string de saída.
![Page 32: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/32.jpg)
32
Avaliação de expressões aritméticas pós-fixas
eval Recebe um string que representa uma expressão infixa
e faz uma varredura do início para o final do string. Se o token corrente for um operando deve ser empilhado sob a forma de real. Se o token corrente for um operador devem ser desempilhados dois operandos sobre os quais o operador vá atuar. O resultado da aplicação do operador aos operandos é empilhado.
Ao término da varredura do string a função retorna o topo da pilha.
![Page 33: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/33.jpg)
Avaliação de expressões pós-fixas
![Page 34: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/34.jpg)
34
Avaliação de expressões aritméticas pós-fixas
Esta avaliação será mostrada da seguinte maneira: Inicialmente será apresentado um algoritmo
com bastante abstração Será apresentado um exemplo
![Page 35: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/35.jpg)
35
Avaliação de expressões aritméticas pós-fixas
Ler os tokens de um vetor de tokens (strings) postfixVect contendo uma expressão pós-fixa
Quando o token for um operando Empilhá-lo em stackVect
Quando o token for um operador Desempilhar de stackVect dois operandos Aplicar o operador aos dois operandos desempilhados de
stackVect obtendo um valor (novo operando) Empilhar em stackVect o valor obtido da aplicação do
operador aos operandos desempilhados
Ao término da varredura do string de postfixVect a função retorna o topo da pilha
![Page 36: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/36.jpg)
36
a b + c – d * e f + -
postfixVect
Avaliação de expressões pós-fixas
stackVect
Situação inicial
![Page 37: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/37.jpg)
37
a b + c – d * e f + -
postfixVect
Avaliação de expressões pós-fixas
stackVect
a
Empilhado o operando a
![Page 38: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/38.jpg)
38
a b + c – d * e f + -
postfixVect
Avaliação de expressões pós-fixas
stackVect
a
b
Empilhado o operando b
![Page 39: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/39.jpg)
39
a b + c – d * e f + -
postfixVect
Desempilhados operandos a e bOperador + aplica-se a a e b
Avaliação de expressões pós-fixas
stackVect
![Page 40: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/40.jpg)
40
a b + c – d * e f + -
postfixVect
Empilhado o resultado a + b
Avaliação de expressões pós-fixas
stackVect
a + b
![Page 41: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/41.jpg)
41
a b + c – d * e f + -
postfixVect
Empilhado o operando c
Avaliação de expressões pós-fixas
stackVect
a + b
c
![Page 42: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/42.jpg)
42
a b + c - d * e f + -
postfixVect
Avaliação de expressões pós-fixas
stackVect
Desempilhados operandos (a + b) e cOperador - aplica-se a (a + b) e c
![Page 43: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/43.jpg)
43
a b + c - d * e f + -
postfixVect
Avaliação de expressões pós-fixas
stackVect
a + b - c
Empilhado o resultado (a + b - c)
![Page 44: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/44.jpg)
44
a b + c – d * e f + -
postfixVect
Empilhado o operando d
Avaliação de expressões pós-fixas
stackVect
a + b - c
d
![Page 45: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/45.jpg)
45
a b + c – d * e f + -
postfixVect
Desempilhados (a+b-c) e dOperador * aplica-se a (a+b-c) e d
Avaliação de expressões pós-fixas
stackVect
![Page 46: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/46.jpg)
46
a b + c – d * e f + -
postfixVect
Empilhado o operando (a+b-c) * d
Avaliação de expressões pós-fixas
stackVect
(a + b - c) * d
![Page 47: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/47.jpg)
47
a b + c – d * e f + -
postfixVect
Empilhado o operando e
Avaliação de expressões pós-fixas
stackVect
(a + b - c) * d
e
![Page 48: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/48.jpg)
48
a b + c – d * e f + -
postfixVect
Empilhado o operando f
Avaliação de expressões pós-fixas
stackVect
(a + b - c) * d
e
f
![Page 49: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/49.jpg)
49
a b + c – d * e f + -
postfixVect
Desempilhados operandos e e fOperador + aplica-se a e e f
Avaliação de expressões pós-fixas
stackVect
(a + b - c) * d
![Page 50: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/50.jpg)
50
a b + c – d * e f + -
postfixVect
Empilhado operando e + f
Avaliação de expressões pós-fixas
stackVect
(a + b - c) * d
e + f
![Page 51: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/51.jpg)
51
a b + c – d * e f + -
postfixVect
Desempilhados operandos (a+b-c)*d e (e+ f)Operador - aplica-se a (a+b-c)*d e (e+ f)
Avaliação de expressões pós-fixas
stackVect
![Page 52: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/52.jpg)
52
a b + c – d * e f + -
postfixVect
Empilhado (a + b - c) * d – (e + f)
Avaliação de expressões pós-fixas
stackVect
(a + b - c) * d – (e + f)
![Page 53: EXPRESSÕES ARITMÉTICAS Inhaúma Neves Ferraz Departamento de Ciência da Computação Universidade Federal Fluminense ferraz@ic.uff.br.](https://reader033.fdocuments.net/reader033/viewer/2022052618/552fc10b497959413d8c176f/html5/thumbnails/53.jpg)
53
a b + c – d * e f + -
postfixVect
Saída obtida
Desempilhar (a + b - c) * d – (e + f)
Avaliação de expressões pós-fixas
stackVect