Baixe o app para aproveitar ainda mais
Prévia do material em texto
VETOR - PROFESSOR: EDIBERTO MARIANO 1 VETOR (ARRAYS): dados e objetos - Arrays são variáveis que são agrupadas sob um nome em comum. É um grupo de variáveis (elementos ou componentes) que contém valores que são todos do mesmo tipo. - Tipos: são divididos em duas categorias: Tipos primitivos e tipos por referência - Os arrays são objetos, portanto são considerados tipos por referência. - O elementos de um array podem ser de tipos primitivos ou tipos por referência (multidimencionais). - Para referenciar um elemento particular em um array, especificamos o nome da referência para o array e o número de posição do elemento no array. O número de posição do elemento é chamado de índice ou subscrito do elemento. - O primeiro elemento de um array tem índice zero e às vezes é chamado zero-ésimo elemento. - Um índice de um array deve ser um inteiro não negativo. Exemplo: A[2, 4, 5, 6, 7, 8]; B[“Pedro","Maria","Victor","Mara"]; Declarando e criando arrays. Os objetos de array ocupam espaço de memória. Como outros objetos, os arrays são criados com a palavra- chave new. Para criar um objeto array, o programador especifica o tipo dos elementos do array e o número de elementos como parte de uma expressão de criação de array que utiliza a palavra-chave new. Tal expressão retorna uma referência que pode ser armazenada em uma variável array. Exemplo: Criar um objeto array que contém 10 elementos tipo inteiro armazenando a referência do array na variável B. int B[ ] = new int[ 10 ]; ou int B[ ]; // Declara a variável array B B = new int[ 10 ]; // Cria o array B; Atribui à variável array B 10 posições tipo inteira. Obs. A cada elemento do array é dado um valor inicial quando é configurado com new; O valor depende do tipo do array: Arrays numéricos têm o valor 0; Arrays char têm o valor ´\0´; Arrays booleanos têm o valor false; Arrays String e todos os outros objetos são criados com o valor inicial null. Exemplo public class Array00 { public static void main(String[] args) { final int array_length = 4; //Declara a constante array_lenght, com 4 posições VETOR - PROFESSOR: EDIBERTO MARIANO 2 int A[ ] = new int[array_length]; //Cria o array A tipo inteiro // int A[ ] = new int[4]; //Cria o array A tipo inteiro // exibe o array vazio System.out.println("Indice Valor"); // for(int i=0; i<4; i++) for(int i=0; i<array_length; i++) { System.out.println(+i+ " "+A[i]); } } } Resposta: Índice Valor 0 0 1 0 2 0 3 0 public class Array00 { public static void main(String[] args) { //final String array_length = 4; //Dá erro //String A[] = new String[array_length]; //Dá erro float A[] = new float[4]; //Cria o array A tipo inteiro //exibe o array vazio System.out.println("Indice Valor"); // for(int i=0; i<4; i++) for(int i=0; i<4; i++) { System.out.println(+i+ " "+A[i]); } }} Resposta: Índice Valor 0 0.0 1 0.0 2 0.0 3 0.0 public class Array00 { public static void main(String[] args) { //final String array_length = 4; //Dá erro VETOR - PROFESSOR: EDIBERTO MARIANO 3 //String A[] = new String[array_length]; //Dá erro double A[] = new double[4]; //Cria o array A tipo inteiro //exibe o array vazio System.out.println("Indice Valor"); // for(int i=0; i<4; i++) for(int i=0; i<4; i++) { System.out.println(+i+ " "+A[i]); } }} Resposta: Índice Valor 0 0.0 1 0.0 2 0.0 3 0.0 public class Array00 { public static void main(String[] args) { final char array_length = 4; //Declara a constante array_lenght, com 4 posições char A[] = new char[array_length]; //Cria o array A tipo inteiro // int A[] = new int[4]; //Cria o array A tipo inteiro //exibe o array vazio System.out.println("Indice Valor"); // for(int i=0; i<4; i++) for(int i=0; i<array_length; i++) { System.out.println(+i+ " "+A[i]); } }} Resposta: Índice Valor 0 1 2 3 public class Array00 { public static void main(String[] args) { //final String array_length = 4; //Dá erro //String A[] = new String[array_length]; //Dá erro String A[] = new String[4]; //Cria o array A tipo inteiro //exibe o array vazio System.out.println("Indice Valor"); VETOR - PROFESSOR: EDIBERTO MARIANO 4 // for(int i=0; i<4; i++) for(int i=0; i<4; i++) { System.out.println(+i+ " "+A[i]); } } } Resposta: Índice Valor 0 null 1 null 2 null 3 null Inicialização de um array int A[ ] = {10, 20, 30, 40 }; Exercício Codifique um programa em java que: a) Leia via teclado 4 numeros inteiros e armazene em um array b) Depois dos números armazenados, exiba-os com suas respectivas posições na tela import java.io.*; public class Array01 { public static void main(String[] args) { //final int array_length = 4; //Declara a constante array_lenght, com 4 posições //int A[] = new int[array_length]; //Cria o array A tipo inteiro int A[] = new int[4]; //Cria o array A tipo inteiro BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); try { //for(int i=0; i<array_length; i++) //ou assim for(int i=0; i<4; i++) { System.out.print("Digite o numero na posicao "+i+" do array :"); A[i] = Integer.parseInt(br.readLine()); } } catch(IOException e) { System.out.println("Erro de entrada"+e); VETOR - PROFESSOR: EDIBERTO MARIANO 5 } //for(int i=0; i<array_length; i++) // ou assim for(int i=0; i<4; i++) { System.out.println("Numero da posicao "+i+" do array :"+A[i]); } } } Outro exemplo. public class Array00 { public static void main(String[] args) { String A[] = {"Pedro","Maria","Victor","Mara"}; exibe o conteúdo do array em suas posições System.out.println("Indice Valor"); // for(int i=0; i<4; i++) for(int i=0; i<4; i++) { System.out.println(+i+ " "+A[i]); } } } Outro exemplo. Codifique um programa em java que: a) Leia via teclado 4 nomes e armazene-os em um array b) Depois dos nomes armazenados, exiba-os na tela import java.io.*; public class Array02 { public static void main(String[] args) { //final int array_length = 4; //Declara a constante array_lenght, com 4 posições //int A[] = new int[array_length]; //Cria o array A tipo inteiro String A[] = new String[4]; //Cria o array A tipo inteiro BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); try { //for(int i=0; i<array_length; i++) //ou assim for(int i=0; i<4; i++) { System.out.print("Digite o nome na posicao "+i+" do array :"); VETOR - PROFESSOR: EDIBERTO MARIANO 6 A[i] = (br.readLine()); } } catch(IOException e) { System.out.println("Erro de entrada"+e); } //for(int i=0; i<array_length; i++) // ou assim for(int i=0; i<4; i++) { System.out.println("Nome da posicao "+i+" do array : "+A[i]); } } } Outro exemplo. Codifique um programa em java que:a) Leia via teclado 4 numeros inteiros e armazene em um array b) Depois dos números armazenados, crie um segundo array, em que cada valor dos elementos seja respectivo o dobro do elemento da mesma posição do array A import java.io.*; public class Array03 { public static void main(String[] args) { //final int array_length = 4; //Declara a constante array_lenght, com 4 posições //int A[] = new int[array_length]; //Cria o array A tipo inteiro int A[] = new int[4]; //Cria o array A tipo inteiro int B[] = new int[4]; //Cria o array A tipo inteiro BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); try { //for(int i=0; i<array_length; i++) //ou assim for(int i=0; i<4; i++) { System.out.print("Digite o numero na posicao "+i+" do array :"); A[i] = Integer.parseInt(br.readLine()); B[i] = A[i]*2; //Armazena o conteúdo da posição do array A*2 na posição do array B } } catch(IOException e) VETOR - PROFESSOR: EDIBERTO MARIANO 7 { System.out.println("Erro de entrada"+e); } System.out.println("\nArray A"); //for(int i=0; i<array_length; i++) // ou assim for(int i=0; i<4; i++) System.out.println("Numero da posicao "+i+" do array :"+A[i]); System.out.println("\nArray B"); for(int i=0; i<4; i++) System.out.println("Numero da posicao "+i+" do array :"+B[i]); } } COPIA DOS ELEMENTOS DE UM ARRAY PARA OUTRO. - Para copiar realmente arrays, é necessário utilizar o método arraycopy da classe System: System.arraycopy (arrayorigem, indiceorigem, arraydestino, indicedestino, quantidade); Exemplo: public class Array00 { public static void main(String[] args) { int A[] = {2,3,4,6}; int B[] = new int[4]; for(int i=0; i<4; i++) System.arraycopy (A, i, B, i, 1); // exibe o conteúdo do array A em suas posições System.out.println("ARRAY A"); System.out.println("Indice Valor"); for(int i=0; i<4; i++) { System.out.println(+i+ " "+A[i]); } // exibe o conteúdo do array B em suas posições System.out.println("ARRAY B"); System.out.println("Indice Valor"); // for(int i=0; i<4; i++) for(int i=0; i<4; i++) { System.out.println(+i+ " "+B[i]); VETOR - PROFESSOR: EDIBERTO MARIANO 8 } } } Exercício Codifique um programa em Java que: - Crie uma série de fibonacci em que, o tamanho da série é informada pelo usuário; - Após a criação da série, será pesquisado e exibido na tela se um determinado número informado pelo usuário existe na mesma, caso o numero pesquisado não existir na série, será exibido a msg "numero procurado não existe na tela"; Obs. Caso o número pesquisado seja igual ao número 1, além do mesmo ser exibido duas vezes, deverá ser exibido a mensagem, o número pesquisado existe na série duas vezes. Resposta: import java.util.Scanner; public class fibonacci { public static void main(String[] args) { int penultimo, ultimo, novo, tam, controle=0, num, achou = 0, qtde=0; ultimo = 1; penultimo = 0; System.out.print("Qual o tamanho da serie? = "); Scanner input = new Scanner(System.in); tam = input.nextInt(); int vetA[] = new int[tam]; System.out.print(penultimo); vetA[controle]=penultimo; controle++; while(controle < tam) { System.out.print(" "+ultimo); vetA[controle]=ultimo; novo = ultimo + penultimo; penultimo = ultimo; ultimo = novo; controle++; } System.out.print("\nQual o numero a ser pesquisado na serie? = "); Scanner a = new Scanner(System.in); num = a.nextInt(); for(int i=0;i<tam;i++) { if(num == vetA[i]) { System.out.print(" " +vetA[i]); achou = 1; if(vetA[i] == 1) qtde++; } } if(achou == 0) System.out.println("\nNumero procurado nao existe na serie"); if(qtde > 0) VETOR - PROFESSOR: EDIBERTO MARIANO 9 System.out.println("\nNumero procurado existe duas vezes na serie"); } } ARRAYS MULTIDIMENSIONAIS - Os arrays multidimensionais (matrizes) em JAVA são declarados da seguinte forma (os cálculos e manipulações são feitos de forma semelhante aos arrays unidimensionais); Nos arrays multimensionais cada elemento é referenciado através de duas coordenadas, por exemplo (x,y). Ex: int[][] matrizA = new int[4][4]; exemplo public class Ex05 { public static void main(String[] args) { int A[][] = new int[4][4]; // exibe o conteúdo do array A em suas posições System.out.println("ARRAY A"); System.out.println("Indice Valor"); for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { System.out.println(+i+","+j+" "+A[i][j]); } } } } Resposta Indice Valor 0,0 0 0,1 0 0,2 0 0,3 0 1,0 0 1,1 0 1,2 0 1,3 0 2,0 0 2,1 0 2,2 0 2,3 0 3,0 0 3,1 0 3,2 0 3,3 0 0,0 0 0,0 0 VETOR - PROFESSOR: EDIBERTO MARIANO 10 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 Outro exemplo public class Ex05 { public static void main(String[] args) { int A[][] = new int[4][4]; System.out.println("ARRAY A"); for(int i=0; i<4; i++) { System.out.println("\n"); for(int j=0; j<4; j++) { System.out.print(+A[i][j]); System.out.print(" "); } } } } Resposta 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Exercício Codifique um programa em java que: a) Leia via teclado 4 numeros inteiros e armazene em um array Multimensional b) Depois dos números armazenados, exiba-os na tela import java.io.*; public class Ex06 { public static void main(String[] args) { //final int array_length = 2; //Declara a constante array_lenght, com 4 posições //int A[][] = new int[array_length]; //Cria o array A tipo inteiro int A[][] = new int[2][2]; //Cria o array A tipo inteiro BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); try { //for(int i=0; i<array_length; i++) //ou assim for(int i=0; i<2; i++) { for(int j=0; j<2; j++) { System.out.print("Digite o numero na posicao "+i+","+j+" do array :"); A[i][j] = Integer.parseInt(br.readLine()); } } } catch(IOException e) { VETOR - PROFESSOR: EDIBERTO MARIANO 11 System.out.println("Erro de entrada"+e); } //for(int i=0; i<array_length; i++) // ou assim for(int i=0; i<2; i++) { System.out.println("\n"); for(int j=0; j<2; j++) { System.out.print(+A[i][j]); System.out.print(" "); } } } } Passando array e elementos de array como argumentos para métodos public class Array07 { public static void main(String[] args) { //Cria array A int A[] = {2,3,4,6}; //exibe o conteúdo do array A sem modificações em suas posições System.out.println("Indice Valor"); for(int i=0; i<4; i++){ System.out.println(+i+ " "+A[i]); } System.out.println("\n"); //invoca o método modificaArray, passando o array A como um argumento modificaArray(A); //Passa a referência do array A para o método modificaArray // exibe o conteúdo do array A modificado e suas posições System.out.println("Cada elemento do array original vezes 2"); System.out.println("Indice Valor"); for(int i=0; i<4; i++) { System.out.println(+i+ " "+A[i]); } System.out.println("\n"); // invoca o método modificaElemento, passando o A[3] como um argumento // Passa a referência do array A[3] para o método modificaElemento modificaElemento( A[3]); System.out.print("Elemento 3 do array A vezes 3 = "); System.out.println(" = "+A[3]); System.out.println("\n"); }// fim de main //Multiplica cada elemento do array A por 2 //O método modificaArray recebe uma cópia da referência array A e utiliza //essa referência para multiplicar cada um dos elementos do array A por 2. //para provar que os elementos do array A foram modificados. public static void modificaArray( int B[] ) { for(int i=0; i<B.length; i++) VETOR - PROFESSOR: EDIBERTO MARIANO 12 B[i] *= 2; } //Fim do método modificaArray // Método modificaElemento // Multiplica o argumento A[3] por 3 public static void modificaElemento( int elemento ) { elemento *= 3; } } Saída:
Compartilhar