Linguagens de Programação II - Aula 10

2,848 views

Published on

Aula 10 - Linguagens de Programação II - Cursos de Sistemas de Informação III (manhã e noite). Instituto Federal de Educação, Ciência e Tecnologia (IFRS)

Published in: Education, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,848
On SlideShare
0
From Embeds
0
Number of Embeds
98
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Linguagens de Programação II - Aula 10

  1. 1. Utilização de arrays
  2. 2. definição É um conjunto de variáveis do mesmo tipo, com um mesmo identificador indexado unidimensional (vetores) multidimensional (matrizes) • Todo array é um objeto • Os índices sempre começam em 0 (zero) • O tamanho de um array não muda (estático)
  3. 3. definição <ul><ul><li>tipo [] variavel ; // cria a variável, mas não aloca memória </li></ul></ul><ul><ul><li>variavel = new tipo [ tamanho ] ; // aloca memória </li></ul></ul><ul><ul><li>Obs.: A alocação de memória é feita em tempo de execução, logo, o tamanho das matrizes pode ser calculado durante a execução do programa. </li></ul></ul><ul><li>Exemplo </li></ul><ul><li>char[] m = new char[200]; </li></ul><ul><li>Inicialização </li></ul><ul><ul><ul><li>int[] a = { 1, 2, 3, 4, 5}; </li></ul></ul></ul><ul><ul><ul><li>int[][] b = { {1,2,3} {4,5,6} }; </li></ul></ul></ul><ul><ul><ul><li>String[] s = new String[] { ”a”, ”casa”, ”caiu” }; </li></ul></ul></ul>
  4. 4. arrays unidimensionais O número de bytes alocados na memória para cada posição de um array é determinado pelo tipo dos elementos. Por exemplo, char, cada posição ocupará 2 bytes na memória; já para um vetor de inteiros int, cada posição ocupará 4 bytes. Iniciar uma referência de vetor em sua declaração: char vetor[] = new char[6]; Caso não seja iniciada, a referência terá o valor null. Operador new : criar uma instância de um vetor, da mesma forma que para criar qualquer tipo de instância.
  5. 5. arrays unidimensionais Pode-se iniciar um vetor passando os valores de cada posição, utilizando chaves, como no exemplo abaixo: int[] meses = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; Isto somente é possível no momento da declaração.
  6. 6. arrays unidimensionais // declaração de duas matrizes int [] vetInt1 = { 1, 3, 5, 7, 9, 11 }; int [] vetInt2 = new int[vetInt1.length * 2]; // loop de inicialização for( int i=0; i < vetInt1.length; i++) { vetInt2 [i*2] = vetInt1 [i]; vetInt2 [i*2+1] = vetInt1 [i] + 1; } // loop de impressão for( int i=0; i < vetInt2.length; i++) System.out.println(vetInt2[i]);
  7. 7. <ul><li>class ExemploArraysUni { </li></ul><ul><li>public static void main (String args[]) { </li></ul><ul><li>int i,total = 0; </li></ul><ul><li>int n[] = new int[10]; </li></ul><ul><li>if(args.length>0) { </li></ul><ul><li>try { </li></ul><ul><li>for (i=0;i<args.length;i++) { </li></ul><ul><li>n[i] = Integer.parseInt(args[i]); </li></ul><ul><li>total = total + n[i]; </li></ul><ul><li>} </li></ul><ul><li>System.out.println(&quot;Os numeros digitados na ordem inversa foram:&quot;); </li></ul><ul><li>for (i=args.length-1;i>=0;i--) { </li></ul><ul><li>System.out.print(n[i] + &quot; &quot;); </li></ul><ul><li>} </li></ul><ul><ul><ul><li>System.out.println(&quot;Somatoria dos numeros = &quot; + total); </li></ul></ul></ul><ul><ul><ul><li>System.out.println(&quot;Media entre eles = &quot; + (total / args.length)); </li></ul></ul></ul><ul><li>} catch(NumberFormatException erro) { </li></ul><ul><li> System.out.println(&quot;Erro: argumentos devem ser números inteiros&quot;); </li></ul><ul><li>} </li></ul><ul><li>} else { System.out.println(&quot;Digite pelo menos um número&quot;); } </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  8. 8. import javax.swing.*; class ExemploArrayUni2 { public static void main (String args[]) { String nomes = &quot;&quot;; char caracterArray[] = {'a','b','c','d','e','f','g'}; String stringArray[] = {&quot;Aprendendo&quot;,&quot;a&quot;,&quot;linguagem&quot;,&quot;Java&quot;}; for(int i=0;i<stringArray.length;i++) nomes = nomes + stringArray[i] + &quot; &quot;; JOptionPane.showMessageDialog(null, &quot;array: &quot; + String.valueOf(caracterArray) + &quot; Quant. de elementos: &quot; + caracterArray.length + &quot; 3 primeiros caracteres do array: &quot; + String.valueOf(caracterArray,0,3) + &quot; Mostrando o array: &quot; + nomes + &quot; Primeiro elemento: &quot; + stringArray[0] + &quot; Último elemento: &quot; + stringArray[stringArray.length-1]); } }
  9. 9. arrays bidimensionais char[][][] matrix = { { {'a', 'b', 'c', 'd'} , {'e', 'f', 'g', 'h'} , {'i', 'j', 'k', 'l'} } , { {'m', 'n', 'o', 'p'} , {'q', 'r', 's', 't'} , {'u', 'v', 'w', 'x'} } }; Utiliza-se os mesmos procedimentos dos arrays unidimensionais, usando colchetes para indicar quantas dimensões são necessárias. A iniciação se dá da mesma forma, utilizando-se o operador new, seguido dos tamanhos de cada dimensão entre colchetes. Também podemos iniciar uma matriz com valores usando chaves da mesma forma que nos vetores, lembrando que uma matriz não deixa de ser um vetor de vetores:
  10. 10. arrays bidimensionais import javax.swing.*; class ExemploArrayBid { public static void main (String args[]) { float notas[][] = new float[3][2]; int aluno = 0,nota; while(aluno<3) { nota = 0; while(nota<2) { notas[aluno][nota] = Float.parseFloat(JOptionPane.showInputDialog(null, &quot;Forneça a nota &quot; + (nota+1) + &quot; do aluno &quot;+ (aluno+1))); nota++; } aluno++; } aluno = Integer.parseInt(JOptionPane.showInputDialog(null, &quot;Forneça o número do aluno a consultar: &quot;)); JOptionPane.showMessageDialog(null, &quot;CONSULTA DE NOTAS: &quot; + &quot; Aluno : &quot; + aluno + &quot; Nota1: &quot; + notas[aluno - 1][0] + &quot; Nota2: &quot; + notas[aluno - 1][1] + &quot; Media: &quot; + ((notas[aluno - 1][0] + notas[aluno - 1][1]) / 2) ); System.exit(0); } }
  11. 11. passagem de arrays em métodos Já abordamos os objetos e suas propriedades. É importante saber que podemos criar métodos que podem passar e retornar arrays. Sintaxe: public static tipo[] nome-do-metodo (tipo[] nome-do-array)
  12. 12. import javax.swing.*; class MetodosArrays { public static void main (String args[]) { int array[] = new int[5]; String saidaDigitada = &quot;Array digitado: &quot;; for (int i=0;i<5;i++) { array[i] = Integer.parseInt(JOptionPane.showInputDialog(null, &quot;Forneça o número &quot; + (i + 1) + &quot; entre 0 e 1000: &quot;)); saidaDigitada += array[i] + &quot; - &quot;; } array = ordenaArrayInt(array); String saidaOrdenada = &quot;Array ordenado: &quot;; for(int i=0;i<array.length;i++) saidaOrdenada += array[i] + &quot; - &quot;; JOptionPane.showMessageDialog(null,&quot; &quot; + saidaDigitada + &quot; &quot; + saidaOrdenada); System.exit(0); } passagem de arrays em métodos CONTINUA NO PRÓXIMO...
  13. 13. passagem de arrays em métodos <ul><li>public static int[] ordenaArrayInt(int arr[]) { </li></ul><ul><li>int x,y,aux; </li></ul><ul><li>for(x=0;x<arr.length;x++) </li></ul><ul><li>for (y=0;y<arr.length;y++) { </li></ul><ul><li>if(arr[x]<arr[y]) </li></ul><ul><li>{ </li></ul><ul><ul><ul><ul><li>aux=arr[y]; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>arr[y]=arr[x]; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>arr[x]=aux; </li></ul></ul></ul></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>return (arr); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>CONTINUAÇÃO DO ANTERIOR.
  14. 14. arrays de objetos Podemos criar um array para armazenamento de objetos. <ul><li>class ObjetosArrays { </li></ul><ul><li>public static void main (String args[]) { </li></ul><ul><li> Pessoa pessoa[] = new Pessoa[100]; </li></ul><ul><li>for (int i=0;i<100;i++) { </li></ul><ul><li>pessoa[i] = new Pessoa(); </li></ul><ul><li>} </li></ul><ul><ul><li>pessoa[1].setNome(&quot;Lucas&quot;); </li></ul></ul><ul><ul><li>pessoa[35].setNome(&quot;Izabela&quot;); </li></ul></ul><ul><ul><li>pessoa[68].setNome(&quot;Tatiana&quot;); </li></ul></ul><ul><ul><li>pessoa[95].setNome(&quot;Mateus&quot;); </li></ul></ul><ul><ul><li>for (int i=0;i<100;i++) { </li></ul></ul><ul><li> pessoa[i].setNome(&quot;&quot;); </li></ul><ul><li> } </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>

×