lotto_tom75
Advanced Premium Member
Grazie, Lotto_tom75, io sono già contenta del tuo listato. Non pensavo nemmeno che fosse possibile,
dato che lo avevo già chiesto. Sei stato bravissimo. Ho voluto solo spiegare a Oscar il perché non ricerco un programma che esegua solo sistemi ridotti.
Gentilmente, mi hai proposto di richiamare i numeri da un vettore. Non so se ci riesco, se puoi farlo, mi faresti un' ulteriore cortesia, altrimenti provo a farlo io.
Grazie
Non so se è questo che intendi ma in questa versione sottostante i numeri sono presi dal vettore anzichè dalla tabella che è disattivata ma sempre presente nel caso volessi ripassare a quella. Nell'esempio nel vettore ci sono i primi 20 numeri ma tu puoi ovviamente mettere quelli che preferisci ricordandoti solo di lasciare il primo posto del vettore al valore 0. Come ti ho scritto anche nel codice, come commento in alto, se lasci grado di presenza 0 in pratica chiedi allo script di elaborarti tutte le formazioni per quella data classe scelta in modo integrale senza riduzione alcuna.
Codice:
Sub Main
'nota: se lasci come grado di presenza 0 genererai tutte le formazioni integrali della classe impostata
' es. con i 20 numeri del vettore di esempio in classe 2 genererai tutte le 190 coppie possibili... ecc...
Call sviluppaformazionidellaGvoluta
End Sub
Function sviluppaformazionidellaGvoluta
Dim k
Dim Classe,Sorte
Dim acol
'ReDim anum(90)
Dim i
Dim nSorte,Fine,QuantitaNumeriScelti,Inizio
Dim coltot
Dim contatore
contatore = 1
'ReDim anum(0)
'QuantitaNumeriScelti = ScegliNumeri(anum)
Dim anum
anum = Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
Dim gvolutadipartenza
Dim gvolutadiarrivo
Dim Classedipartenza
Dim Classediarrivo
Classedipartenza = InputBox("Classe di partenza; la + piccola","Classe di partenza; la + piccola",2)
Classediarrivo = InputBox("Classe di arrivo; la + grande; deve essere necessariamente diversa dalla + piccola","Classe di arrivo; la + grande",Classedipartenza + 1)
gvolutadipartenza = InputBox("G voluta di partenza; la + piccola; scegliere 0 x sviluppo integrale","G di partenza; la + piccola; 0 x sviluppo integrale",0)'Classedipartenza)
gvolutadiarrivo = InputBox("G voluta di arrivo; la + grande; scegliere 0 x sviluppo integrale","G di arrivo; la + grande; 0 x sviluppo integrale",0)'Classediarrivo)
If Classedipartenza > Classediarrivo Or gvolutadipartenza > gvolutadiarrivo Then
Call Messaggio("Fai attenzione ad Inserire i Valori nel Modo Corretto Indicato")
Classedipartenza = InputBox("Classe di partenza; la + piccola","Classe di partenza; la + piccola",2)
Classediarrivo = InputBox("Classe di arrivo; la + grande; deve essere necessariamente diversa dalla + piccola","Classe di arrivo; la + grande",Classedipartenza + 1)
gvolutadipartenza = InputBox("G voluta di partenza; la + piccola; scegliere 0 x sviluppo integrale","G di partenza; la + piccola; 0 x sviluppo integrale",0)'Classedipartenza)
gvolutadiarrivo = InputBox("G voluta di arrivo; la + grande; scegliere 0 x sviluppo integrale","G di arrivo; la + grande; 0 x sviluppo integrale",0)'Classediarrivo)
End If
Dim sfile
Dim reportlunghettadoc
ReDim raccoltanumeri(0)
sfile = ".\matrice-numerica-desiderata.txt"
Call CloseFileHandle(sfile) ' chiudo l'handle al file
Call EliminaFile(sfile) ' cancella eventualmente il file se gia esiste
sfile = ".\matrice-numerica-desiderata.txt"
For Classe = Classedipartenza To Classediarrivo
Sorte = SelEsito(gvolutadipartenza,gvolutadiarrivo)
coltot = InitSviluppoIntegrale(anum,Classe) ' bisogna provare a sostituire questa riga...
If coltot > 0 Then
Do While GetCombSviluppoRid(acol,Sorte) = True
i = i + 1
contatore = contatore + 1
Call AvanzamentoElab(1,coltot,i)
Call Messaggio("Colonna " & i)
reportlunghettadoc = StringaNumeri(acol,,True)
Call Scrivi(StringaNumeri(acol))
Call ScriviFile(sfile,reportlunghettadoc,False,True) ' scrivo anche sul file preposto
If ScriptInterrotto Then Exit Do
Loop
End If
Next
Call CloseFileHandle(sfile) ' chiudo l'handle al file
Scrivi
Scrivi "righe totali: " & contatore - 1
Scrivi
Scrivi
Scrivi "formazioni integrali: " & coltot
Scrivi
Scrivi
Scrivi "formazioni ridotte: " & i
Scrivi
Scrivi
Scrivi "da classe: " & Classedipartenza & " a classe " & Classediarrivo
Scrivi
Scrivi
Scrivi "per grado di presenza da: " & gvolutadipartenza & " a grado di presenza " & gvolutadiarrivo
Scrivi
End Function
Function SelEsito(gvolutadipartenza,gvolutadiarrivo)
Dim ret
Dim aVoci
For ret = gvolutadipartenza To gvolutadiarrivo
SelEsito = ret
Next
End Function