63
+ Programação Estruturada em JAVA Profa. Ivna Valença [email protected]

Aula 02 - Programação Estruturada em JAVA

Embed Size (px)

Citation preview

Page 1: Aula 02 - Programação Estruturada em JAVA

+

Programação Estruturada em JAVA Profa. Ivna Valença [email protected]

Page 2: Aula 02 - Programação Estruturada em JAVA

+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]

Page 3: Aula 02 - Programação Estruturada em JAVA

+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]

Page 4: Aula 02 - Programação Estruturada em JAVA

+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]

Page 5: Aula 02 - Programação Estruturada em JAVA

+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]

Page 6: Aula 02 - Programação Estruturada em JAVA

+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]

Page 7: Aula 02 - Programação Estruturada em JAVA

+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]

Page 8: Aula 02 - Programação Estruturada em JAVA

+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]

Page 9: Aula 02 - Programação Estruturada em JAVA

+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]

Page 10: Aula 02 - Programação Estruturada em JAVA

+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]

Page 11: Aula 02 - Programação Estruturada em JAVA

+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]

Page 12: Aula 02 - Programação Estruturada em JAVA

+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]

Page 13: Aula 02 - Programação Estruturada em JAVA

+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]

Page 14: Aula 02 - Programação Estruturada em JAVA

+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]

Page 15: Aula 02 - Programação Estruturada em JAVA

+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]

Page 16: Aula 02 - Programação Estruturada em JAVA

+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]

Page 17: Aula 02 - Programação Estruturada em JAVA

+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]

Page 18: Aula 02 - Programação Estruturada em JAVA

+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]

Page 19: Aula 02 - Programação Estruturada em JAVA

+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]

Page 20: Aula 02 - Programação Estruturada em JAVA

+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]

Page 21: Aula 02 - Programação Estruturada em JAVA

+Recursos básicos de LP (JAVA)

n  Tipos básicos (primitivos)

n  Tipos numéricos com sinal

21

Profa Ivna Valença - [email protected]

Page 22: Aula 02 - Programação Estruturada em JAVA

+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]

Page 23: Aula 02 - Programação Estruturada em JAVA

+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]

Page 24: Aula 02 - Programação Estruturada em JAVA

+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]

Page 25: Aula 02 - Programação Estruturada em JAVA

+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]

Page 26: Aula 02 - Programação Estruturada em JAVA

+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]

Page 27: Aula 02 - Programação Estruturada em JAVA

+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]

Page 28: Aula 02 - Programação Estruturada em JAVA

+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]

Page 29: Aula 02 - Programação Estruturada em JAVA

+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]

Page 30: Aula 02 - Programação Estruturada em JAVA

+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]

Page 31: Aula 02 - Programação Estruturada em JAVA

+Representação das Constantes nos tipos básicos do Java

31

Profa Ivna Valença - [email protected]

Page 32: Aula 02 - Programação Estruturada em JAVA

+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]

Page 33: Aula 02 - Programação Estruturada em JAVA

+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]

Page 34: Aula 02 - Programação Estruturada em JAVA

+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]

Page 35: Aula 02 - Programação Estruturada em JAVA

+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]

Page 36: Aula 02 - Programação Estruturada em JAVA

+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]

Page 37: Aula 02 - Programação Estruturada em JAVA

+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]

Page 38: Aula 02 - Programação Estruturada em JAVA

+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

Page 39: Aula 02 - Programação Estruturada em JAVA

+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

Page 40: Aula 02 - Programação Estruturada em JAVA

+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

Page 41: Aula 02 - Programação Estruturada em JAVA

+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

Page 42: Aula 02 - Programação Estruturada em JAVA

+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

Page 43: Aula 02 - Programação Estruturada em JAVA

+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

Page 44: Aula 02 - Programação Estruturada em JAVA

+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

Page 45: Aula 02 - Programação Estruturada em JAVA

+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

Page 46: Aula 02 - Programação Estruturada em JAVA

+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

Page 47: Aula 02 - Programação Estruturada em JAVA

+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

Page 48: Aula 02 - Programação Estruturada em JAVA

+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

Page 49: Aula 02 - Programação Estruturada em JAVA

+Resolvendo mais expressões

n  Resto da divisão

n  Raiz de n

Profa Ivna Valença - [email protected]

49

Page 50: Aula 02 - Programação Estruturada em JAVA

+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

Page 51: Aula 02 - Programação Estruturada em JAVA

+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

Page 52: Aula 02 - Programação Estruturada em JAVA

+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

Page 53: Aula 02 - Programação Estruturada em JAVA

+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

Page 54: Aula 02 - Programação Estruturada em JAVA

+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

Page 55: Aula 02 - Programação Estruturada em JAVA

+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

Page 56: Aula 02 - Programação Estruturada em JAVA

+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

Page 57: Aula 02 - Programação Estruturada em JAVA

+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

Page 58: Aula 02 - Programação Estruturada em JAVA

+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

Page 59: Aula 02 - Programação Estruturada em JAVA

+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

Page 60: Aula 02 - Programação Estruturada em JAVA

+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

Page 61: Aula 02 - Programação Estruturada em JAVA

+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

Page 62: Aula 02 - Programação Estruturada em JAVA

+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

Page 63: Aula 02 - Programação Estruturada em JAVA

+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