Criando Expressões

Teoria Completa

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 (independente 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!

Expandir

Exercício Resolvido #1

Elaboração própria.

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

MOSTRAR SOLUÇÃO COMPLETA

Resposta

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

Exercício Resolvido #2

Elaboração própria.

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.

MOSTRAR SOLUÇÃO COMPLETA

Resposta

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

Exercício Resolvido #3

Elaboração própria.

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

á r e a = B + b * h 2

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

MOSTRAR SOLUÇÃO COMPLETA

Resposta

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

Exercício Resolvido #4

Elaboração própria.

Dada a expressão aritmética:

6 - 2 2 * 1 + 2 - 1

Responda se o seguinte trecho de código a representa de forma correta, caso contrário reescreva o código abaixo de forma com que o mesmo tenha uma representação fiel da expressão.

MOSTRAR SOLUÇÃO COMPLETA

Resposta

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

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, porém eles são muito interessantes para a nossa visualização do código!

Exercício Resolvido #5

Elaboração própria.

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 resultado e impresso na tela?

MOSTRAR SOLUÇÃO COMPLETA

Resposta

Para descobrir o valor atribuído a variável resultado, temos que relembrar a ordem de precedência padrão da linguagem C.

Portanto, ao executar 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 a impressão em duas casas decimais.

Exercício Resolvido #6

Elaboração própria.

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.

MOSTRAR SOLUÇÃO COMPLETA

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

Exercício Resolvido #7

Universidade Federal de São Carlos, Introdução a programação, Tiago A. Almeida e Tiemi C. Sakata, 08/04/2018, pp. 03 – Adaptação do exercício 03.

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.

MOSTRAR SOLUÇÃO COMPLETA

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

Exercício Resolvido #8

Universidade Federal de São Carlos, Introdução a programação, Tiago A. Almeida e Tiemi C. Sakata, 08/04/2018, pp. 03 – Adaptação do exercício 04.

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.

MOSTRAR SOLUÇÃO COMPLETA

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().