Está en la página 1de 35

ECT2303 – Linguagem de Programação

Aula 02 þ Operadores, Expressões e Comandos de Entrada e Saída

Einstein Santos

UFRN

03 de agosto de 2018

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 1 / 35


Sumário
1 Comandos de entrada e saída
Comandos de entrada
Comandos de saída
2 Operadores
Operador de atribuição
Operadores aritméticos
Operadores aritméticos de atribuição
Operadores de incremento e decremento
Operadores relacionais
Operadores lógicos
Operador condicional ternário
Precedência
3 Expressões
Expressões aritméticas
Expressões lógicas
4 Conversões de tipos e o operador de molde
Conversão automática
Conversão explícita
Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 2 / 35
Sumário
1 Comandos de entrada e saída
Comandos de entrada
Comandos de saída
2 Operadores
Operador de atribuição
Operadores aritméticos
Operadores aritméticos de atribuição
Operadores de incremento e decremento
Operadores relacionais
Operadores lógicos
Operador condicional ternário
Precedência
3 Expressões
Expressões aritméticas
Expressões lógicas
4 Conversões de tipos e o operador de molde
Conversão automática
Conversão explícita
Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 3 / 35
Comandos de entrada e saída
Comandos de entrada

cin é o objeto associado à entrada-padrão do sistema operacional


(geralmente o teclado).
Após a entrada do dado (digitação do dado e posterior pressionamento
da tecla [ENTER]), ocorre o seu armazenamento na variável mediante
o operador de extração >>.
Exige a bibliotca iostream.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 4 / 35


Comandos de entrada e saída
Comandos de saída

cout é o objeto associado à saída-padrão do sistema operacional (ge-


ralmente o vídeo).
O operador de inserção << envia ao cout a mensagem a ser im-
pressa.
Exige a biblioteca iostream.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 5 / 35


Comandos de entrada e saída
Exemplos de Uso dos Comandos de Entrada e Saída

1 // Programa que realiza o cálculo do IMC


