Baixe o app para aproveitar ainda mais
Prévia do material em texto
COMPARTILHANDO A REVISAO DE ARRAYS PARA O PASSEIDIRETO, EXERCICIOS E GABARITO. Exercicio Tutoriado A partir do esqueleto de código abaixo, implemente em Java a função generateVector, que recebe um número inteiro maior que zero e devolve um vetor de números inicializado com os valores de 0 a n-1. Adicionalmente, leia o número inteiro n na função main e invoque generateVector. public class Revisao { public static int[ ] generateVector(int n){ } public static void main(String args[]){ } } Percurso em vetores Dado um vetor v inicializado, há dois percursos sequenciais possíveis em v: da esquerda para a direita (do índice 0 até o último índice) e da direita para a esquerda (do último índice para o índice 0). Ambos os percursos, podem ser realizados com o comando for: Exercicio Tutoriado Implemente os procedimentos printVector e printReverseVector para exibir os elementos do vetor v da esquerda para a direita e da direita para a esquerda, respectivamente. Invoque estes procedimentos na função main. public class Revisao { public static int[ ] generateVector(int n){ ... } public void printVector(int v[ ]){ } public void printReverseVector(int v[ ]){ } public static void main(String args[]){ } } Atividade Laboratorio: Utilizando o código desenvolvido na aula teórica, implemente as duas funções abaixo: public static int[ ] union(int v[ ], int w[ ]): calcula e devolve o resultado da união entre os vetores v e w. public static int[ ] intersection(int v[ ], int w[ ]): calcula e devolve o resultado da intersecção entre os vetores v e w. Invoque estas duas funções na função main e verifique se o resultado está correto observando a saída do procedimento printVector. public class Revisao { public static int[ ] generateVector(int n){ ... } public void printVector(int v[ ]){ ... } public void printReverseVector(int v[ ]){ ... } public static int[ ] union(int v[ ], int w[ ]){ } public static int[ ] intersection(int v[ ], int w[ ]){ } public static void main(String args[]){ } } Gabarito import javax.swing.JOptionPane; // AUTHOR: “ “ public class helloworld { public static void main(String[] args) { int n = Integer.parseInt(JOptionPane.showInputDialog("Entre com a quantidade de numeros")); int v[] = new int[n], w[] = {2,8,3,9}; generateVector(v); printVector(v); System.out.println(""); for(int i = 0 ; i < w.length ; i++) System.out.println("Vetor 2 " + w[i]); System.out.println(""); printReverseVector(v); System.out.println(""); System.out.println("Ativ - 2 / inicio uniao e intersecao"); union(v,w); intersection (v,w); System.out.println("Inicio Interseção"); int vetF[]; vetF = intersection(v,w); for (int i=0; i<vetF.length; i++) System.out.println("Intersecção = " + vetF[i] + ";"); System.out.println("Digite um elemento para busca em última posiçao - lastIndexOf"); int e = Integer.parseInt(JOptionPane.showInputDialog("Entre com o numero ou elemento a ser buscado")); lastIndexOf(v,e); int idx = lastIndexOf(v,e); if (idx == -1){ System.out.println("Elemento nao encontrado"); }else{ System.out.println(" o ultimo elemento foi encontrado na posicao: " + idx); } } public static int[] generateVector(int v[]){ for (int i = 0; i<v.length; i++) v[i] = i; return v; } public static int lastIndexOf(int v[], int e) { int idx = -1; for (int i = v.length - 1; i >=0; i--) { if (e == v[i]) { idx = i; break; } } return idx; } public static void printVector(int v[]){ for(int i = 0 ; i < v.length ; i++) System.out.println("Vetor 1: " + v[i]); } public static void printReverseVector(int v[]){ for(int i = v.length-1 ; i >= 0 ; i--){ System.out.println("Vetor Reverso " + v[i]); } } public static int[] union(int v[ ], int w[ ]){ int max = (v.length + w.length); int y[] = new int [max]; for (int i = 0; i <v.length; i++){ y[i] = v[i]; } for (int i = 0; i < w.length; i++){ y[i+v.length] = w[i]; } for (int i = 0; i < y.length; i++){ System.out.println("Terceiro Vetor " + y[i]); } return y; } public static int[] intersection (int[] v, int[] w){ int vetInter[]; int cont=0; for (int l=0; l<v.length; l++){ for (int m=0; m<w.length; m++){ if (v[l] == w[m]) cont++; } } vetInter = new int [cont]; int var=0; for (int j=0; j<v.length; j++){ for (int k=0; k<w.length; k++){ if(v[j] == w[k]){ vetInter[var] = v[j]; var++; } } } return vetInter; } // intersecao, se um valor da mesma posicao for identico, armazenar no 4o vetor ( vetF[] ) da intersecao. }
Compartilhar