Qualcuno saprebbe dirmi se con Spaziometria vers. 1.6.34 e superiori funziona correttamente questo script test-PuntiSu Array ?
Codice:
Option Explicit
Sub Main
ReDim aEstratti(0)
Call GetArrayNumeriRuota(1007,BA_,aEstratti)
ReDim aNumInGioco(2)
aNumInGioco(1) = 78
aNumInGioco(2) = 70
Call Scrivi("I numeri " & StringaNumeri(aNumInGioco))
Call Scrivi("Fanno " & PuntiSuArray(aEstratti,aNumInGioco) & " punti su")
Call Scrivi(StringaNumeri(aEstratti))
End Sub
a me da errore nel risultato. maggiorando di 1 il punteggio che effettivo
Grazie
Ciao Claudio s'era scritto (cioè avevo scritto) che probabilmente è più facile scrivere che leggere.
Perché di ciò che si scrive, si sa cosa si scrive (o perlomeno si suppone che lo si sappia),
mentre, ciò che si legge, lo si deve capire e sapere.
Quanto si scrive, al più non funziona.
Quello che si legge invece, se non lo si capisce e non lo si ricorda ... non lo si sa.
Chiusa la doverosa parentesi introduttiva.
Quando viene caricato un array ... specie quando si vogliono contare dei ritardi,
e si vuole contare partendo da zero, (Avevo sconsigliato di farlo a tutti i lottologi)
è possibile che, questo array, contenga degli zero.
Dunque quando lo si confronta con un altro array, il confronto di ogni zero, con ogni zero è 1.
1 Punto per dirla come piace di più.
Cioè: Zero = Zero = Uno
Se non si usa lo zero ... invece non lo si può usare o non lo si dovrebbe usare.
Perchè altrimenti poi "lo si salta"
Questo è abbastanza difficile da capire.
Esattamente come lo sono gli insiemi vuoti.
Diverso è dire che un terno non è mai caduto da dire che non ha ritardo dalla sua caduta.
Pertanto non è Spaziometria che non funziona ... ma ...
alcuni pensieri puramente-lottologici ci vanno a sbattere.
Perché matematicamente e nella logica dell'informatica è giusto che sia così.
Dunque a dimostrazione di questo ho inserito uno "pseudo-codice" in grado di emulare o simulare
l'istruzione, da te usata, disassemblando step by step cosa si dovrebbe fare e come si conta.
per avere il risultato corretto.
Codice:
Option Explicit
Sub Main
Dim x,y,Pt_Att,PT_Tot
ReDim aEstratti(0)
Call GetArrayNumeriRuota(1007,BA_,aEstratti)
ReDim aNumInGioco(2)
aNumInGioco(1) = 78
aNumInGioco(2) = 70
Call Scrivi("I numeri " & StringaNumeri(aNumInGioco))
Call Scrivi("Fanno " & PuntiSuArray(aEstratti,aNumInGioco) & " punti su")
Call Scrivi(StringaNumeri(aEstratti))
'----
Scrivi
Pt_Att = 0
PT_Tot = 0
For x = 0 To UBound(aEstratti)
For y = 0 To UBound(aNumInGioco)
If aEstratti(x) = aNumInGioco(y) Then Pt_Att = Pt_Att + 1
PT_Tot = PT_Tot + Pt_Att
Scrivi FormatSpace(CInt(aEstratti(x)),2) & " = " & FormatSpace(CInt(aNumInGioco(y)),2) & " PT_Att = " & Pt_Att & " Pt_Tot = " & PT_Tot
Pt_Att = 0
Next
Next
'----
End Sub
Ciò premesso e per non ripetere inutilmente,
nelle versioni più nuove di Spaziometria "Punti SuArray" accetta "2 parametri" come indicato da Mike,
Anch'io non ricordo chi, come, perché, quando ... ed in quale versione.
Ma ... una delle cose a cui si dovrebbe tendere è evitare sprechi di memoria, diminuire i tempi di elaborazione ecc ... ecc ...
Dunque sarebbe corretto utilizzare lo zero e l'indice zero, come vi è possibilità di farlo, scrivendo codice di livello più basso.
Penso sia la ragione per la quale Luigi ha deciso che cosi è.