Advertisement
NelloRizzo

Estrazione senza ripetizione

Nov 28th, 2018
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. package corso.java;
  2.  
  3. public class Program {
  4.  
  5.     // Creare un estrattore di numeri per il gioco della tombola!
  6.     // *FATTO* Scrivere un metodo che stampi un array di numeri
  7.     // *FATTO* Scrivere un metodo che inserisca in un array tutti i numeri da 1 a 90
  8.     // *FATTO* Scrivere un metodo che scambi tra loro due numeri all'interno di un
  9.     //          array
  10.  
  11.     static void stampa(int[] array) {
  12.         // leggo quanti elementi ci sono nell'array
  13.         int lunghezza_array = array.length;
  14.         // scorro gli elementi uno per uno
  15.         for (int cursore = 0; cursore < lunghezza_array; ++cursore) {
  16.             // man mano che scorro stampo gli elementi
  17.             System.out.println(array[cursore]);
  18.         }
  19.     }
  20.  
  21.     static void riempi(int[] array) {
  22.         // controllo che nell'array ci sia posto per 90 numeri...
  23.         if (array.length != 90) {
  24.             System.out.println("Impossibile riempire");
  25.         } else {
  26.             // devo inserire in array tutti i numeri da 1 a 90
  27.             // man mano che conto da 1 a 90,
  28.             for (int conto = 1; conto <= 90; ++conto) {
  29.                 // devo inserire il numero all'interno dell'array
  30.                 // (in una particolare posizione?)
  31.                 int posizione = conto - 1; // decido di posizionare i numeri uno dietro l'altro...
  32.                 array[posizione] = conto;
  33.             }
  34.         }
  35.     }
  36.  
  37.     // dato l'array e le due posizioni p1 e p2,
  38.     // scambiare di posto l'elemento di posizione p1 con l'elemento di posizione p2
  39.     static void scambia(int[] array, int p1, int p2) {
  40.         // prendo il valore in p1
  41.         int v1 = array[p1];
  42.         // prendo il valore in p2
  43.         int v2 = array[p2];
  44.         // metto il valore di p2 in p1
  45.         array[p1] = v2;
  46.         // metto il valore di p1 in p2
  47.         array[p2] = v1;
  48.     }
  49.  
  50.     // dato questo metodo che restituisce un numero casuale tra 0 e 90 (escluso)...
  51.     static int casuale() {
  52.         return new java.util.Random().nextInt(90);
  53.     }
  54.  
  55.     // ... scrivere un metodo che scambi casualmente 2 numeri dell'array 1000 volte
  56.     static void scambiaCasuale(int[] array) {
  57.         for (int contatore = 0; contatore < 1000; ++contatore) {
  58.             // individuo la prima posizione casuale
  59.             int p1 = casuale();
  60.             // individuo la seconda posizione casuale
  61.             int p2 = casuale();
  62.             // scambio le due posizioni individuate
  63.             scambia(array, p1, p2);
  64.         }
  65.     }
  66.  
  67.     public static void main(String[] args) {
  68.         int[] ar = { 2534, 74563, 3456, 8576, 432, 748 };
  69.         stampa(ar);
  70.  
  71.         // crea uno spazio in memoria (nello heap) per 90 numeri interi
  72.         int[] numeri = new int[90];
  73.         riempi(ar);
  74.         riempi(numeri);
  75.         stampa(numeri);
  76.         scambia(numeri, 4, 5);
  77.         stampa(numeri);
  78.         scambiaCasuale(numeri);
  79.         stampa(numeri);
  80.     }
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement