/Users/teofilomatos/Documents/isep/APROG_2010_2011/projectos/PL6_EX_DEM2/src/pl6_ex_dem2/Main.java
  1 package pl6_ex_dem2;
  2 
  3 import java.util.Formatter;
  4 import java.util.Scanner;
  5 
  6 /**
  7  * @author APROG 2009/2010 - 1ND
  8  */
  9 public class Main {
 10 
 11     private static Scanner inp = new Scanner(System.in);
 12     private static Formatter out = new Formatter(System.out);
 13     private static final int MAXELEM = 30;
 14 
 15     // mostra todos os elementos do vector
 16     private static void mostraVector(int[] v, int n) {
 17         for (int i = 0; i < n; i++) {
 18             out.format("%d%n", v[i]);
 19         }
 20     }
 21 
 22     // procura pelo primeiro elemento no vector e devolve a sua posição
 23     private static int procuraVector(int[] v, int n, int elem) {
 24         int pos = -1;
 25 
 26         for (int i = 0; i < n; i++) {
 27             if (v[i] == elem) {
 28                 pos = i;
 29                 break;
 30             }
 31         }
 32 
 33         return pos;
 34     }
 35 
 36     // insere um novo elemento no final do vector
 37     private static boolean insereVector(int[] v, int n, int elem) {
 38 
 39         if (n < MAXELEM) {
 40             v[n] = elem;
 41             return true;
 42         } else {
 43             return false;
 44         }
 45     }
 46 
 47     public static void main(String[] args) {
 48         int n, elem, pos, u;
 49 
 50         // reservar elementos
 51         int[] vec = new int[MAXELEM];
 52 
 53         // pedir qantos números devem ser gerados
 54         do {
 55             out.format("Número de elementos a gerar:?");
 56             n = inp.nextInt();
 57         } while (n < 1 || n > MAXELEM);
 58 
 59 
 60         // gerar elementos únicos e preencher o vector
 61         for (int i = 0; i < n; i++) {
 62 
 63             u = Gerador.geraNumeros(5, 100);
 64 
 65             // garantir que não existe, caso contrário gera novo número
 66             while (procuraVector(vec, i+1, u) != -1){
 67                 u = Gerador.geraNumeros(5, 100);
 68             }
 69 
 70             vec[i] = u;
 71         }
 72 
 73         // mostrar os elementos do vector
 74         mostraVector(vec, n);
 75 
 76         // procura por um elemento
 77         out.format("Valor a procurar:?");
 78         elem = inp.nextInt();
 79 
 80         if ((pos = procuraVector(vec, n, elem)) == -1) {
 81             out.format("Não encontrado!%n");
 82         } else {
 83             out.format("Encontrado na %d posição do vector!%n", pos + 1);
 84         }
 85 
 86         // acrescentar um elemento
 87         out.format("Valor a adicionar:?");
 88         elem = inp.nextInt();
 89 
 90         if (insereVector(vec, n, elem)) {
 91             n++;
 92             out.format("Valor adicionado.%n");
 93         } else {
 94             out.format("Valor NÃO adicionado!%n");
 95         }
 96 
 97         // mostrar os elementos do vector
 98         mostraVector(vec, n);
 99  }
100 }
101 
102