Aula 02 - Programação Estruturada em JAVA

  • 2,077 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
2,077
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
39
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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 bitsProfa 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 possibilidadesProfa Ivna Valença - ivnavalenca@gmail.com
  • 5. + 5 Variável Conversão 1 Conversão 2 000 = 0 000 = 0 001 = 1 001 = 1 010 = 2 010 = 2 011 = 3 011 = 3 100 = – 4 100 = 4 101 = – 3 101 = 5 110 = – 2 110 = 6 111 = – 1 111 = 7Profa 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 10127Profa 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 => 11111111Profa 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 = 7Profa Ivna Valença - ivnavalenca@gmail.com
  • 16. + 16 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 – UNICODEProfa 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
  • 21. + 21 Recursos básicos de LP (JAVA) n  Tipos básicos (primitivos) n  Tipos numéricos com sinalProfa 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
  • 25. + 25 Operadores Aritméticos n  ( + ) à soma n  ( - ) à subtração n  ( * ) à produto n  ( / ) à divisão n  (%) à resto da divisãoProfa 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 JavaProfa 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 podeProfa 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
  • 36. + 36 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 →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 IProfa 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, longProfa 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 IProfa 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. ISProfa 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. IIProfa 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 FProfa 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 IProfa 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 333Profa 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 nProfa 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/6Profa 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%sProfa 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 FProfa 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 VProfa Ivna Valença - ivnavalenca@gmail.com