Criando Expressões

Ver Todos os Exercícios

Teoria

Introdução

Fala aí, aqui é o Guga do Responde Aí! Tudo bem com você?

Nós discutimos bastante anteriormente sobre o uso dos operadores na linguagem C, mas até então tudo isso foi feito de forma separada com o intuito de entendermos melhor o que cada operador faz em um programa.

Nesse tópico, nós iremos avançar um pouco mais e juntaremos operadores de mesmo tipo com o objetivo de formar expressões.

Mas será que o computador é capaz de reconhecer a precedência de operações em uma expressão?

Já adianto para você, a resposta é sim! (e ele nem precisa fazer essa pose de pensador)

Expressões

Uma expressão nada mais é do que um conjunto de duas ou mais operações que devem ser realizadas em uma determinada ordem.

Tá, mas o que isso tem a ver com programação? Dá uma olhada no exemplo a seguir.

Exemplo: crie a seguinte expressão na linguagem C.

8 + 3 * 5 - 2 7 + 1

Como você acha que ficaria? O trecho de código a seguir expressa corretamente a expressão acima?

A resposta é NÃO! Tome muito cuidado com isso, por favorzinho.

A melhor maneira de codificar a expressão do exemplo, é o trecho de código ilustrado na figura a seguir:

Isso acontece, pois a linguagem C possui uma ordem de precedência de todos os seus operadores e nem sempre é a mesma ordem que nós precisamos que as operações sejam executadas.

É por esse motivo que nós utilizamos MUITOS parênteses, eles servem tanto para definir a ordem que nós queremos que as operações sejam executadas, quanto para facilitar a leitura do nosso código.

Nós também podemos delimitar o número de operandos de determinado operador utilizando os parênteses, dá uma olhada nesse exemplo com o operador de negação:

Então não se esqueça, sempre que você quiser delimitar o uso do operador (independentemente do tipo) a um conjunto de operandos ou definir uma ordem de precedência, utilize os parênteses.

Agora que você já sabe como lidar com a ordem de execução das operações de uma expressão, observaremos uma tabela matadora com a ordem de precedência padrão dos principais operadores da linguagem, olha só que bacana:

Relaxa, com o tempo nós não precisaremos nem olhar mais essa tabela que tudo estará praticamente no automático, mas nesse momento ela é de grande ajuda.

Para finalizar, um exemplo que aborda tudo isso que nós conversamos.

Exemplo: crie uma expressão que só é verdadeira se uma variável x for maior que 32 * 4 - 1 e a negação de uma outra variável, declarada como y , seja menor que o resto de 25 2 mais o valor 35 .

O trecho de código que melhor representa essa expressão é:

Nessa altura do campeonato, nós já estamos preparados para resolver os exercícios de fixação sobre esse assunto, então vamos exercitar!

Sem cansaço, hein? Te vejo na página do lado!

Exercícios Resolvidos

Exercício Resolvido #1

Observe o seguinte trecho de código:

De acordo com a ordem de precedência padrão da linguagem C, qual é o resultado da expressão que será atribuído a variável r e s u l t a d o e consequentemente impresso na tela?

Passo 1

Para descobrir o valor atribuído a variável r e s u l t a d o , temos que relembrar a ordem de precedência padrão dos operadores da linguagem C:

Resposta

Portanto, ao executarmos a multiplicação, divisão, soma e subtração respectivamente nessa ordem, o valor impresso na tela será 8.67, uma vez que a função printf está limitando essa impressão em duas casas decimais.