Buscar

ECT1203_-_Aula04_-_Operadores_e_expresses

Prévia do material em texto

ECT1203 Linguagem de Programação 
2012.2 
Prof. Aquiles Burlamaqui 
Prof. Luciano Ferreira 
Prof. Luiz Eduardo Cunha Leite 
Prof. Marconi Câmara Rodrigues 
 
Aula 04 – Operadores e expressões 
Universidade Federal do Rio Grande do Norte 
Escola de Ciências e Tecnologia 
Hora de silenciar o celular 
• Manter o celular sempre desligado/silencioso quando 
estiver em sala de aula 
• Nunca atender o celular em sala de aula 
Objetivo da aula 
Apresentar os seguintes conceitos na Linguagem 
C++: 
▫ Operador de atribuição 
▫ Operadores aritméticos 
▫ Operadores relacionais e lógicos 
▫ Operador * unário sobre ponteiros 
▫ Conversão de tipos 
O operador de atribuição 
nome_da_variável = expressão; 
x = 2 + 4; 
variável operador de atribuição 
Uma atribuição é uma expressão cujo valor resultante 
corresponde ao valor atribuído. 
Atribuições múltiplas 
• O mesmo valor pode ser atribuído a muitas variáveis. 
 
 
 
 
• A ordem de avaliação é da direita para a esquerda. 
1º ) z = 0 
2º) y = 0 
3º ) x = 0 
 
x = y = z = 0; 
Conversão de tipos em atribuições 
 
 
• Quando se converte de: 
▫ inteiros para caracteres 
▫ inteiros longos para inteiros 
▫ inteiros para inteiros curtos 
 perde-se a informação contida nos bits mais significativos. 
• Quando se faz conversão envolvendo números em ponto 
flutuante, pode se perder precisão. 
 
Regra: O valor do lado direito de uma atribuição é 
convertido no tipo do lado esquerdo. 
Operadores aritméticos 
Operador Ação 
- Subtração, menos unário 
+ Adição 
* Multiplicação 
/ Divisão 
% Módulo da divisão 
As operações são feitas na precisão dos operandos. 
Incremento e decremento 
Operador Ação 
++ Soma 1 ao seu operando 
-- Subtrai 1 ao seu operando 
Há uma diferença entre x++ e ++x quando usados 
em uma expressão. 
++x; x = x + 1; é o mesmo que 
x--; x = x - 1; é o mesmo que 
Se mais de um operador estiver presente em uma 
expressão, qual deve ser avaliado primeiro? 
Precedência dos operadores 
aritméticos 
Mais alta ++ -- 
- (menos unário) 
* / % 
Mais baixa + - 
• Operadores do mesmo nível de precedência são avaliados 
da esquerda para a direita. 
• Parânteses podem ser usados para forçar uma (ou mais) 
operação a ter precedência maior. 
Operadores aritméticos de atribuição 
• Pode ser aplicado a todo operador binário. 
variável = variável operador expressão; 
variável operador= expressão; 
é o mesmo que 
i = i + 10; 
x = x * (y + 1); 
a = a – 120; 
i += 10; 
x *= y + 1; 
a -= 120; 
Operadores lógicos e relacionais 
• São baseados na idéia de verdadeiro e falso. 
▫ VERDADEIRO = qualquer valor diferente de zero 
▫ FALSO = zero 
• As expressões que usam operdores relacionais ou 
lógicos devolvem zero para falso e 1 para verdadeiro. 
 
Relacional refere-se às relações entre os valores. 
Lógico refere-se a como essas relações podem ser 
conectadas. 
Operadores lógicos e relacionais 
Operador Ação 
> Maior que 
>= Maior ou igual que 
< Menor que 
<= Menor ou igual que 
== Igual 
!= Diferente 
Operador Ação 
&& AND 
|| OR 
! NOT 
Relacionais 
Lógicos 
Operadores lógicos 
• Operador AND = Resultará verdadeiro quando TODOS 
os operandos forem verdadeiros. 
• Operador OR = Será verdadeiro quando pelo menos UM 
operando for verdadeiro. 
• Operador NOT = Resultará verdadeiro quando seu 
operando for falso e falso quando seu operando for 
verdadeiro 
Operador AND Operador NOT Operador OR 
0 && 0 = 0 ! 1 = 0 0 || 0 = 0 
0 && 1 = 0 ! 0 = 1 0 || 1 = 1 
1 && 0 = 0 1 || 0 = 1 
1 && 1 = 1 1 || 1 = 1 
Precedência dos operadores lógicos 
e relacionais 
• São menores em precedência que os operadores 
aritméticos. 
 
10 > 1 + 12 10 > (1 + 12) é avaliado como 
Mais alta ! 
> >= < <= 
== != 
&& 
Mais baixa || 
Operadores bit a bit 
• São aplicados aos bits individuais dos operandos. 
Operação bit a bit refere-se a testar, atribuir ou 
deslocar os bits de tipos de dados char e int. 
Operador Ação 
& AND 
| OR 
^ XOR (OR exclusivo) 
~ Complemento de um 
>> Deslocamento à esquerda 
<< Deslocamento à direita 
Operador sizeof 
• Para calcular o tamanho de um tipo, deve-se usar 
parênteses. 
É um operador que retorna o tamanho (em bytes) 
de uma variável ou especificados de tipo. 
float f; 
 
cout << sizeof f << ‘\n’; 
cout << sizeof(int) << ‘\n’; 
Operador * Unário Sobre Ponteiros 
O operador * unário, quando aplicado a um ponteiro, 
resulta no valor armazenado na variável apontada pelo 
ponteiro em questão. 
int x = 3; //Atribui o valor 3 à variável x 
 
int * pt; //Declara pt como um ponteiro para int 
 
pt = & x; //Faz pt apontar para x (pt armazena o 
 //endereço de x) 
 
cout << * pt //A expressão *pt resulta no valor da 
 //variável apontada por pt (valor de x) 
Conversão de tipos em expressões 
Quando operandos de tipos diferentes são 
misturados em uma expressão, os valores são 
convertidos no tipo do maior operando. 
double 
float 
int 
char 
prioridade de 
conversão 
Conversão de tipos em expressões 
Cast (operador de molde) 
Cast é uma conversão explícita de tipo. 
(tipo) expressão 
int x = 13; 
float y = (float) x/2;

Mais conteúdos dessa disciplina