|
Dichiara, alloca e inizializza un vettore di reali contenente i valori successivi da 0.0 a 1.9 con passo 0.1 double[] v; v=new double[20]; for(int i=0; i < 20; i++) v[i]=i/10.0; // v[i]=(double)i/10; oppure ... for(double i=0.0; i < 2.0; i +=0.1) v[(int)(i*10.0)]=i; oppure... double[] v={ 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9 }; Sottolinea i tipi di dato primitivi del linguaggio Java presenti nell’elenco seguente: byte, character, float, int, integer, long, real, short Scrivi un blocco di selezione multipla che visualizza un saluto scelto tra 4 che corrispondono alle diverse ore della giornata. Utilizza il blocco switch() e il metodo Math.random(). int ora=(int)(24*Math.random()); switch(ora) { case 6: case 7: case 8: case 9: case 10: case 11: case 12; System.out.pritln("Buongiorno"); break; case 13: case 14: case 15: case 16: case 17: System.out.pritln("Buon pomeriggio"); break; case 18: case 19: case 20: System.out.pritln("Buona sera"); break; case 21: case 22: case 23: case 0: case 1: case 2: case 3: case 4: case 5: System.out.pritln("Buona notte"); break; } Valuta, indicando i passi seguiti, i valori finali delle variabili contenute nel seguente codice int a=10, b=4; a=a/b; b++; b%=a; Sinteticamente 1. a <-- 10 2. b <-- 4 3. a <-- 10/4=2 4. b <-- 4+1=5 5. b <-- 5%2=1 Dati quattro numeri reali inseriti da tastiera, su richiesta del programma, visualizzare il valore massimo. Utilizza un metodo per max(x, y). Il metodo max() è presente nella classe Math ma lo riscriviamo per esercizio... static double max(double x, double y) { if(x >= y) return x; else return y; } ConsoleReader tastiera=new ConsoleReader(); double[] v=new double[4]; for(int i=0; i < 4; i++) { System.out.print((i+1) + "° valore = "); v[i]=tastiera.readDouble(); } double massimo=v[0]; for(int i=1; i < 4; i++) massimo=max(massimo, v[i]); System.out.println(massimo); oppure, senza vettore (ma meno leggibile...) ConsoleReader tastiera=new ConsoleReader(); System.out.print("1° valore = "); double massimo=tastiera.readDouble(); for(int i=2; i <= 4; i++) { System.out.print(i + "° valore = "); massimo=max(massimo, tastiera.readDouble()); System.out.println(massimo); oppure ConsoleReader tastiera=new ConsoleReader(); System.out.print("1° valore = ");double a1=tastiera.readDouble(); System.out.print("2° valore = ");double a2=tastiera.readDouble(); System.out.print("3° valore = ");double a3=tastiera.readDouble(); System.out.print("4° valore = ");double a4=tastiera.readDouble(); a1=max(a1, a2); a3=max(a3, a4); a1=max(a1, a3); System.out.println(a1); oppure ... System.out.println(max(max(max(a1, a2), a3), a4)); Dati 6 numeri interi inseriti da riga di comando indicare se tra i primi 5 numeri è presente il 6° valore. Utilizza un array. int[] v=new int[6]; for(int i=0; i < 6; i++) v[i]=Integer.parseInt(args[i]); boolean risp=false; int k=v[5]; for(int i=0; i < 5; i++) if(v[i] == k) risp=true; System.out.println(k + " e\' presente? " + risp); Introducendo la variabile n il codice risulta più flessibile int n=args.length; int[] v=new int[n]; for(int i=0; i < n; i++) v[i]=Integer.parseInt(args[i]); boolean risp=false; int k=v[n-1]; for(int i=0; i < n-1; i++) if(v[i] == k) risp=true; System.out.println(k + " e\' presente? " + risp); |
|