/** * CrypticCorretta * classe didattica per esercitazione nella correzione degli errori sintattici. * La classe non contiene errori sintattici. * * @author Adriano Luchetta * @version 4-Nov-2006 * */ public class CrypticCorretta { /** restituisce l'elemento minimo in un array di interi @param a l'array di interi @return il minimo */ public static int findMin(int[] a) { int min = a[0]; //for (i = 0; i< a.length; i++) correzione errore 3 for (int i = 0; i< a.length; i++) // correzione errore 3 if (a[i] < min) min = a[i]; return min; } /** restituisce l'indice dell'elemento massimo in un array di interi @param a l'array di interi @return l'indice dell'elemento massimo */ public static int findMaxIndex(int[] a) { int max = a[0]; int maxIndex = 0; // correzione errore 4 for (int i = 0; i< a.length; i++) if (a[i] > max) { //int maxIndex = i; correzione errore 4 maxIndex = i; // correzione errore 4 max = a[i]; } return maxIndex; } /** cerca un elemento in un array di interi @param a l'array di interi @param target l'elemento da ricercare @return l'indice dell'elemento se questo e' presente nell'array, altrimenti -1 */ public static int search(int[] a, int target) { for (int i = 0; i < a.length; i++) //if (a[i] = target) correzione errore 5 if (a[i] == target) // correzione errore 5 return i; return -1; // correzione errore 6 } /** rimuove un elemento da un array di interi @param a l'array di interi @param index l'indice dell'elemento da eliminare @return true se l'elemento e' stato eliminato, false altrimenti */ public static boolean removeElement(int[] a, int index) { if (a == null) return false; boolean done; // correzione errore 1 if (index < 0 || index >= a.length) //boolean done = false; correzione errore 1 done = false; // correzione errore 1 else { for (int i = index; index < a.length - 1; i++) a[i] = a[i + 1]; done = true; } // correzione errore 2 return done; } /** criptico! */ public static void main(String[] args) { CrypticCorretta mystery = new CrypticCorretta(); for (int j = 0; j < (mystery.getEncripted() + mystery.getDecripted()).length(); j++); int k = 0; for (int j = 0; j < mystery.getEncripted().length(); j++) System.out.print("*"); System.out.print("\n" + mystery.getDecripted()); for (int j = 0; j < mystery.getEncripted().length(); j++) System.out.print("*"); } /** criptico! */ public CrypticCorretta() { cryptic = CRYPTIC; } /** criptico! */ public String getEncripted() { return cryptic; } /** criptico! */ public String getDecripted() { String decripted = ""; for (int i = 0; i < cryptic.length(); i++) decripted += (char)(cryptic.charAt(i) - 1); return decripted; } private static final String CRYPTIC = "dpnqmjnfouj-!dj!tfj!sjvtdjup\"\u000B"; private String cryptic; }