Option Explicit
Sub Main
Dim aGruppi
Dim nQGruppi
Dim aNumUsati
Dim nQNumeri
Dim sSistema
Dim nNumPerGruppo
Dim nClasseSvil
Dim k , kk , i
Dim aComb
Dim sColonna
nQNumeri = ScegliNumeri ( aNumUsati )
sSistema = ScegliSistemaCassetti ( nQNumeri)
If sSistema <> "" Then
Call Scrivi ("Numeri selezionati : " & nQNumeri )
Call Scrivi ("Numeri : " & StringaNumeri ( aNumUsati ) )
Call Scrivi ("Sistema : " & sSistema )
Call Scrivi ()
Call Scrivi (" - SVILUPPO - " )
Call Scrivi ()
ReDim av(0)
Call SplitByChar( sSistema , " " , av )
nNumPerGruppo = CInt(av(0))
nClasseSvil = CInt(av(5))
nQGruppi = nQNumeri / nNumPerGruppo
ReDim aGruppi (nQGruppi ,nNumPerGruppo )
ReDim aIdGruppi (nQGruppi)
i =0
For k = 1 To nQGruppi
For kk = 1 To nNumPerGruppo
i = i +1
aGruppi (k ,kk) = aNumUsati(i)
Next
aIdGruppi (k) = k
Next
aComb = SviluppoIntegrale ( aIdGruppi ,nClasseSvil )
For k = 1 To UBound(aComb)
sColonna = ""
For kk = 1 To nClasseSvil
sColonna = sColonna & GetCombFromGruppo (aGruppi , aComb (k,kk) ,nNumPerGruppo )
Next
Call Scrivi ( FormattaStringa ( k ,"0000" ) & ") " & RimuoviLastChr (sColonna , "." ))
Next
Else
Scrivi "Nessun sistema selezionato"
End If
End Sub
Function GetCombFromGruppo (aGruppi , idGruppo , qNumPerGruppo )
Dim s , k
s = ""
For k = 1 To qNumPerGruppo
s = s & Format2(aGruppi (idGruppo , k)) & "."
Next
GetCombFromGruppo = s
End Function
Function ScegliSistemaCassetti ( nQNumeri )
Dim nNumPerGruppo , nGruppi , nDisp , nClasse , sVoce , id
Dim aVoci
ReDim aVoci (0)
For nNumPerGruppo = 2 To 5
If nQNumeri Mod nNumPerGruppo =0 Then
For nGruppi = 2 To 10
nClasse = nGruppi * nNumPerGruppo
If nClasse <= 10 Then
nDisp = nDisp +1
sVoce = nNumPerGruppo & " num per gruppo, gruppi "
sVoce = sVoce & nGruppi & " (classe " & nClasse
sVoce = sVoce & ") comb " & Combinazioni ( (nQNumeri/nNumPerGruppo) , nGruppi )
ReDim Preserve aVoci (nDisp )
aVoci ( nDisp ) = sVoce
End If
Next
End If
Next
If nDisp >0 Then
id = ScegliOpzioneMenu( aVoci )
If id >=0 Then
ScegliSistemaCassetti = aVoci (id)
Else
ScegliSistemaCassetti = ""
End If
Else
MsgBox "La quantita di numeri selezionata non è adatta per la creazione del sistema a cassetti , la quantita dei numeri selezionati deve essere divisibile per almeno uno dei numeri 2,3,4,5"
End If
End Function