/** Classe della Prova di Esame di Programmazione I e Laboratorio del 25 marzo 2003 */ public class ProvaArray3 { /** deve prendere come parametro due array di elementi di tipo intero di uguale lunghezza e restituire un nuovo array di elementi di tipo intero la cui lunghezza e` il doppio della lunghezza degli array in input contenente nelle posizioni pari (0, 2, 4, ecc.) gli elementi del primo array in input e nelle posizioni dispari gli elementi del secondo array in input @param a primo array di elementi di tipo intero @param b secondo array di elementi di tipo intero @return l'array fusione alternata degli array in input */ public static int[] fondiArrayI(int[] a, int[] b) { if ((a == null) || (b == null)) return null; if (a.length != b.length) return null; int[] ris = new int[a.length * 2]; int i = 0; while (i < a.length) { // e` possibile usare anche il "for" in alternativa ris[i * 2] = a[i]; ris[i * 2 + 1] = b[i]; i++; } return ris; } /** deve prendere come parametro due array di elementi di tipo intero di uguale lunghezza e restituire un nuovo array di elementi di tipo intero la cui lunghezza e` il doppio della lunghezza degli array in input contenente nelle posizioni pari (0, 2, 4, ecc.) gli elementi del primo array in input e nelle posizioni dispari gli elementi del secondo array in input @param a primo array di elementi di tipo intero @param b secondo array di elementi di tipo intero @return l'array fusione alternata degli array in input */ public static int[] fondiArrayII(int[] a, int[] b) { if ((a == null) || (b == null)) return null; if (a.length != b.length) return null; int[] ris = new int[a.length * 2]; int i = 0; while (i < ris.length) { ris[i] = a[i / 2]; i++; ris[i] = b[i / 2]; i++; } return ris; } /** Stampa un array di interi. Se l'array e` null lo segnala. @param a l'array di interi */ public static void printArray(int[] a) { if (a == null) System.out.println("L'array e` uguale a null!"); else for (int i = 0; i < a.length; i++) System.out.println("Elemento " + i + ": " + a[i]); } /** Risultato atteso dal main: Elemento 0: 1 Elemento 1: 3 Elemento 2: 6 Elemento 3: 5 Elemento 4: 3 Elemento 5: 8 Elemento 0: 3 Elemento 1: 3 Elemento 2: 5 Elemento 3: 5 Elemento 4: 8 Elemento 5: 8 L'array e` uguale a null! L'array e` uguale a null! */ public static void main(String[] args) { int[] a = {1, 6, 3}; int[] b = {3, 5, 8}; printArray(fondiArrayI(a, b)); printArray(fondiArrayII(a, b)); int[] a1 = {1, 6}; printArray(fondiArrayI(a1, b)); printArray(fondiArrayII(a1, b)); } }