/** * Ciclo di gestione delle variabili. * * @throws IOException */ private static void data_cycle() throws IOException { boolean data_cycle = true; while (data_cycle) { out.print("data>> "); String cmd2 = in.readLine().trim(); if (cmd2.equals("")) { continue; } else if (cmd2.equals("exit")) { data_cycle = false; out.println("exit data menu...\n"); continue; } String[] p = cmd2.split(" "); // si stampano le variabili if (p[0].equals("variables")) { // si stampano le variabili for (Variable varia : data.getVariables().values()) { out.println("\tID: " + varia.getId() + " - N: " + varia.getN()); } continue; } if (p.length < 2) { out.println("\tInserire parametro variable\n"); continue; } String v = p[1]; try { // comandi switch (p[0]) { case "create": // si aggiunge la variabile data.addVariable(v); out.println("\tCreata variabile: " + v + "\n"); break; case "create-xy": if (p.length < 3) { out.println("data>> Inserire parametri:\n" + " nome variabile, valore di X\n"); continue; } double x = Double.parseDouble(p[2]); // si aggiunge la variabile data.addVariableXY(v, x); out.println("\tCreata variabile: " + v + "\n"); break; case "remove": // rimuove la variabile if (data.removeVariable(v)) { out.println("\tRimossa variabile: " + v + "\n"); } else { out.println("variabile non trovata: " + v); } break; case "values": // si stampano i valori Variable va = data.getVariable(v); for (double d : va.getMeasures()) { out.println(df.format(d)); } out.println(); break; case "evaluate": // si stampano i valori statistici Variable var = data.getVariable(v); double[] e = var.evaluate(); out.println("N: ...................." + df.format(e[0])); if (var instanceof VariableXY) { out.println("X: ...................." + df.format(((VariableXY) var).getX())); } out.println("Media: ................" + df.format(e[1])); out.println("Varianza: ............." + df.format(e[2])); out.println("Varianza Media: ......." + df.format(e[3])); out.println("Deviazione ST: ........" + df.format(e[4])); out.println("Deviazione ST Media: .." + df.format(e[5])); out.println(); break; case "add-values": if (!data.containsVariable(v)) { out.println("Creare prima la variabile..."); continue; } Variable var2 = data.getVariable(v); out.println("Inserire un valore e premere invio. (exit) per uscire..."); // si inseriscono i valori boolean ok = true; int i = 1; while (ok) { out.print("\tvalue-" + var2.getId() + "-" + i + ">> "); String s = in.readLine(); if (s.equals("")) { continue; } if (s.equals("exit")) { ok = false; break; } double m = Double.parseDouble(s); var2.addMeasure(m); i++; } out.println(); break; case "class-set": // si legge il terzo parametro if (p.length < 4) { out.println( "data>> Inserire parametri:\n" + " larghezza intervallo, freq relativa (true/false)\n"); continue; } double inte = Double.parseDouble(p[2]); boolean fr_rel = Boolean.parseBoolean(p[3]); Variable var3 = data.getVariable(v); ClassSet class_set = var3.getClassSet(inte, fr_rel); out.println(class_set); break; case "class-set-n": // si legge il terzo parametro if (p.length < 4) { out.println( "data>> Inserire parametri:\n" + " numero di intervalli, freq relativa (true/false)\n"); continue; } int inte2 = Integer.parseInt(p[2]); boolean fr_rel2 = Boolean.parseBoolean(p[3]); Variable var4 = data.getVariable(v); ClassSet class_set2 = var4.getClassSetNIntervals(inte2, fr_rel2); out.println(class_set2); break; case "class-set-s": // si legge il terzo parametro if (p.length < 4) { out.println( "data>> Inserire parametri:\n" + " larghezza intervallo, freq relativa (true/false)\n"); continue; } double sigma_factor = Double.parseDouble(p[2]); boolean fr_rel3 = Boolean.parseBoolean(p[3]); Variable var5 = data.getVariable(v); ClassSet class_set3 = var5.getClassSetSigmaFactor(sigma_factor, fr_rel3); out.println(class_set3); break; case "gauss-y": Variable var8 = data.getVariable(v); ClassSet set = var8.getLast_class_set(); List<Double> y = var8.getGaussianY(); Set<Double> xs = set.getFreq_map().keySet(); Iterator it = xs.iterator(); for (int j = 0; j < set.getNumberOfBins(); j++) { out.println("\t" + df.format(it.next()) + " - " + df.format(y.get(j))); } out.println(); break; case "set-x": if (p.length < 3) { out.println("data>> Inserire parametri:\n" + " id variabile, X da inserire\n"); continue; } Variable var6 = data.getVariable(v); if (var6 instanceof VariableXY) { ((VariableXY) var6).setX(Double.parseDouble(p[2])); } else { out.println("data>> Inserire variabile di tipo XY\n"); continue; } break; case "export-cvs": if (p.length < 2) { out.println("data>> Inserire parametri:\n" + " id variabile\n"); continue; } Variable var7 = data.getVariable(v); var7.exportCVS(path); out.println( "Salvata variabile " + var7.getId() + " in " + path + File.separator + var7.getId()); break; default: out.println("Inserire comando valido!"); } } catch (Exception e) { out.println(e.getMessage()); continue; } } }