'Sera a tutti
In spaziometria nonostante ne abbia creato anche una versione funzionante con tabella (script n.40) ho provato a fare anche una versione con matrice similare a quanto tentato con twinbasic... A differenza di questo secondo ambiente in spazioemtria anche se la creo con 100.000 righe iniziali è molto veloce...
Quindi sono riuscito a creare l'analisi che mi prefiggevo su più ruote unite a girare con ordinamento per parametro voluto e con report sulle combinazioni totali generate in rapporto ai vari mix di sviluppo decisi...
L'unico mio problema... in questo caso nasce con il tentare di ordinarne le colonne senza ricorrere alla + lenta ma comunque ugualmente pratica tabella... E' possibile fare l'ordinamento con una matrice di questo genere lì o no? Se si come?
La matrice si popola... correttamente.. solo ripeto non riesco ad ordinarla per la colonna desiderata...
Codice:
matriceordinabilemultidimensionale(100000,6)
matriceordinabilemultidimensionale(contatorexmatrice,0) = StringaNumeri(rigasviluppata)
matriceordinabilemultidimensionale(contatorexmatrice,1) = StringaNumeri(vettoreruoteunite)
matriceordinabilemultidimensionale(contatorexmatrice,2) = NomeSorte(sorte)
matriceordinabilemultidimensionale(contatorexmatrice,3) = Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) = Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) = Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) = Int(freq)
Grazie come sempre per le vostre preziose dritte!
Buongiorno a tutti! Dalla tua matrice, i sorts che hanno un senso sembrano essere questi 4:
matriceordinabilemultidimensionale(contatorexmatrice,3) =
Int(rit)
matriceordinabilemultidimensionale(contatorexmatrice,4) =
Int(ritmax)
matriceordinabilemultidimensionale(contatorexmatrice,5) =
Int(Incmax)
matriceordinabilemultidimensionale(contatorexmatrice,6) =
Int(freq)
Se questo ha senso, anche se un senso 100K elementi non lo hanno proprio, dovresti scegliere quale parametro fra questi ha una valenza che (per te) prevale sulla altre. Questa sarebbe la chiave di indicizzazione primaria. Nel senso che quando esporrai la lista risultante, i gruppi di numeri afferenti, verranno presentati ordinati rispetto alla chiave primaria. Le altre 3 possibili chiavi (rit, ritmax e incmax) veranno semplicemente visualizzate per conseguenza dovuta alla condivisione dello stesso indice nella tua matrice.
Cosa diversa e' se vuoi fare un sort a chiave multipla, cioe' (per esempio) in questo ordine:
1 freq
2 ritmax
3 incmax
4 rit
Apro una parentesi, mi sembra abbastanza ovvio che, per il caso chiave multipla, la lista dei 100K elementi sarebbe impossibile (
oltre che inutile) da decifrare ad occhio nudo. Chiusa parentesi.
Detto questo dovresti fare 4 cicli FOR precisi piu' del bisturi di un bravo chirurgo, e per farlo ti serve conoscere prima di scrivere il codice dei 4 cicli...i loro valori dei rispettivi range per lo scorrimento, oppure (
cosa piu' intelligente)
i ranges che decidi di applicare ai 4 cicli for!
Supponiamo un sort discendente
for sortFREQ=MassimoFreq to MinimoFreq step -1
--for sortRITMAX=MassimoRITMAX to MinimoRITMAX step -1
---for sortINCMAX=MassimoINCMax to MinimoINCMAX step -1
----for sortRIT=MAssimoRIT to MinimoRIT step -1
-------if freq=SortFREQ then
----------if ritmax=SortRITMA then
-------------if incmax=SortINCMAX then
----------------if rit=sortRIT then
-------------------
visualizza i dati che soddisfano le quattro IF del momento
----------------end if
-------------end if
----------end if
-------end if
----next
---next
--next
next
Nota bene, ho usato il cosiddetto "corto circuito" con le IF annidate, per evitare test inutili risparmiando tempo prezioso rispetto ai cicli FOR. Avrei potuto usare una sola if con 3 funzioni AND... (la funzione AND per quanto veloce, generalmente, rallenta le operazioni), oltre al fatto che avrei dovuto valutare tante if per quante ne determinano le variabili dei cicli for. Nessuna di meno. L'ordine di esecuzione dei cicli for rispetta l'ordine stabilito:1=freq, 2=ritmax, 3=incmax, 4=rit
Spero ti sia utile... nel cercare cosa vuoi trovare! Perche' trovare le cose che cerchi non dipende dal sistema con cui implementi una ricerca. Dipende solo dal livello della tua conoscenza del problema che vuoi risolvere...