Você está na página 1de 24

Programação II 2017

Sumário 1

➢ Operadores
➢ Expressões
➢ Cast entre tipos de dados
➢ Entrada e Saída de dados básica
Operadores aritméticos 2

➢ Binários: operam sobre dois números

➢ Unários: aplicam-se apenas a um operando


Operadores relacionais 3

➢ Relacionam e comparam variáveis


4
Operadores relacionais

➢ Qual o resultado das seguintes expressões sabendo que idade = 40?

 idade == 90  idade <= 40  idade != 90


▪ false ▪ true ▪ true

 idade > 15  idade > 80  idade >= 41


▪ true ▪ false ▪ false
Operadores lógicos 5

➢ Relacionam e comparam variáveis em termos lógicos


Operadores lógicos 6

➢ Qual o resultado das seguintes expressões ?

 100 > 3 && ‘a’ > ‘c’


▪ true && false = false

 100 > 3 || ‘a’> ‘c’


▪ true || false = true

 !(100 > 3)
▪ !true = false
Operadores bit a bit 7

➢ Operam e comparam variáveis numéricas bit a bit


Operadores bit a bit 8

➢ Operador de atribuição normal =

➢ Operadores de atribuição compactos:


Sumário 9

➢ Operadores
➢ Expressões
➢ Cast entre tipos de dados
➢ Entrada e Saída de dados básica
Expressão 10

➢ É constituída por uma série de variáveis, operadores ou chamadas a métodos

➢ Devolve um valor

➢ Os operadores nela utilizados são avaliados de acordo com uma escala de prioridades

➢ Os pârentesis alteram a ordem natural natural de prioridades

X+Y/Z

(X + Y) / Z
Não dão o mesmo
resultado
Expressão 11
Prioridade dos operadores
Expressão 12
Prioridade dos operadores
Expressões 13
Exercícios

➢ Qual o resultado das seguinte expressões?

 z = 2.5 + 6 % 4 * 2.1  y = x = (2 + 3) / 4
▪ 2.5 + 2 * 2.1 ▪ y=x=5/4
▪ 2.5 + 4.2 = 6.7 ▪ y=x=1
▪ y = 1.0

 int a, b;
float c;
 y = 3 + 2 * (x = 7 / 2) a = 5;
b = 10;
▪ y = 3 + 2 * (x = 3) c = 23 * ++ a / b++;
▪ y=3+2*3
▪ c = 23 * 6 /10 ++
▪ y=3+6
▪ c = 138/10++;
▪ y=9
▪ c = 13++;
▪ c = 13.0;
Sumário 14

➢ Operadores
➢ Expressões
➢ Cast entre tipos de dados
➢ Entrada e Saída de dados básica
Conversão de Tipos 15
Implícita

 Não precisamos escrever um código para a conversão

 É feita de forma automática, de modo a que não haja perda de informação, pelo
que nem todas as transformações são possíveis .

▪ Exemplo 1 :
Um valor de vírgula flutuante não pode ser convertido automaticamente
para um tipo inteiro, pois implicaria a perda da parte decimal do número.

128,8467586 128
conversão
float em JAVA (32 bits) short em JAVA (16 bits)
Conversão de Tipos 16
Implícita

➢ Exemplo 2 :

➢ Um valor inteiro pode ser convertido automaticamente para um


tipo de vírgula

128 128,8467586
conversão
short em JAVA (16 bits) float em JAVA (32 bits)

int a =
100;
long b =
a;
Regra geral de conversão entre tipo de dados 17

➢ O espaço ocupado pelos diversos tipo de dados é limitador às conversões automáticas.

Genericamente, podemos concluir que é possível converter um valor para um tipo


que ocupe mais espaço, mas o inverso não é verdadeiro.

➢ Assumindo a precisão do tipo de dados é verdadeira a seguinte relação:

 byte > short > int > long > float > double

O oposto é falso
Conversão de Tipos 18
Explícita

 Excepção à regra – CAST

 A conversão de tipos com perda de informação é permitida nalguns casos, mas o programador
tem de indicar explicitamente que a pretende: chama-se cast.

▪ Exemplo:

▪ quando se pretende obter a parte inteira de um número real.

 É necessário explicitar o tipo de dados pretendido antes do valor, entre parêntesis.

 Exemplo
Sumário 19

➢ Operadores
➢ Expressões
➢ Cast entre tipos de dados
➢ Entrada e Saída de dados básica
Entrada e Saída de Dados Básica 20

➢ Toda a linguagem de programação deve prover um meio de interacção com o


utilizador;

➢ O meio mais básico é o uso da consola, com a entrada de dados pelo teclado
e saída em texto.

➢ Outros meios são:

 Interface gráfica

 Web

 Comandos de voz
Saída de Dados 21

➢ A linguagem Java oferece algumas formas de saída de dados.

▪ A mais comum é a utilização do System.out.print(“Texto”), equivalente ao


escreva(“Texto”) do Portugol.

▪ O System.out.println(“Texto”), é equivalente ao escreval(“Texto”).

Portugol

JAVA
Entrada de Dados 22

➢ Temos de importar a classe java.util.Scanner

➢ Poderoso meio de ler dados de qualquer stream (ex:teclado) de entrada


Dúvidas 23

Até á próxima Aula

Você também pode gostar