LNCC Programação Java para iniciantes
Arrays em Java
Em Java um array é um objeto utilizado para armazenar seqüencialmente dados do mesmo tipo, chamados elementos do array O que é um Array?
Características de um array O tipo dos elementos do array Lápis 9 0 1 2 3 4 5 6 7 8 O índice, que define a ordem dos elementos do array A quantidade de elementos do array 10
Um array de inteiros O nome do array será NumPe. Para simplicidade armazenaremos apenas três tamanhos: 39, 40 e 41. A quantidade de elementos do array será, portanto, 3.
Características deste array O nome do array A indicação de array O tipo dos elementos do array Os elementos do array
Declaração deste array numpe 0 39 pilha 1 2 40 41 heap
Um programa exemplo 1 Todo array sabe quantos elementos possui
Declaração de array outra forma O tipo dos elementos do array O nome do array A indicação de array A quantidade de elementos do array A criação do objeto array Os elementos do array
Declaração de array 39 40 41 numpe 0 1 2 0 0 0 heap pilha
Exemplo 2
Exemplo 3 O compilador JAVA sempre inicializa um array, visto que todo array é um objeto
Exemplo 4 Código padrão para somar os elementos (numéricos) de um array
Um laço for dentro de outro Exemplo 5
Exemplo 6
Exemplo 7 -saída
Geometria vetorial
Francês, Nasceu em 31/03/1596 Faleceu em 11/02/1650 René Descartes
Definições 2 dimensões / plano 3 dimensões / espaço
Uma flecha AB é um segmento de reta orientado de A para B. O ponto A é a origem da flecha e B sua ponta. Flechas eqüipolentes Duas flechas AB e PQ são eqüipolentes quando possuem o mesmo tamanho, direção e sentido. Nesse caso escrevemos AB ~ PQ
b 2 a 2 q 2 x 2 A Q B Coordenadas cartesianas e equipolência p 2 P p a 1 1 q1 b 1 x 1 N um sistem a de coordenadas cartesianas O xy, considere duas flechas A B e P Q. E ntão: A B P Q b a q p 1 1 1 1 b a q p 2 2 2 2. N aturalm ente, ( a, a ) são as 1 2 coordenadas cartesianas do ponto A, ( b, b ) do B, e assim por 1 2 diante.
Definição de vetor-livre x 2 v A notação padrão para um vetor-livre é a combinação de uma letra minúscula mais uma flecha sobreposta: u, v, w x 1
x 2 B b 2 a 2 A v v 2 U m vetor livre v pode ser representado por um v 1 array v v, v no qual 1 2 a 1 b 1 x 1 v b a 1 1 1 v b a 2 2 2 onde AB é um a representante da classe de equipolência de flechas que define v Vetores-livres e arrays
Simplificando... v 2 v A Dado um vetor v, uma escolha muito natural para representá-lo é através da seta cuja origem coincide com a origem do sistema cartesiano de coordenadas. O v 1 1 2 v v, v no qual onde v v a 1 1 a 2 2 0 0 OA é o representante pela origem (0, 0)
Um programa para mostrar vetores O exemplo ilustra a simplicidade do código envolvido para passar um array como parâmetro para um método.
O corpo do método mostrar(...)
Está na filosofia da OO! O método mostrar(...) será usado em outros exemplos subseqüentes. Por simplicidade, seu código não será mais exibido.
Um outro detalhe... Na assinatura do método, não importa a posição do indicador de array, [ ], relativamente ao nome e ao tipo dos elementos do array
Adição de vetores x 2 u 1 v 1 w v v 2 u u 2 x 1 u v 1 1 w u v u v 2 2
Um programa para adicionar vetores
Variante do Adição de vetores Se, por algum motivo, for necessário usar o vetor soma, a linha 9 do programa Adição de vetores pode ser substituída por
Escalamento de um vetor x 2 w 1 w u 1 w u u1 u u 2 u 2 w 2 x 1 Multiplicar por -1 corresponde a manter a direção, mas inverter o sentido do vetor; Multiplicar por 0 implica em reduzir o vetor a um ponto; então ele perde a direção e o sentido.
A saída do programa de multiplicação de um vetor por um fator de escala
u1 v1 S e u e v, o produto u v 2 2 interno u, v de u por v é o núm ero real dado pela expressão: u 2 v 2 u v u, v u v u v 1 1 2 2 u 1 v 1 Produto interno
A norma de um vetor u1 S e u, a norm a de u é: u 2 2 2 u u, u u u 1 2 u 2 u u Nosso velho conhecido: o teorema de Pitágoras u 1 u 2 u 1
No programa a seguir é construído um método norma(...) que recebe como parâmetros formais um array u[ ] de elementos double e devolve um double.que é a norma do vetor u. O método é chamado duas vezes e são passados como parâmetros reais os arrays a e b, de 2 e 4 elementos respectivamente.
O ângulo entre dois vetores u1 v1 S e u e v, o ângulo u v 2 2 entre u e v é dado por: u v u, v cos( ) =, u v quando u 0 e v 0.
No programa a seguir é construído um método angulo(...) que recebe como parâmetros formais dois arrays u[ ] e v[ ] de elementos double e devolve um double.que é o ângulo (em graus) entre os vetores u e v. Esse método chama os métodos norma(...) e interno(...) já construídos; êle chama também os métodos acos(...), round(...) e a constante pré-definida PI da classe Math.
A geometria euclidiana
Cálculos comerciais Consumo Arroz Feijão Carne Batata 2ª 1.0 2.0 3.0 4.0 3ª 1.1 2.1 3.1 4.1 4ª 1.2 2.2 3.2 4.2 Preço R$ Arroz 2.0 Feijão 3.0 Carne 4.0 Batata 5.0 5ª 1.3 2.3 3.3 4.3 6ª 1.4 2.4 3.4 4.4 S 1.5 2.5 3.5 4.5
Solução Em Java, construímos o array bidimensional consumo[ ][ ] e o array unidimensional preço[ ]. A solução é dada pelo array unidimensional custo[ ], cujas linhas são calculadas como na descrição ao lado. Custo R$ 2ª 40.00 3ª 41.40 4ª 42.80 5ª 44.20 6ª 45.60 S 47.00 custo[2] = cons[2][0] x custo[0] + cons[2][1] x custo[1] + cons[2][2] x custo[2] + cons[2][3] x custo[3]
Dados Cálculo do custo
Linhas 2-9 da saída Linhas 10-12 da saída Linhas 13-15 da saída
mostrar(...) diferente?