/** Classe della Prova di Esame di Programmazione I e Laboratorio del 4 settembre 2003 */ public class ProvaArraySettembre { /** prende come parametro un array di elementi di tipo intero b e restituisce la media (un float) dei valori che compaiono nell'array b @param b array di elementi di tipo intero @return media dei valori in b. */ public static float calcolaMedia(int[] b) { if ((b == null) || (b.length <= 0)) throw new IllegalArgumentException("Array non inizializzato."); int somma = 0; for (int i=0; i < b.length; i++) somma += b[i]; return ((float)somma) / b.length; } /** prende come parametro un array di elementi di tipo intero a e un float x e restituisce il numero di elementi in a di valore maggiore di x @param a array di elementi di tipo intero @param x maggiore di @return numero di elementi in a maggiori di x */ public static int numeroPiuGrandi(int[] a, float x) { if ((a == null) || (a.length == 0)) throw new IllegalArgumentException("Array non inizializzato"); int ris = 0; for (int i=0; i < a.length; i++) if (a[i] > x) ris++; return ris; } /** prende come parametro un array di elementi di tipo intero c e restituisce il numero di elementi in c di valore maggiore della media dei valori che compaiono nell'array c stesso @param c array di elementi di tipo intero @return numero di elementi in a maggiori della media */ public static int numeroPiuGrandiDellaMedia(int[] c) { return numeroPiuGrandi(c, calcolaMedia(c)); } /** Risultato atteso dal main: Media ar1: 4.2 Media ar2: 3.3333333 Piu' grandi della media per ar1: 2 Piu' grandi della media per ar2: 3 */ public static void main(String[] args) { int[] ar1 = {2, 6, 3, 4, 6}; int[] ar2 = {1, 6, 3, 4, 2, 4}; System.out.println("Media ar1: " + calcolaMedia(ar1)); System.out.println("Media ar2: " + calcolaMedia(ar2)); System.out.println("Piu' grandi della media per ar1: " + numeroPiuGrandiDellaMedia(ar1)); System.out.println("Piu' grandi della media per ar2: " + numeroPiuGrandiDellaMedia(ar2)); } }