Buscar

06 - Operadores

Prévia do material em texto

1) Expressões
 
Qualquer coisa que retorne um valor é uma expressão em C++.
2) Precedência
 
x = 5 + 3 * 8;
o que é executado primeiro, a adição ou a multiplicação? Se a adição for executada primeiro, a resposta será 8 * 8, ou seja, 64. Se a multiplicação for executada primeiro, a resposta será 5 + 24, ou seja, 29. A multiplicação tem uma precedência maior do que a adição e, portanto, o valor da expressão acima é 29. Quando dois operadores matemáticos têm a mesma precedência, eles são executados da esquerda para a direita. Dessa forma, em:
x = 5 + 3 + 8 * 9 + 6 * 4;
x = 5 + 3 + 72 + 24;
3) Precedência dos operadores
	Ordem de precedência
	Operador
	1º
	-		Menos unário
 ++		Incremento pré-fixado e pós-fixado
 --		Decremento pré-fixado e pós-fixado
 !		Lógico NÃO
	2º
	*		Multplicação aritmética
 /		Divisão aritmética 
 %		Módulo artimérico
	3º
	+		Soma aritmética
 -		Subtração aritmética
	4º
	<		Menor relacional
 <=		Menor ou igual relacional 
 >=		Maior ou igual relacional
 >		Maior relacional
	5º
	==		Igual relacional
 !=		Diferente relacional
	6º
	&&		E lógico
	7º
	||		OU lógico
 
Mais exemplos:
1) x = 3 * a++ - b Þ (3 * (a++)) - b
2) y = 3 * --a - b Þ (3 * (--a)) - b
3) z = a * b++ Þ a * (b ++)
4) w = a + b * c ¹ w = (a+b) * c
4) Operadores relacionais
Fazem comparações
	Operador
	Teste
	Exemplo
	==
	Se dois valores são iguais 
	(nota == 100)
	!=
	Se dois valores não são iguais 
	(velho != novo)
	>
	Se o primeiro valor é maior que
	 o segundo valor
	(custo > 50)
	<
	Se o primeiro valor é menor que
		 o segundo valor
	(salorio < 100)
	>=
	Se o primeiro valor é maior ou
		 igual ao segundo valor
	(preco >= 120)
	<=
	Se o primeiro valor é menor ou
		 igual ao segundo valor
	(idade <= 21)
				
Exemplos
a) verdadeiro = 15 < 20;
b) falso = 15 == 20;
c) verdadeiro = 15 != 20;
5) Operadores lógicos
Realizam operações lógicas
	Operador
	Significado
	!
	Não
	&&
	E 
	||
	Ou
Exemplos:
int a=3;
int b=4;
bool c=a==b; // inicializa a  variavel c com false
bool d=a!=b; // inicializa a variavel d com true
c=a<b; //atribui true a variavel c
bool a=true;
bool b=false;
bool c=a&&b; //inicializa c com valor false
bool d=a||b; //inicializa d com valor true
6. Operadores aritméticos especiais
A 	+= 	X;	é o mesmo que	A 	= 	A 	+ 	X;
A 	-= 	X;	é o mesmo que	A	=	A	-	X;
A 	*= 	X;	é o mesmo que	A	=	A	*	X;
A 	/= 	X;	é o mesmo que	A	=	A	/	X ;
A 	%= 	X;	é o mesmo que	A	=	A	%	X;
7. Operadores aritméticos de incremento/decremento de uma unidade
Pré-Fixados:		++A;	 adiciona uma unidade à variável A
			--A;	subtrai uma unidade da variável A
Pós-Fixados:		A++;	adiciona uma unidade à variável A
			A--;	subtrai uma unidade da variável A
A pré-fixação e a pós-fixação só diferem quando estiverem dentro de outra instrução. Nesse caso o incremento ou decremento ocorre antes (pré-fixação) ou depois (pós-fixação) da execução da instrução.
EXERCÍCIOS SOBRE OPERADORES
1) Qual o valor das variáveis x, y, i, j, a, c em cada uma das expressões abaixo.
a) x = (2 +1) * 6
b) x = 2 + 1 * 6
c) y = (5 + 1) / 2 * 3
d) i = j = (2 + 3) / 4
e) a = 3 + 2 * (b = 7 / 2)
f) c = 5 + 10 % 4 / 2
2) Qual o valor das expressões?
a) 1 > 2
b) !( 1> 2)
c) 3 == 2
d) ! (-5)
e) ‘j’ != ‘j’
f) ‘j’ != ‘j’ + 2
g) ‘j’ != ‘j’ == ‘j’
3) Qual o valor de k após cada atribuição?
int k, j = 3;
k = j == 3; k = 1 + ( j = j+2);
k = (1 && j) || 0; k = (1 || j) && 0;
4) Dado que: 
int i = 1, j = 2, k = 3, n = 2; float x = 3.3, y = 4.4;
indique o valor de cada uma das expressões abaixo
a) i < j + 3
b) 2 * i - 7 <= j - 8
c)-x + y >= 2.0 * y
d) x == y
e) x != y
f) i + j + k == -2 * -k
g) !( n-j)
h) !n -j
i) !x * !x
j) i && j && k

Continue navegando