View Single Post
Old 10-10-2012, 14:06   #3
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da balth@zar Guarda i messaggi
Ma ti serve addirittura una libreria?
Non bastano un po' di cicli for annidati?

Oppure se vuoi fare una cosa un po' più elegante costruisci una serie di iteratori, uno per ogni parametro o gruppo di parametri; ogni iteratore restituisce una serie di valori del parametro nell'ordine da te richiesto, poi crei una funzione ricorsiva che prende come argomento un array di iteratori e richiama la tua funzione "calcolo" con l'array (o la mappa o quello che preferisci) dei valori ottenuti iterando sullo spazio dei parametri.

Faccio un esempio perchè mi sono capito da solo:
- paramIteratorA e paramIteratorB sono due iteratori che mi restituiscono rispettivamente le serie di valori per i parametri A e B
- calcolo(Object[] params) è la mia funzione di calcolo che prende come argomento un array [A, B] di parametri

La funzione di iterazione sarà una cosa del tipo:

Codice:
public void iterate(Iterator<Object[] iterators) {
  iterate(iterators, new Object[iterators.length], 0);
}

protected void iterate(Iterator<Object>[] iterators, Object[] params, int level) {
  Iterator paramIt=iterators[level];
  List<Object> values=new ArrayList<Object>();
  while (paramIt.hasNext() {
    values.add(paramIt.next());
  }
  for (Object param: values) {
    params[level]=param;
    if (level<iterators.length-1) {
      iterate(iterators, params, level+1);
    } else {
      calcolo(params);
    }
  }
}
A una cosa del genere avevo pensato anche io, ma pensavo ci fosse già qualche software che a partire da dei parametri generasse una sorta di script.

Il problema principale è che stavo cercando un modo per scrivere sotto forma di "script" le impostazioni dei parametri.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso