Considere a árvore abaixo:
Tendo em vista que estes tipos de cálculos na árvore são realizados através do percurso em ordem simétrica, escolha a alternativa que contém a equação que representa corretamente a árvore:
a) F + A / (B + (C - D) * E - G)
b) F + A / (B + (C - D) * (E - G))
c) (F + A) / (B + (C - D) * (E - G))
d) F + A / (B + (C - D * E) – G)
e) NDA.
Assinar:
Postar comentários (Atom)
6 comentários:
Resposta correta: A)
Peço-lhes desculpas pela explicação longa, mas não consegui explicar de forma diferente.
Antes de resolvermos o exercicio, temos que ter em mente que a ordem dos cálculos é divisão/multiplicação e depois soma/subtração.
Por isso, para um algoritmo, tanto faz escrevermos "A + B / C" ou "A + (B / C)", ele calculará a divisão e depois a soma. Se quiséssemos somar A e B e depois dividir por C teríamos que usar a seguinte expressão:
"(A + B) / C"
Como explicado no enunciado, as equações são executadas em ordem simétrica.
Então vamos seguir a ordem:
Procura F:
F
Procura raiz de F:
F +
Procura A:
F + A
Procura raiz de A:
F + A /
Procura B:
F + A / B
Procura raiz de B:
F + A / B +
Procura C:
F + A / B + C
Procura raiz de C:
F + A / B + C –
Procura D:
F + A / B + C – D
Procura raiz de E:
F + A / B + C – D *
Procura E:
F + A / B + C – D * E
Procura raiz de G:
F + A / B + C – D * E –
Procura G:
F + A / B + C – D * E – G
Está pronta nossa equação, mas ainda não está validada, pois como dito no inicio desta explicação, existem vários subcalculos que utilizam soma e subtração:
Primeiro devemos observar a arvore e procurar por divisões e multiplicações. A primeira divisão que aparece divide "A" por tudo que está depois do nó “/” e, como não existem só operações de multiplicação e divisão após “/”, devemos delimitar tudo o que está depois do nó “/” entre parênteses:
F + A / (B + C – D * E – G)
Observando a árvore, ainda existe uma multiplicação.
Seguindo o percurso de ordem simétrica, vimos que antes de procurar o nó “*”, a árvore faz a subtração de “C – D” e, por conseqüência, devemos delimitar “C – D” entre parênteses, para que o algoritmo não multiplique apenas "D" por "E":
F + A / (B + (C – D) * E – G)
Como a próxima operação é de subtração e o algoritmo executara primeiro a multiplicação, não existem mais delimitações com parênteses
e nossa equação está pronta.
O segredo é observar a ordem:
Se várias operações de subtração ou soma são realizadas depois do sinal de divisão ou multiplicação, devemos delimitar estas operações entre parênteses.
Só por curiosidade, poderíamos delimitar cada operação realizada entre parênteses resultando em uma equação mais complexa, mas que geraria o mesmo resultado:
(F+ (A / (B +(((C - D) * E) - G))))
Está equação faz os cálculos da seguinte maneira:
Procura-se o nível mais profundo da equação, que no caso é (C - D), ou seja, será o primeiro cálculo à ser validado. Logo após procura-se o segundo nivel mais profundo que é (Y * E), onde Y é o resultado de (C - D), e assim sucessivamente.
Este tipo de equação não é necessário, pois os algoritmos procuram o nível mais profundo da equação sabendo diferenciar a ordem dos cálculos entre multiplicações/divisões e somas/subtrações.
Resposta correta: A)
Peço-lhes desculpas pela explicação longa, mas não consegui explicar de forma diferente.
Antes de resolvermos o exercicio, temos que ter em mente que a ordem dos cálculos é divisão/multiplicação e depois soma/subtração.
Por isso, para um algoritmo, tanto faz escrevermos "A + B / C" ou "A + (B / C)", ele calculará a divisão e depois a soma. Se quiséssemos somar A e B e depois dividir por C teríamos que usar a seguinte expressão:
"(A + B) / C"
Como explicado no enunciado, as equações são executadas em ordem simétrica.
Então vamos seguir a ordem:
Procura F:
F
Procura raiz de F:
F +
Procura A:
F + A
Procura raiz de A:
F + A /
Procura B:
F + A / B
Procura raiz de B:
F + A / B +
Procura C:
F + A / B + C
Procura raiz de C:
F + A / B + C –
Procura D:
F + A / B + C – D
Procura raiz de E:
F + A / B + C – D *
Procura E:
F + A / B + C – D * E
Procura raiz de G:
F + A / B + C – D * E –
Procura G:
F + A / B + C – D * E – G
Está pronta nossa equação, mas ainda não está validada, pois como dito no inicio desta explicação, existem vários subcalculos que utilizam soma e subtração:
Primeiro devemos observar a arvore e procurar por divisões e multiplicações. A primeira divisão que aparece divide "A" por tudo que está depois do nó “/” e, como não existem só operações de multiplicação e divisão após “/”, devemos delimitar tudo o que está depois do nó “/” entre parênteses:
F + A / (B + C – D * E – G)
Observando a árvore, ainda existe uma multiplicação.
Seguindo o percurso de ordem simétrica, vimos que antes de procurar o nó “*”, a árvore faz a subtração de “C – D” e, por conseqüência, devemos delimitar “C – D” entre parênteses, para que o algoritmo não multiplique apenas "D" por "E":
F + A / (B + (C – D) * E – G)
Como a próxima operação é de subtração e o algoritmo executara primeiro a multiplicação, não existem mais delimitações com parênteses
e nossa equação está pronta.
O segredo é observar a ordem:
Se várias operações de subtração ou soma são realizadas depois do sinal de divisão ou multiplicação, devemos delimitar estas operações entre parênteses.
Só por curiosidade, poderíamos delimitar cada operação realizada entre parênteses resultando em uma equação mais complexa, mas que geraria o mesmo resultado:
(F+ (A / (B +(((C - D) * E) - G))))
Está equação faz os cálculos da seguinte maneira:
Procura-se o nível mais profundo da equação, que no caso é (C - D), ou seja, será o primeiro cálculo à ser validado. Logo após procura-se o segundo nivel mais profundo que é (Y * E), onde Y é o resultado de (C - D), e assim sucessivamente.
Este tipo de equação não é necessário, pois os algoritmos procuram o nível mais profundo da equação sabendo diferenciar a ordem dos cálculos entre multiplicações/divisões e somas/subtrações.
Não entendi muito bem sua resposta...
naum poderia ser assim ((((((c-d)*e)-g)+b)/a)+f)?
se nao pq ?
muito obrigado!
A ordem dos fatores não altera o produto:
A + B => B + A;
F*(A + B) => (A + B)*F => F*A + F*B;
Não é necessário deixar cada operação requisitada entre parênteses, pois uma vez que divisão e multiplicação são calculados separadamente de somas e subtrações, seríamos ambíguos se fizéssemos A + (B * C) pois geraria o mesmo resultado de A + B * C.
Acabei esquecendo de responder a sua pergunta:
Poderia ser do jeito que você fez sim, mas como seguimos o percurso em ordem simétrica devemos adicionar os elementos na ordem correta.
Na minha opinião a árvore seria F+(A/(B+(C-D)*E)-G). Então, resposta "e".
Postar um comentário