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!

Expressões

Exercícios Resolvidos

Exercício Resolvido #1

Faça uma lista com a ordem de execução dos principais operadores aritméticos, relacionais e lógicos da linguagem C.

Passo 1

Segue a figura que ilustra a ordem de precedência dos principais operadores da linguagem C:

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #2

A área de uma circunferência é dada pela seguinte equação:

A = π * r 2

Reescreva essa equação utilizando uma expressão na linguagem C.

Passo 1

A figura abaixo ilustra como representar a equação apresentada no enunciado (área de uma circunferência) utilizando a linguagem C:

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #3

A área de um trapézio é calculada a partir da seguinte equação:

A = B + b * h 2

Reescreva essa equação utilizando uma expressão na linguagem C.

Passo 1

A figura abaixo ilustra como representar a equação apresentada no enunciado (área de um trapézio) utilizando a linguagem C:

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #4

Dada a seguinte expressão aritmética:

6 - 2 2 * 1 + 2 - 1

Responda se o trecho de código abaixo a representa de forma correta, caso contrário reescreva esse código de forma com que o mesmo represente a expressão de forma correta.

Passo 1

O código não representa a expressão de forma fiel por não especificar totalmente ao programa a ordem de execução dos operadores, o que fará que em alguns casos indesejados a ordem padrão seja executada.

Passo 2

A figura a seguir ilustra o trecho de código na linguagem C que melhor representa a expressão descrita no enunciado:

É claro que nem todos os parênteses são necessários, pois em alguns casos eles só delimitam uma ordem que já seria previamente executada. Ainda assim, eles são muito interessantes para a nós possamos visualizar o código mais facilmente.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #5

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.

Exercício Resolvido #6

Dada a seguinte fórmula para o cálculo do índice de massa corpórea:

I . M . C = p e s o a l t u r a 2

Desenvolva um programa que tenha como entrada o peso e a altura de uma pessoa, e, após o processamento, imprima na tela o I.M.C calculado.

Passo 1

A primeira coisa que devemos fazer é definir o escopo do nosso programa.

Como uma impressão deve ser realizada, temos que incluir as funções de entrada e saída presentes na biblioteca padrão stdio.h.

Além disso, devemos declarar a função main() que será responsável por alocar e executar o código principal do nosso programa.

Passo 2

Com o escopo definido, nós podemos declarar as variáveis que utilizaremos no desenvolvimento do código.

Passo 3

Com as variáveis declaradas, podemos criar a expressão que melhor representa a fórmula utilizada para o cálculo do imc.

Passo 4

Para finalizar, basta realizarmos a impressão na tela da variável imc com duas casas decimais seguida de uma quebra de linha.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #7

Uma professora de cálculo, Aninha, decidiu passar uma equação extremamente simples como exercício de revisão para a sua turma. Aproveitando suas habilidades em programação na linguagem C, você decidiu fazer um código para conferir se seus cálculos estavam corretos.

Faça um programa que leia três números inteiros e positivos (a, b e c) e calcule a seguinte expressão:

d = r + s 7

Onde:

r = a + b 2

e

s = b + c 2

Imprima na tela o resultado da expressão com 2 casas decimais.

Passo 1

A primeira coisa que devemos fazer é definir o escopo do nosso programa.

Como uma impressão deve ser realizada, temos que incluir as funções de entrada e saída presentes na biblioteca padrão stdio.h.

Além disso, devemos declarar a função main() que será responsável por alocar e executar o código principal do nosso programa.

Passo 2

Agora, devemos realizar a declaração e inicialização das variáveis.

Passo 3

Com as variáveis declaradas, devemos codificar o comando que irá realizar a entrada de dados no programa, nesse caso utilizaremos scanf() para atribuir valores as variáveis a, b e c.

Passo 4

Agora devemos criar a expressão que gerará o dado que a variável r irá armazenar.

Passo 5

O mesmo deve ser feito com a expressão que gerará o dado que a variável s irá armazenar.

Passo 6

Com as expressões auxiliares definidas, já podemos criar a expressão geral que a variável d irá armazenar.

Passo 7

Por fim, basta realizarmos a impressão da variável d com duas casas decimais.

Resposta

Ei, a resposta está no passo a passo :)

Exercício Resolvido #8

Seu tio adora comprar itens importados por serem mais baratos no exterior do que no Brasil, mas ele sempre é surpreendido pelo imposto de importação. Então, ele pediu para você fazer um programa que o ajude a calcular o valor final do produto com o imposto.

No Brasil, o imposto de importação é de 60% sobre o valor do produto somado ao frete, mais o I.C.M.S (Imposto sobre Circulação de Mercadorias e Serviços) o qual, no Estado de São Paulo, é de 17% (I.C.M.S é aplicado ao valor do produto mais o frete mais os 60%).

Desse modo, seu programa deve receber o valor do produto e do frete em dólares, e imprimir na tela o valor final da compra.

Passo 1

A primeira coisa que devemos fazer é definir o escopo do nosso programa.

Como uma impressão deve ser realizada, temos que incluir as funções de entrada e saída presentes na biblioteca padrão stdio.h.

Além disso, devemos declarar a função main() que será responsável por alocar e executar o código principal do nosso programa.

Passo 2

Com o escopo definido, devemos declarar as variáveis e constantes que serão úteis para a codificação do programa.

Passo 3

Com as variáveis declaradas, podemos codificar o comando de entrada dos dados, nesse caso utilizaremos a função scanf().

Passo 4

Agora podemos criar a expressão que soma o valor do imposto de importação sobre o valor do produto somado ao valor do frete.

Passo 5

Nesse momento, devemos completar a expressão do valor total em dólares somando o valor do I.C.M.S do estado de São Paulo sobre o valor do produto somado o valor do frete e com o valor do imposto de importação.

Passo 6

Para finalizar o cálculo do valor de importação, basta transformamos o valor armazenado pela variável valorTotalDol em reais, para isso multiplicaremos esse valor pela cotação.

Passo 7

Por fim, realizaremos a impressão do valor armazenado pela variável valorTotalReal com duas casas decimais.

Resposta

Ei, a resposta está no passo a passo :)