Baixe o app para aproveitar ainda mais
Prévia do material em texto
Resolução dos problemas propostos - Codificação em Java: 1°) package buscaordenacaoex1; import java.util.Scanner; import java.util.Random; public class BuscaOrdenacaoEx1 { public static boolean verificar(int[] vet, int valor) { int i; for (i = 0; i < vet.length; i++) { if (vet[i] == valor) { return true; } } return false; } public static void preencheVetor(int[] vet) { Random aleatorio = new Random(); int num; int i; boolean Erepetido; for (i = 0; i < vet.length; i++) { num = aleatorio.nextInt(10000) + 1; Erepetido = verificar(vet, num); if (Erepetido == false) { vet[i] = num; } } } public static void exibeVetor(int[] vetor) { int i; System.out.print("|"); for (i = 0; i < vetor.length; i++) { System.out.print(vetor[i] + " "); } System.out.println("|"); System.out.println(); } public static int buscaBinaria(int[] vet, int valor) { int inicio = 0, meio = 0, fim = vet.length; boolean achou = false; while (inicio < fim) { meio = (inicio + fim) / 2; if (vet[meio] == valor) { achou = true; break; } else if (vet[meio] > valor) { inicio = meio + 1; } else { fim = meio - 1; } } if (achou == true) { return meio; } else { return -1; } } public static void bubbleSort(int[] vet) { int i, fim = vet.length - 2, pos = 0; int chave; boolean troca; do { troca = false; for (i = 0; i <= fim; i++) { if (vet[i] < vet[i + 1]) { chave = vet[i]; vet[i] = vet[i + 1]; vet[i + 1] = chave; pos = i; troca = true; } } fim = pos - 1; } while (troca == true); } public static void main(String[] args) { Scanner in = new Scanner(System.in); char op; int[] vetInt = new int[10]; int num, result; preencheVetor(vetInt); bubbleSort(vetInt); System.out.println("Preenchimento automático do vetor de inteiros"); do { System.out.println("Tecle 1 - para buscar número no vetor"); System.out.println("Tecle 2 - para exibir o vetor"); System.out.println("Tecle 3 - para sair"); System.out.print("Opção: "); op = in.next().charAt(0); switch (op) { case '1': System.out.print("Digite o número entre 1 e 10.000 : "); num = in.nextInt(); while (num < 0 || num > 10000) { System.out.print("Número inválido. Tecle entre 1 e 10.000 : "); num = in.nextInt(); } result = buscaBinaria(vetInt, num); if (result == -1) { System.out.println("Número não encontrado no vetor"); } else { System.out.println("O número " + num + " está na posição" + " " + result + " do vetor"); } break; case '2': exibeVetor(vetInt); break; case '3': System.out.println("Programa encerrado!"); break; default: System.out.println("Tecla inválida!"); break; } } while (op != '3'); } } 2°) package buscaordenacaoex2; import java.util.Scanner; public class BuscaOrdenacaoEx2 { public static void exibeMenu() { System.out.println("Tecle 1 - Para buscar um nome"); System.out.println("Tecle 2 - Para verificar os nomes"); System.out.println("Tecle 3 - Para encerrar o programa"); System.out.print("Sua opção: "); } public static void exibeVetor(String[] vetor) { int i; System.out.println("Vetor de nomes: "); System.out.print("|"); for (i = 0; i < vetor.length; i++) { System.out.print(vetor[i] + " |"); } System.out.println(); } public static boolean Erepetido(String[] vet, String nome, int cont) { int i; for (i = 0; i < cont; i++) { if (nome.equalsIgnoreCase(vet[i]) == true) { return true; } } return false; } public static void preencheVetor(String[] vet) { Scanner in = new Scanner(System.in); int i, cont = 0; String nomeAux; boolean repetido; System.out.println("Preenchimento dos nomes: "); for (i = 0; i < vet.length; i++) { System.out.print((i + 1) + "° nome: "); nomeAux = in.nextLine(); repetido = Erepetido(vet, nomeAux, cont); while (repetido == true) { System.out.println("Nome informado já se encontra no vetor!"); System.out.print("Insira outro nome: "); nomeAux = in.nextLine(); repetido = Erepetido(vet, nomeAux, cont); } vet[i] = nomeAux; cont++; } System.out.println("Preenchimento concluído!"); System.out.println(); } public static void ordenacaoBubbleSort(String[] nomes) { int i, fim = nomes.length - 1, pos = 0; String chave; boolean troca; do { troca = false; for (i = 0; i < fim; i++) { if (nomes[i].compareToIgnoreCase(nomes[i + 1]) > 0) { chave = nomes[i]; nomes[i] = nomes[i + 1]; nomes[i + 1] = chave; pos = i; troca = true; } } fim = pos; } while (troca == true); } public static int buscaBinaria(String[] nomes, String n) { int inicio = 0, meio, fim = nomes.length; while (inicio < fim) { meio = (inicio + fim) / 2; if (nomes[meio].compareToIgnoreCase(n) == 0) { return meio; } else if (nomes[meio].compareToIgnoreCase(n) > 0) { fim = meio - 1; } else { inicio = meio + 1; } } return -1; } public static void main(String[] args) { Scanner in = new Scanner(System.in); int result; char op; String nome; String[] vetNomes = new String[5]; preencheVetor(vetNomes); ordenacaoBubbleSort(vetNomes); do { exibeMenu(); op = in.next().charAt(0); in.nextLine(); switch (op) { case '1': System.out.print("Informe o nome: "); nome = in.nextLine(); result = buscaBinaria(vetNomes, nome); if (result == -1) { System.out.println("Nome não encontrado no vetor!"); } else { System.out.println("O nome " + nome + " está na posição" + " " + (result + 1) + " do vetor."); } break; case '2': exibeVetor(vetNomes); break; case '3': System.out.println("Programa encerrado!"); break; default: System.out.println("Opção inválida."); } } while (op != '3'); } }
Compartilhar