Upload
ivna-valenca
View
2.402
Download
0
Embed Size (px)
Citation preview
+
Programação Estruturada em JAVA Profa. Ivna Valença [email protected]
+Comandos básicos
n Ler número do teclado.
n Escrever no vídeo.
n (+) soma quem está na esquerda com quem está na direita.
n <- joga quem está na direita para a área de memória.
2
Profa Ivna Valença - [email protected]
+Variável
n Programas usam áreas de memória para guardar dados.
n Cada área de memória que um programa vai usar está associada a um dado que o programa tem que tratar, e é chamada de “variável”, e tem que ter um identificador (letra, nome) determinado pelo programador.
n Área de memória = sequência de bits
3
Profa Ivna Valença - [email protected]
+Variável
n Os dados são representados por sequências distintas de bits onde cada sequência de “N” bits representa uma informação do mundo real, seguindo combinações.
n Exemplos: computador “simples”
n Números inteiros: N = 3
n 23 possibilidades
4
Profa Ivna Valença - [email protected]
+Variável
Conversão 1
000 = 0
001 = 1
010 = 2
011 = 3
100 = – 4
101 = – 3
110 = – 2
111 = – 1
Conversão 2
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
5
Profa Ivna Valença - [email protected]
+Variável
n São definidas por identificadores cujos nomes têm regras de formação específicas.
n Uma variável ocupa espaço em memória.
n A quantidade de memória que ela ocupa é função da natureza, que representa o tipo do dado armazenado e os valores possíveis a serem armazenados.
n De uma maneira geral, quando se usa o sistema de armazenamento mais simples, em “N” bits, é possível armazenar 2n valores distintos.
6
Profa Ivna Valença - [email protected]
+Tipo de variável
n O tipo da variável está associado ao tipo de dado que ela representa e ao tamanho que ela ocupa (em bits).
n As linguagens de programação disponibilizam diversos tipos que podem ser associados às variáveis de um programa.
n As linguagens de programação possuem três formas básicas para representar dados em memória (em variável). n Inteiro: 8, 16, 32, 64
n Real: 32, 64
n Caractere: 16
n Conjunto de caracteres: 16xN*
7
Profa Ivna Valença - [email protected]
+Representação de números inteiros
n Normalmente, as linguagens permitem que se trabalhe com inteiros em 8,16, 32 e 64 bits.
n Dentre as combinações possíveis de valores, tem-se: n metade das combinações para números negativos.
n uma combinação para zero.
n metade das combinações menos um para números maiores que zero.
8
Profa Ivna Valença - [email protected]
+Representação de números inteiros
n Exemplo: 8 bits
n 28 = 256 n 28/2 = 28-1 = 27 = 128 números negativos (-128 a -1)
n 1 número zero (0)
n 28/2 – 1 = 127 números positivos (1 a 127)
n Conclusão: com 8 bits, representamos números inteiros de -128 a 127, (-28-1) a (28-1 – 1).
9
Profa Ivna Valença - [email protected]
+Representação de números inteiros
n De uma maneira geral tem-se, para N bits: n 2n-1 números negativos
n 1 zero
n 2n-1 – 1 números positivos
n Com N bits, representamos números inteiros de: n (– 2n-1) a (2n-1 – 1)
n Nesta forma de representação, números positivos e o zero são representados por sequências de bits começando com 0 (zero), e números negativos são representados por sequências de bits começando com 1.
10
Profa Ivna Valença - [email protected]
+Representação de números reais
n As linguagens usam normalmente 32 ou 64 bits. Os números reais são representados da seguinte forma: n M x 10c
n Um pedaço do bit é reservado para representar M e outro pedaço é reservado para representar C.
n As representações de M e C seguem o padrão de representação dos inteiros.
11
Profa Ivna Valença - [email protected]
+Representação de números reais
n Exemplo: 32 bits n M – 24 bits
n C – 8 bits
n M – vai de -223 a 223 – 1
n C – vai de -27 a 27 – 1 = 128 a 127
n Maior número possível: (223-1) x 10127
12
Profa Ivna Valença - [email protected]
+Representação de números reais
n Exemplo de como representar um número real com parte decimal: n 2,1 = 21 x 10-1
n M = 21 => 00000000000000000000000000010101
n C = -1 => 11111111
13
Profa Ivna Valença - [email protected]
+Representação de caracteres
n Convenções que relacionam caracteres de alfabetos (ocidentais, orientais e arábicos) a sequência distinta de bits.
n Cada conjunto de caracteres, x sequência de bits forma um código de representação de caracteres.
14
Profa Ivna Valença - [email protected]
+Representação de caracteres
n Exemplo de um “código hipotético”:
n Código com 3 bits = 23 = 8 caracteres n a – 000 = 0 A – 100 = 4
n b – 001 = 1 B – 101 = 5
n c – 010 = 2 C – 110 = 6
n d – 011 = 3 D – 111 = 7
15
Profa Ivna Valença - [email protected]
+Representação de caracteres
n Códigos usados atualmente:
n ASCI – 8 bits
n UNICODE – 16 bits
n UNICODE estendido– 32 bits
n EBCDIC – mainframe
n P1 – ASC
n P2 – UNICODE
16
Profa Ivna Valença - [email protected]
+Conjunto de caracteres
n Uma sequência de variáveis do tipo caractere.
n A quantidade de bits ocupados por um conjunto de caracteres é igual à quantidade de caracteres que compõem o conjunto vezes a quantidade de bits que representam um caractere.
n Exemplo: conjunto caracteres: “ANDRE” é 16 x 5 = 80 bits.
17
Profa Ivna Valença - [email protected]
+Variável
n Para se usar uma variável em um programa, devemos definir o seu tipo e declarar no programa que ela será do tipo definido e terá um identificador.
n Dessa forma, o computador é capaz de alocar o espaço necessário na memória.
n Exemplo:
18
Profa Ivna Valença - [email protected]
+Processamento
n Na hora em que um programa é “traduzido” para linguagem de máquina pelo compilador, o mesmo precisa saber distinguir: n Variável;
n Tipo de variável;
n Instruções;
n Operadores (aritméticos e lógicos);
n Outros elementos de linguagem de comparação.
19
Profa Ivna Valença - [email protected]
+Linguagem de Programação (LP)
n Para que não haja possibilidade de “dupla interpretação” de uma linha de código pelo compilador, toda linguagem de programação possui: n Palavra reservada: é qualquer palavra que tenha um sentido
de instrução para a linguagem, e que não pode ser usada como um identificador (nome da variável). As palavras reservadas de uma linguagem são pré-definidas.
n Simbologia para alguns operadores: operadores aritméticos (operações básicas), lógicas e de comparação têm símbolos próprios e únicos.
n Regras para formação dos nomes de variáveis: existem restrições quanto aos nomes de variáveis.
20
Profa Ivna Valença - [email protected]
+Recursos básicos de LP (JAVA)
n Tipos básicos (primitivos)
n Tipos numéricos com sinal
21
Profa Ivna Valença - [email protected]
+Recursos básicos de LP (JAVA)
n Tipos básicos (primitivos)
n Tipo numérico sem sinal (na verdade representa um código Unicode de um caractere)
22
Profa Ivna Valença - [email protected]
+Recursos básicos de LP (JAVA)
n Tipos básicos (primitivos)
n Tipo Lógico
n Valores possíveis, as palavras reservadas: true ou false.
23
Profa Ivna Valença - [email protected]
+Recursos básicos de LP (JAVA)
n Tipo String (não é primitivo)
n Sequência de caracteres.
n Tamanho: 16xN bits, onde N é a quantidade de caracteres da sequência. O tamanho pode variar com o conteúdo de uma variável do tipo String.
n Valores possíveis: Qualquer combinação de caracteres unicode. Com Strings, é possível representar textos.
24
Profa Ivna Valença - [email protected]
+Operadores Aritméticos
n ( + ) à soma
n ( - ) à subtração
n ( * ) à produto
n ( / ) à divisão
n (%) à resto da divisão
25
Profa Ivna Valença - [email protected]
+Operadores Aritméticos
n Soma: 2+3 à (2+3 = 5)
n Subtração: 4 – 5 à (4-5 = - 1)
n Produto: 6 * 8 à (6 * 8 = 24)
n Divisão: 8/4 à (8/4 = 2)
n Resto da divisão: 8%3 = 2
Observação: a divisão não é “trivial“. Depende dos tipos dos operandos.
26
Profa Ivna Valença - [email protected]
+Variável
n Declaração = Tipo, identificadores.
n Inicialização = Atribuição de um valor inicial à variável. Este valor pode ser: I. Uma outra variável do mesmo tipo ou de um tipo compatível.
II. Uma expressão do mesmo tipo compatível.
III. Uma constante do mesmo tipo ou de um tipo compatível.
n Na verdade, é possível realizar atribuições às variáveis sob as condições citadas em qualquer momento no programa, e não apenas na inicialização.
27
Profa Ivna Valença - [email protected]
+Variável
n Atribuição: é a operação de “jogar” em uma variável qualquer um dos três elementos I, II ou III. O operador de atribuição em Java é o sinal de igual (=).
n Atenção: = = em Java significa o sinal de comparação de igualdade. Para saber se duas expressões são iguais, usamos = =.
n Expressão: é qualquer comando ou sequencia de operações (envolvendo comandos, variáveis, constantes e operadores) que produz um resultado de um determinado tipo.
28
Profa Ivna Valença - [email protected]
+Variável
n Constante: É qualquer valor literal usado em um programa. Toda constante possui como variável, um tipo e demanda área de memória para seu armazenamento.
n Em Java, cada tipo prevê uma forma particular para representação de suas constantes.
n Constantes: n 2 (Constante inteira)
n 2.0 (Constante real)
n ‘c’ (Constante do tipo caractere)
n “Ivna” (Constantes do tipo sequencial de caracteres)
29
Profa Ivna Valença - [email protected]
+Variável
n Atenção: Embora muitas constantes sejam iguais numericamente, elas não são iguais nas suas representações internas.
n Exemplo: 2 e 2.0
n Mesmo que uma constante “caiba” numericamente em uma variável, ela não pode ser do tipo compatível com o tipo da variável.
30
Profa Ivna Valença - [email protected]
+Representação das Constantes nos tipos básicos do Java
n Compatibilidade de Tipos (Quem "cabe" em quem)
n Exemplos: n int a = 2; Pode
n float h = 2.3; Não pode
32
Profa Ivna Valença - [email protected]
+Representação das Constantes nos tipos básicos do Java
n Exemplos: n short s = 3
n int a = s
n double d = 2.5 f
n float x = d
n Em todos os casos que "não pode", o compilador marca a linha com um erro.
n O compilador checa ainda se o valor atribuído a uma variável está dentro da faixa de valores possíveis para o tipo da variável.
33
Profa Ivna Valença - [email protected]
+Expressões
n Exemplos: n ( a + 2 ) * 3 - 4.0
n int soma = a + b;
n Como toda expressão produz resultados, esta tem seu tipo. n Resultado → Tipo
n Como determinar o tipo do resultado de uma expressão?
n Exemplo: Se somarmos um int a um float, o resultado será de que tipo?
34
Profa Ivna Valença - [email protected]
+Promoção Aritmética
n O tipo de uma expressão é o mesmo do operando envolvido na expressão que possui tipo mais “largo”, ou de maior capacidade.
n Exercício: Determine os tipos das expressões: n int a=3;
n float x=2.5F;
n a * x + 2.4 – 6 → double
n I F D I
n (menos capacidade) byte → short → int → long → float → double (mais capacidade)
35
Profa Ivna Valença - [email protected]
+Promoção Aritmética
n Exemplo 1: n long z=4;
n byte b=5;
n 8L/z + b*4 – 6→
n Exemplo 2: n short s=6;
n long d=8L;
n 5.4F + s/d - 38%s →
36
Profa Ivna Valença - [email protected]
+Promoção Aritmética
n Por que “promoção aritmética”?
n As linguagens, antes de processarem uma expressão, convertem operandos de tipo menores para valores de tipo maiores.
37
Profa Ivna Valença - [email protected]
+Divisão inteira e divisão real
int x=3;
float z=4;
x/z=3/4.0F = 0,75F float
I F
3.0/2=1.5 double
D I
Profa Ivna Valença - [email protected]
38
+Divisão inteira e divisão real
n Quando pelo menos um dos operandos é um tipo real (float ou double). A divisão se processa normalmente.
n Quando os dois operandos são de tipo inteiros, a divisão é inteira. Trunca-se a parte decimal. n Tipos inteiros: byte, short, int, long
Profa Ivna Valença - [email protected]
39
+Divisão inteira e divisão real
n Exemplo:
int x=3;
long z=4;
x/z=3/4L = 0,75L=0L, desconsidera 75.
I L
3/2=1.5=1, desconsidera 5.
I I
Profa Ivna Valença - [email protected]
40
+Divisão inteira e divisão real
n Exemplos: Quais os valores e tipos das divisões dadas abaixo:
int a=3;
short z=6;
a/z = ?
a/z → 3/6=0,5 = 0, desconsidera 5.
I S
Profa Ivna Valença - [email protected]
41
+Divisão inteira e divisão real
n Exemplos: Quais os valores e tipos das divisões dadas abaixo:
int a=3;
a/2 = ?
a/2 → 3/2=1,5=1, desconsidera 5.
I I
Profa Ivna Valença - [email protected]
42
+Divisão inteira e divisão real
n Exemplos: Quais os valores e tipos das divisões dadas abaixo:
int a=3;
short z=6;
z/4 = ?
z/4.0F → 6/4.0F=1.5F
S F
Profa Ivna Valença - [email protected]
43
+Divisão inteira e divisão real
n Exemplos: Quais os valores e tipos das divisões dadas abaixo:
int a=3;
(a+3.0)/10 = ?
(a+3.0)/10 → (3+3.0)/10→ (3.0+3.0)/10→ 6.0/10=0.6
I D D I
Profa Ivna Valença - [email protected]
44
+Divisão inteira e divisão real
n Exemplos: Quais os valores e tipos das divisões dadas abaixo:
int a=3;
short z=6;
(a-1L)/z= ?
(a-1L)/z→ (3L-1L)/z→ 2L/z→ 2L/6=0,333L=0L
I L L I desconsidera 333
Profa Ivna Valença - [email protected]
45
+Expressões Aritméticas Matemáticas e Computacionais
n Vamos usar os operadores aritméticos básicos e as regras de promoção aritméticas e de divisão para montar e resolver expressões aritméticas.
n Montar expressões aritméticas: n Expressões aritméticas computacionais têm formas diferentes
das expressões aritméticas matemáticas.
Profa Ivna Valença - [email protected]
46
+Expressões Aritméticas Matemáticas e Computacionais
n Dadas as formulas matemáticas, escrever as mesmas em aritméticas computacionais. Considere as variáveis do tipo real (double).
Profa Ivna Valença - [email protected]
47
+Expressões Aritméticas Matemáticas e Computacionais
n Comandos de exponenciação em JAVA: Math.pow(b,e), onde “b”=base e “e”=exponente.
n Usando comandos de exponenciação.
(2*a+ b*c)/(Math.pow(x,2))+ a/(b−1)
Profa Ivna Valença - [email protected]
48
+Resolvendo mais expressões
n Resto da divisão
n Raiz de n
Profa Ivna Valença - [email protected]
49
+Resolver expressões aritméticas
n Observar os tipos de operandos para realizar promoção aritmética, fazer as promoções, fazer as promoções para cada sub-expressão.
n Lembrar da regra de divisão de inteiros (byte, short, int, long)
Profa Ivna Valença - [email protected]
50
+Resolver expressões aritméticas
int a = 3;
float x = 4;
(x*a)/(x+1)-a%2+a/6
Profa Ivna Valença - [email protected]
51
+Resolver expressões aritméticas
long z = 8;
int a = 4;
Double d = 2;
(d/a+a/z)*(z/16.0F+3%(a+1))
Profa Ivna Valença - [email protected]
52
+Resolver expressões aritméticas
short s = 3;
float x = 4.5F;
long y = 4;
((s/2-6/y)/(Math.pow((y+s),2)-1))+x*y-y%s
Profa Ivna Valença - [email protected]
53
+Resolver expressões aritméticas
n Quando se calcula uma expressão aritmética, deve-se determinar o tipo e o valor da mesma.
n Os comandos Math.pow e Math.sqrt retornam valores do tipo double, independente dos tipos dos seus operandos.
Profa Ivna Valença - [email protected]
54
+Operadores de comparação
n São operadores que, quando aplicados a dois operandos, resultam em um valor lógico: true ou false. Têm seus correspondentes na matemática.
== → igual a → =
!= → diferente de → ≠
> → maior→ >
< → menor → <
>= → maior ou igual → ≥
<= → menor ou igual→ ≤
Profa Ivna Valença - [email protected]
55
+Operadores de comparação
n Exemplo:
int a = 3;
long b = 3L;
double c = 4.5;
a == 3 →
a == b →
c != 4.5F →
a > 10 →
Profa Ivna Valença - [email protected]
56
+Operadores de comparação
n Exemplo:
int a = 3;
long b = 3L;
double c = 4.5;
c < = 4.5 →
b > 2 →
b > = -12 →
2 == 2.0 →
Profa Ivna Valença - [email protected]
57
+Operadores de comparação
n Observações: Para números e variáveis numéricas, os operadores de comparação realizam apenas comparações de valores, não levando em consideração os tipos dos operandos.
n Não usar == para comparar cadeias de caracteres (string). Para comparar duas strings, usar o comando equals, que volta true ou false.
Profa Ivna Valença - [email protected]
58
+Operadores de comparação
n Exemplo :
String a = “EDDIE”;
String b = “EULER”;
String c = “EULER”;
a.equals(b) →
a.equals(c) →
b.equals(c) →
a.equals(“EDDIE”) →
“ED”.equals(“xyz”) →
Profa Ivna Valença - [email protected]
59
+Operadores lógicos
n Realizam operações de conjunção, disjunção, negação e disjunção exclusiva em expressões lógicas, em variáveis lógicas e em constantes lógicas. n && (e)
n || (ou)
Profa Ivna Valença - [email protected]
60
+Expressões lógicas
n São formadas por operadores de comparação, operadores lógicos, variáveis e constantes, e resultam em um valor lógico (true ou false).
Profa Ivna Valença - [email protected]
61
+Expressões lógicas
n Exemplo 1:
int a=3;
int b=4;
(a>b) || ((a ==3) && ! (b!=0))
(3>4) || ((3==3) && ! (4!=0))
F || (V && !V)
F || (V && F)
F || F
F
Profa Ivna Valença - [email protected]
62
+Expressões lógicas
n Exemplo 2:
int x=4;
int z=8;
(z>=8) && !((x!=4) || false)
(8>=8) && !((4!=4) || F)
V && ! (F || F)
V && !F
V && V
V
Profa Ivna Valença - [email protected]
63