Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Aula 02 - Programação Estruturada em JAVA
1. +
Programação
Estruturada em JAVA
Profa. Ivna Valença
ivnavalenca@gmail.com
2. + 2
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.
Profa Ivna Valença - ivnavalenca@gmail.com
3. + 3
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
Profa Ivna Valença - ivnavalenca@gmail.com
4. + 4
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
Profa Ivna Valença - ivnavalenca@gmail.com
6. + 6
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.
Profa Ivna Valença - ivnavalenca@gmail.com
7. + 7
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*
Profa Ivna Valença - ivnavalenca@gmail.com
8. + 8
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.
Profa Ivna Valença - ivnavalenca@gmail.com
9. + 9
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).
Profa Ivna Valença - ivnavalenca@gmail.com
10. + 10
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.
Profa Ivna Valença - ivnavalenca@gmail.com
11. + 11
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.
Profa Ivna Valença - ivnavalenca@gmail.com
12. + 12
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
Profa Ivna Valença - ivnavalenca@gmail.com
13. + 13
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
Profa Ivna Valença - ivnavalenca@gmail.com
14. + 14
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.
Profa Ivna Valença - ivnavalenca@gmail.com
15. + 15
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
Profa Ivna Valença - ivnavalenca@gmail.com
17. + 17
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.
Profa Ivna Valença - ivnavalenca@gmail.com
18. + 18
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:
Profa Ivna Valença - ivnavalenca@gmail.com
19. + 19
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.
Profa Ivna Valença - ivnavalenca@gmail.com
20. + 20
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.
Profa Ivna Valença - ivnavalenca@gmail.com
22. + 22
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)
Profa Ivna Valença - ivnavalenca@gmail.com
23. + 23
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.
Profa Ivna Valença - ivnavalenca@gmail.com
24. + 24
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.
Profa Ivna Valença - ivnavalenca@gmail.com
26. + 26
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.
Profa Ivna Valença - ivnavalenca@gmail.com
27. + 27
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.
Profa Ivna Valença - ivnavalenca@gmail.com
28. + 28
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.
Profa Ivna Valença - ivnavalenca@gmail.com
29. + 29
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)
Profa Ivna Valença - ivnavalenca@gmail.com
30. + 30
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.
Profa Ivna Valença - ivnavalenca@gmail.com
31. + 31
Representação das Constantes nos
tipos básicos do Java
Profa Ivna Valença - ivnavalenca@gmail.com
32. + 32
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
Profa Ivna Valença - ivnavalenca@gmail.com
33. + 33
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.
Profa Ivna Valença - ivnavalenca@gmail.com
34. + 34
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?
Profa Ivna Valença - ivnavalenca@gmail.com
35. + 35
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)
Profa Ivna Valença - ivnavalenca@gmail.com
37. + 37
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.
Profa Ivna Valença - ivnavalenca@gmail.com
38. + 38
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 - ivnavalenca@gmail.com
39. + 39
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 - ivnavalenca@gmail.com
40. + 40
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 - ivnavalenca@gmail.com
41. + 41
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.
IS
Profa Ivna Valença - ivnavalenca@gmail.com
42. + 42
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.
II
Profa Ivna Valença - ivnavalenca@gmail.com
43. + 43
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 - ivnavalenca@gmail.com
44. + 44
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 - ivnavalenca@gmail.com
45. + 45
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 - ivnavalenca@gmail.com
46. + 46
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 - ivnavalenca@gmail.com
47. + 47
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 - ivnavalenca@gmail.com
48. + 48
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 - ivnavalenca@gmail.com
49. + 49
Resolvendo mais expressões
n Resto da divisão
n Raiz de n
Profa Ivna Valença - ivnavalenca@gmail.com
50. + 50
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 - ivnavalenca@gmail.com
51. + 51
Resolver expressões aritméticas
int a = 3;
float x = 4;
(x*a)/(x+1)-a%2+a/6
Profa Ivna Valença - ivnavalenca@gmail.com
52. + 52
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 - ivnavalenca@gmail.com
53. + 53
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 - ivnavalenca@gmail.com
54. + 54
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 - ivnavalenca@gmail.com
55. + 55
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 - ivnavalenca@gmail.com
56. + 56
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 - ivnavalenca@gmail.com
57. + 57
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 - ivnavalenca@gmail.com
58. + 58
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 - ivnavalenca@gmail.com
59. + 59
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 - ivnavalenca@gmail.com
60. + 60
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 - ivnavalenca@gmail.com
61. + 61
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 - ivnavalenca@gmail.com
62. + 62
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 - ivnavalenca@gmail.com
63. + 63
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 - ivnavalenca@gmail.com