2
3 # include < iostream >
4 # include < cmath >
5
6 using n a m e s p a c e std ;
7
8 int main ()
9 {
10 float peso , altura , imc ;
11 cout << " Digite o peso : " ;
12 cin >> peso ;
13 cout << " Digite a altura : " ;
14 cin >> altura ;
15 // cin >> peso >> altura ;
16 imc = peso / pow ( altura ,2) ;
17 cout <<" Peso digitado : " << peso <<" kg . " << endl ;
18 cout <<" altura digitada : " << altura <<" m . " << endl ;
19 cout <<" IMC = " << imc <<" kg / m ^2 " << endl ;
20
21 return 0;
22 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 6 / 35


Sumário
1 Comandos de entrada e saída
Comandos de entrada
Comandos de saída
2 Operadores
Operador de atribuição
Operadores aritméticos
Operadores aritméticos de atribuição
Operadores de incremento e decremento
Operadores relacionais
Operadores lógicos
Operador condicional ternário
Precedência
3 Expressões
Expressões aritméticas
Expressões lógicas
4 Conversões de tipos e o operador de molde
Conversão automática
Conversão explícita
Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 7 / 35
Operadores
Operador de atribuição

A operação de atribuição é realizada mediante o operador “=”. A ação


é realizada da direita para a esquerda. Ex.:

a = 2019;
float z = 14.50;
tempo = horas + minutos + segundos;

Atribuições múltiplas consistem de operações de atribuição sucessi-


vas. Ex.:

p = q = 10;

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 8 / 35


Operadores
Operadores aritméticos

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 9 / 35


Operadores
Operadores aritméticos

Ex.:

z = x + y; a = b + 7;
cont = cont + 1; delta_t = t_final - t_inicial;
desconto = b - 100; cont = cont - 1;
cubo_x = x * x * x; vezes_13 = valor * 13;
d = q / t; metade1 = x / 2;
metade2 = x / 2.0;
resto = x % y; par_impar = num % 2;
x = -6; z = -r;

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 10 / 35


Operadores
Operadores aritméticos

Operações de radiciação e potenciação são realizadas utilizando as


funções sqrt() e pow(), respectivamente, declaradas na biblioteca
cmath. Ex.:

x = sqrt(40); x = sqrt(5.49); y = sqrt(z);

A = pow(b , 10); Z = pow(2, 0.5); h = pow(q, w);

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 11 / 35


Operadores
Operadores aritméticos de atribuição

Sintaxe:

X OP = <EXPRESSÃO> <-> X = X OP (<EXP>)

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 12 / 35


Operadores
Operadores aritméticos de atribuição

Ex:

i += 2; <-> i = i + 2;
x *= y + 1; <-> x = x * (y + 1);
t /= 2.5; <-> t = t / 2.5;
p %= 5; <-> p = p % 5;
d -= 3; <-> d = d - 3;

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 13 / 35


Operadores
Operadores de incremento

O operador de incremento, “++”, opera sobre à variável associada a


ele, adicionando 1 ao seu valor armazenado.
Pode ser usado de duas maneiras: prefixado e pós-fixado.

++X; <-> X = X + 1;
X++; <-> X = X + 1;

1 n = 5;
2 x = ++ n ;
3 cout <<" \ nn = " <<n <<" x = " << x ; // n = 6 x = 6
4

5 n = 5;
6 x = n ++;
7 cout <<" \ nn = " <<n <<" x = " << x ; // n = 6 x = 5

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 14 / 35


Operadores
Operadores de decremento

O operador de decremento, “- -”, opera sobre à variável associada a


ele, decrementando 1 ao seu valor armazenado.
Pode ser usado de duas maneiras: prefixado e pós-fixado.

--X; <-> X = X - 1;
X--; <-> X = X - 1;

1 n = 5;
2 x = --n ;
3 cout <<" \ nn = " <<n <<" x = " << x ; // n = 4 x = 4
4

5 n = 5;
6 x = n - -;
7 cout <<" \ nn = " <<n <<" x = " << x ; // n = 4 x = 5

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 15 / 35


Operadores
Operadores de incremento e decremento – Exemplo

1 # include < iostream >


2

3 using namespace std ;


4

5 int main ()
6 {
7 int i =3 , n ;
8 int j =3 , m ;
9 n = i * ( i + 1) + (++ i ) ;
10 m = j * ( j + 1) + ( j ++) ;
11 cout <<" \ nn = " <<n << endl ; // n = 16
12 cout <<" \ nm = " <<m << endl ; // m = 15
13

14 return 0;
15 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 16 / 35


Operadores
Operadores relacionais

Executam comparações.
O resultado da avaliação de uma expressão que envolva operadores
relacionais sempre será um valor lógico (verdadeiro – falso / true –
false / 1 – 0).

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 17 / 35


Operadores
Operadores relacionais

Ex.:

15 < 20 ( 1 : verdadeiro )
15 == 20 ( 0 : falso )
(4 + 1) < 3 ( 0 : falso )
2 < (1 + 3) ( 1 : verdadeiro )
14 != 16 ( 1 : verdadeiro)
(10 - 7) >= 13 ( 0 : falso )
(5 / 2.0) <= (2.5) ( 1 : verdadeiro)

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 18 / 35


Operadores
Operadores relacionais

Ex.:

1 # include < iostream >


2

3 using namespace std ;


4

5 int main ()
6 {
7 int x = 10 , y = 50;
8

9 cout << (x == y ) << endl ; // 0


10 cout << (x != y ) << endl ; // 1
11 cout << (x > y) << endl ; // 0
12 cout << (x < y) << endl ; // 1
13 cout << (x >= y ) << endl ; // 0
14 cout << (x <= y ) << endl ; // 1
15

16 return 0;
17 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 19 / 35


Operadores
Operadores relacionais

Atenção!
* Não confundir = (atribuição) com == (igualdade)!

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 20 / 35


Operadores
Operadores lógicos

O resultado da avaliação de uma expressão que envolva operadores


lógicos sempre será um valor lógico (verdadeiro – falso / true – false
/ 1 – 0).

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 21 / 35


Operadores
Operadores lógicos

Tabela-verdade do E lógico:

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 22 / 35


Operadores
Operadores lógicos

Tabela-verdade do OU lógico:

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 23 / 35


Operadores
Operadores lógicos

Tabela-verdade do NÃO lógico:

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 24 / 35


Operadores
Operador condicional ternário

Sintaxe:

<EXP1> ? <EXP2> : <EXP3>

A <EXP1> é avaliada e, caso seja verdadeira, o valor da <EXP2> será


assumida como o valor da expressão condicional, caso contrário, ou
seja, a <EXP1> seja falsa, o valor da <EXP3> será assumida como o
valor da expressão condicional.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 25 / 35


Operadores
Operador condicional ternário

Ex.:

max = (a > b) ? a : b;

abs = (x > 0) ? x : -x;

cout <<( (x % 2) ? "Ímpar" : "Par");

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 26 / 35


Operadores
Precedência

* A precedência aumenta de baixo para cima na tabela.


Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 27 / 35
Sumário
1 Comandos de entrada e saída
Comandos de entrada
Comandos de saída
2 Operadores
Operador de atribuição
Operadores aritméticos
Operadores aritméticos de atribuição
Operadores de incremento e decremento
Operadores relacionais
Operadores lógicos
Operador condicional ternário
Precedência
3 Expressões
Expressões aritméticas
Expressões lógicas
4 Conversões de tipos e o operador de molde
Conversão automática
Conversão explícita
Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 28 / 35
Expressões
Expressões aritméticas

Toda vez que se utiliza um operador, é criada uma expressão.


Os operadores *, / e % têm precedência sobre os operadores + e -.
Num mesmo nível de precedência, a análise é realizada da esquerda
para direita.

Ex.:

F = m * a;
R = 3 + 4 * 7 - 10 / 4;
e = e0 + v0 * t + (1.0/2.0) * a * pow(t, 2.0);
v = sqrt(pow(v0, 2.0) + 2 * a * delta_e);
y = a * x * x + b * x + c;
T = 15 - 33 + (10 * 3 / 5 - 7) * 2 / 10;

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 29 / 35


Expressões
Expressões lógicas

Toda expressão que resulte em um valor lógico (verdadeiro – falso /


true – false / 1 –0) é uma expressão lógica.

Ex.:

dia == 7 && mes == 6


op == ’S’ || op ==’s’
!masculino
!5
1 || 2
x && y
a < b || a == c
!x
!’j’
!(a + 3)

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 30 / 35


Sumário
1 Comandos de entrada e saída
Comandos de entrada
Comandos de saída
2 Operadores
Operador de atribuição
Operadores aritméticos
Operadores aritméticos de atribuição
Operadores de incremento e decremento
Operadores relacionais
Operadores lógicos
Operador condicional ternário
Precedência
3 Expressões
Expressões aritméticas
Expressões lógicas
4 Conversões de tipos e o operador de molde
Conversão automática
Conversão explícita
Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 31 / 35
Conversões de tipos e o operador de molde
Conversão automática

Quando dois ou mais operadores, de diferentes tipos, se encontram


em uma mesma expressão, o conteúdo da variável de menor tamanho
é convertido ao tipo da variável de maior tamanho. O resultado da
expressão é novamente convertido para o tipo da variável à esquerda
do operador de atribuição.

1 char a ;
2 int b ;
3 float c , r ;
4 double d ;
5 r = (a + b) * (b - c) / (b * d);
6 // ( char + int ) * ( int - float ) / ( int * double )
7 // ( int ) * ( float ) / ( double )
8 // ( float ) / ( double )
9 // ( double )
10 // ( float )

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 32 / 35


Conversões de tipos e o operador de molde
Conversão explícita (operador de molde)

Sintaxe:

<TIPO>(<EXPRESSÃO>) ou (<TIPO>)<EXPRESSÃO>

Ex.:

1 int varint = 2000000000; // int -> 2147483647


2 int dez = 10;
3 varint = ( double ( varint ) * dez ) / dez ;
4

5 unsigned char ch = ’A ’;
6 cout << int ( ch ) ; // Exibe 65
7

8 int x = 65;
9 cout < <( unsigned char ) x ; // Exibe A

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 33 / 35


Atividade Extraclasse
Pesquisa

Pesquise os seguintes tópicos:

a biblioteca cmath;

o código ASCII.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 34 / 35


Fim da Aula 02

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 03 de agosto de 2018 35 / 35

También podría gustarte