Buscar

1-Expressoes_ AULA 2

Prévia do material em texto

Laboratório de Programação I
Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e Tecnologia
Curso de Bacharelado em Sistemas de Informação
Curso de Bacharelado em Engenharia de Computação
Expressões
Profª Janne Oeiras Lachi
1
Operador de Atribuição
� A atribuição é uma das operações mais realizadas em 
programação
� Armazena determinado valor em uma variável
� Exemplos:
� X=25; 
2
� float pi=3.14;
Operador de Atribuição
� Na linguagem C o comando de atribuição utiliza o 
símbolo =
� Sintaxe:
� <identificador> = <expressão>;
� identificador é o nome da variável ou constante à qual está sendo 
atribuída a expressão;
3
atribuída a expressão;
� = é o símbolo de atribuição
� expressão pode ser uma expressão aritmética, lógica ou literal, cujo 
valor (obtido após avaliação) e atribuído à variável
NÃO ESQUEÇA O ; NO FINAL
Atribuição: exemplos
X = 2000;
X = Y + 5;
MEDIA = SOMA/N;
� Observe os exemplos abaixo:
4
� Y = X = 3;
� Y = (X = 3);
� Existe diferença entre eles?
� Não, são atribuições equivalentes.
� Em ambas, primeiro X recebe o valor 3 e depois o valor de X 
é atribuído a Y. A atribuição é executada da direita para a 
esquerda.
Expressões Aritméticas
� São as expressões cujos operadores são aritméticos e cujos 
operandos são constantes e/ou variáveis do tipo numérico
Adição
Multiplicação
Potenciação
Subtração
Divisão
Radiciação
� Exemplos:
� X + Y X-Y
� 2 x nota total/n
� AxB+C soma2
� √P √F1 + G2 - H 
5
Operadores: símbolos usados
Operador binário Operação Tipo
- Menos unário Unário
= Atribuição Binário
+ Adição Binário
- Subtração Binário
* Multiplicação Binário
/ Divisão Binário
% Módulo (resto da divisão inteira) Binário
6
Operador menos unário: -
� O operador menos unário (-) é usado
somente para indicar a troca de sinal algébrico
do valor associado.
� Exemplo:
� 8� x = 8;
� x = -x;
� O valor de x será -8 depois das duas instruções
7
Operador de módulo: %
� O operador % opera somente com operandos
inteiros
� O resultado desse operador % é o resto da divisão
do inteiro à esquerda pelo inteiro à sua direita.
� Exemplos:� Exemplos:
� X=17%5; (a variável X receberá o valor 2, pois a divisão de
17 por 5 tem resto 2)
� Y= 3%2; (a variável Y receberá o valor 1, pois a divisão de 3
por 2 tem resto 1)
� Z= 20.6%5; (Dará erro de compilação, pois o valor 20.6 é
um número real, só pode inteiros)
8
Operador de divisão: /
� O operador / faz a divisão entre números 
inteiros ou reais
� Exemplos:
� 5 / 2 // resulta em 2
� 5.0 / 2 // resulta em 2.5
� 5 / 2.0 // resulta em 2.5
9
Operadores em C: precedência
� Os operadores *, / e % têm precedência sobre os operadores 
+ e –
� Exemplo: 5 + 17 * 2 resulta em 39
� Exemplo: 15 - 5 * 3 % 2 resulta em 14
� Os operadores *, / e % têm a mesma precedência e 
associatividade da esquerda para a direitaassociatividade da esquerda para a direita
� Exemplo: 17 / 5 * 2 % 2 resulta em 0
� Exemplo: 17 / 5 * 3 % 2 resulta em 1
� Os operadores + e - têm a mesma precedência e 
associatividade da esquerda para a direita
� Exemplo: 20 + 5 - 2 resulta em 23
� Exemplo: 20 - 5 + 2 resulta em 17
10
Operadores aritméticos de atribuição
� Combinam operações aritméticas com o operador de 
atribuição.
� Sintaxe:
� <variável> op = <expressão>;
� variável é o nome da variável à qual está sendo atribuída a 
expressão;expressão;
� op é um operador aritmético
� = é o símbolo de atribuição
� expressão pode ser uma expressão aritmética, lógica ou literal, cujo 
valor (obtido após avaliação) e atribuído à variável
� Equivale a <variável> = <variável> op (<expressão>)
11
Operadores aritméticos de atribuição
� Exemplos:
� i += 2; equivale a i = i + 2; 
� x *= y+1; equivale a x = x * (y+1); 
� t /=2.5; equivale a t = t / 2.5; 
� p %= 5; equivale a p = p % 5;
� d -= 3; equivale a d = d – 3;
12
Operadores de incremento e decremento
� Podem ser pré-fixados ou pós-fixados
� Pré-fixado: adição ou subtração ocorre antes da 
atribuição
� Pós-fixado: adição ou subtração ocorre depois da 
atribuição
Operador Exemplo Comentário
++ x++ Equivale a x = x + 1
++ y = ++x Equivale a x = x + 1 e depois y = x
++ y = x++ Equivale a y = x e depois x = x + 1 
-- x-- Equivale a x = x – 1
-- y = --x Equivale a x = x - 1 e depois y = x
-- y = x-- Equivale a y = x e depois x = x - 1 
Exercício 1
� Abra o seu IDE e crie dois arquivos, um para cada código 
abaixo. Digite, salve, compile e execute. Veja na janela de 
prompt o resultado para cada valor de x impresso.
#include <stdio.h>
int main ()
#include <stdio.h>
int main ()int main ()
{
int x=10;
++x;
printf("x=%d\n", x);
return 0;
}
int main ()
{
int x=10;
x++;
printf("x=%d\n", x);
return 0;
}
Exercício 2
� Abra o seu IDE e crie dois arquivos, um para cada código 
abaixo. Digite, salve, compile e execute. Veja na janela de 
prompt o resultado para cada valor de x impresso.
#include <stdio.h>
int main ()
#include <stdio.h>
int main ()int main ()
{
int y, x=10;
y=++x;
printf("x=%d\n", x);
printf("y=%d\n", y);
return 0;
}
int main ()
{
int y, x=10;
y=x++;
printf("x=%d\n", x);
printf("y=%d\n", y);
return 0;
}
Precedência em Operadores de incremento e 
decremento
� x = a * b++;
� b é multiplicado por a, o valor atribuído a x 
e depois b é incrementado
� x = a * ++b;
� b é incrementado, depois é multiplicado 
por a, e o valor é atribuído a x.
Exercício 3
� Complete o programa abaixo para declarar as 
variáveis da expressão x = a * b++; , ler os 
valores de a e b e fazer essa atribuição.
#include <stdio.h>
int main ()int main ()
{
int x;
printf("x=%d\n", x);
return 0;
}
Exercício 4
� Complete o programa abaixo para declarar as 
variáveis da expressão x = a * ++b; , ler os 
valores de a e b e fazer essa atribuição.
#include <stdio.h>
int main ()int main ()
{
int x;
printf("x=%d\n", x);
return 0;
}
Funções matemáticas
Função Exemplo Significado
ceil ceil(x) Arredonda um número real para cima. Por 
exemplo, ceil(3.2) é 4.
floor floor(x) Arredonda o número para baixo. Por exemplo, 
� Para usá-las você deve incluir o módulo <math.h> no início 
do seu arquivo
floor floor(x) Arredonda o número para baixo. Por exemplo, 
floor(3.2) é 3.
abs abs(x) Obtém o valor absoluto de x.
sqrt sqrt(x) Calcula a raiz quadrada de x.
pow pow(x,y) Calcula a potência de x elevado a y.
modf z = modf(x, &y) Decompõe o número real armazenado em x em 
duas partes: y recebe a parte fracionária e z, a 
parte inteira do número.
19
Funções matemáticas
Função Exemplo Significado
cos cos(x) Calcula o coseno de x (deve ser apresentado em 
radianos).
� Veja abaixo mais algumas funções existentes no módulo 
<math.h>.
sin sin(x) Calcula o seno de x (deve ser apresentado em 
radianos).
tan tan(x) Calcula a tangente de x (deve ser apresentado em 
radianos).
log log(x) Obtém o logaritmo natural de x.
log10 log10(x) Obtém o logaritmo de base 10 de x.
exp exp(x) Obtém o logaritmo natural e elevado à potência x.
Exemplo: função sqrt() 
� Veja no código abaixo o uso da função sqrt() que calcula a 
raiz quadrada do número 9.
#include <stdio.h>
#include <math.h>
int main ()
{
float x;
x = sqrt(9);
printf("x=%f\n", x);
return 0;
}
Exercício 5
� Modifique o código abaixo para declarar e ler uma variável y 
e passá-la no lugar do número 9 para calcular a raiz 
quadrada de y.
#include <stdio.h>
#include <math.h>
int main ()
{
float x;
x = sqrt(9);
printf("x=%f\n", x);
return 0;
}
Operadores relacionais
� Uma expressão relacional (relação) é uma comparação 
realizada entre dois valores do mesmo tipo
� O resultado obtido de uma relação é sempre um valor lógico
(verdadeiro ou falso)
Operador Operação
23
Operador Operação
== Igual a
!= Diferente de
> Maior que
<Menor que
>= Maior ou igual a
<= Menor ou igual a
Exercício 6
� Qual a saída produzida pelo programa abaixo? Abra o seu IDE 
e digite o código abaixo. Salve, compile e execute para ver.
#include <stdio.h>
int main ()
{
int verdade, mentira;
24
verdade = (15 < 20);
mentira = (15 == 20);
printf("1o. Resultado: %d\n", verdade);
printf("2o. Resultado: %d\n", mentira);
return 0;
}
1o. Resultado: 1
2o. Resultado: 0
Após ser avaliada, uma expressão retorna o 
valor lógico 1 para verdadeiro e 0 para 
falso.
Precedência: operadores aritméticos x 
operadores relacionais
� Operadores relacionais têm precedência menor que os 
aritméticos. Faça o código abaixo no seu IDE. Salve, compile e 
execute para ver o resultado.
#include <stdio.h>
int main ()
{
25
{
printf("O valor da expressão 4 + 1 < 3 é %d\n", 4+1<3);
printf("O valor da expressão 2 < 1 + 3 é %d\n", 2<1+3);
return 0;
}
O valor da expressão 4 + 1 < 3 é 0 
O valor da expressão 2 < 1 + 3 é 1
Operadores Lógicos
� Também fazem comparações
� A diferença das comparações lógicas e relacionais está na 
forma como os operadores avaliam seus operandos
� Operandos de operadores lógicos são avaliados como lógicos 
(0 ou 1)
26
Operador Operação
&& Lógico E
|| Lógico OU
! Lógico NÃO
Tabela de precedência
Símbolo Operador
- Menos unário
++ Incremento pré-fixado ou pós-fixado
-- Decremento pré-fixado ou pós-fixado
! Lógico NÃO
* Multiplicação aritmética
Operadores no 
mesmo bloco 
têm a mesma 
precedência
maior
27
/ Divisão aritmética
% Módulo aritmético
+ Mais aritmético
- Menos aritmético
< Menor relacional
<= Menor ou igual relacional
> Maior relacional
>= Maior ou igual relacional
Tabela de precedência (cont.)
Símbolo Operador
== Igual relacional
!= Diferente relacional
&& E lógico
|| OU lógico
= Atribuição
maior
28
*= Aritmético de atribuição (multiplicação)
/= Aritmético de atribuição (divisão)
%= Aritmético de atribuição (módulo)
+= Aritmético de atribuição (adição)
-= Aritmético de atribuição (subtração)
Operadores: avaliação lógica ou 
numérica
� Os operandos são avaliados como quantidades numéricas ou 
como lógicos
� O resultado de uma operação pode ser numérico ou lógico
Operadores Operandos Resultado
29
Aritméticos Numéricos Numérico
Relacionais Numéricos Lógico
Lógicos Lógicos Lógico
Exercícios
1. Para cada expressão abaixo, crie um programa em C que 
receba do usuário os valores das variáveis e imprima na tela o 
resultado da expressão.
30
Referências
� ALGORITMOS. MANZANO – Lógica para desenvolvimento 
de programação de computadores. José Augusto N. G. 
Manzano, Jayr Figueiredo de Oliveira. São Paulo: Érica, 2006.
� VictorineViviane Mizrahi. Treinamento em linguagem C. 
São Paulo: Pearson Prentice Hall, 2008. 
� Backes, André. Linguagem C: completa e descomplicada. Rio de � Backes, André. Linguagem C: completa e descomplicada. Rio de 
Janeiro: Elsevier, 2013. 400 p.
31

Continue navegando

Outros materiais