Novità

SpazioScript (per LuigiB o per chi può aiutarmi)

Codice:
Function GetStringaNumDaSvil
      Dim s,k
      s = ""
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            s = aBNumDaSvil(k) & "."
            s = s & aBNumDaSvil(k) & "."
         End If
      Next
      GetStringaNumDaSvil = RimuoviLastChr(s,".")
   End Function
 
quasi , prova apensare come se il computer fossi tu e segui mentlmente il ciclo .. io dico che cosi la variabile S alla fine del ciclo conterra due volte di seguito l'ultimo valore letto perdendo tutti gli altri.
 
Quindi prende il valore e lo registra... mantiene il valore e ne aggiunge uno... dovrebbe essere cosi...

Codice:
   Function GetStringaNumDaSvil
      Dim s,k
      s = ""
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            s = aBNumDaSvil(k) & "."
            For s = 1 To UBound aBNumDaSvil(k)
            s = s & aBNumDaSvil(k) & "."
            Next
         End If
      Next
      GetStringaNumDaSvil = RimuoviLastChr(s,".")
   End Function
 
No hai ragione è senza senso .. forse sbaglio la posizione della concatenazione

Codice:
   Function GetStringaNumDaSvil
      Dim s,k
      s = ""
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            s = aBNumDaSvil(k) & "."           
            Next
            s = s & aBNumDaSvil(k) & "."
         End If
      Next
      GetStringaNumDaSvil = RimuoviLastChr(s,".")
   End Function
 
Codice:
   Function GetStringaNumDaSvil
      Dim s,k
      s = ""
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            s = s & aBNumDaSvil(k) & "."
      End If
   Next
   GetStringaNumDaSvil = RimuoviLastChr(s,".")
   End Function
 
perfetto ..cosi è finalmente ok.
continuiamo ad aggiungere funzioni utili
ora ci vuole un 'altra funzione pubblica della classe che ritorni la quantita dei numeri da sviluppare...
Attento che questa è difficilissima :-)


Codice:
   Function GetQuantitaNumeriDaSvil
     
   End Function
 
Codice:
   Function GetQuantitaNumeriDaSvil
      Dim k,Q
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            Q = Q + 1
            End If
            Next
            GetQuantitaNumeriDaSvil = Q
   End Function
 
andrebbe bene .. ma dovevi usare il valore che avevamo gia calcolato e registrato globalmente nella classe
quindi modifica
 
Codice:
   Function GetQuantitaNumeriDaSvil
      Dim k,Q
      For k = 1 To UBound(nQNumeri)
         If nQNumeri(k) = True Then
            Q = Q + 1
            End If
            Next
            GetQuantitaNumeriDaSvil = Q
   End Function
 
Codice:
Option Explicit
Class clsSviluppo
   Private aBNumDaSvil
   Private nQNumeri
   Private nCombInt
   Private nClasse
   Function InitSviluppo(aNumeri,Classe)
      nQNumeri = AlimentArrayNumDaSvil(aNumeri)
      nCombInt = Combinazioni(aNumeri,Classe)
      nClasse = Classe
      InitSviluppo = nCombInt
   End Function
   Private Function AlimentArrayNumDaSvil(aNumeri)
      Dim k,Q
      aBNumDaSvil = ArrayNumeriToBool(aNumeri)
      Q = 0
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            Q = Q + 1
         End If
      Next
      AlimentArrayNumDaSvil = Q
   End Function
   Function GetStringaNumDaSvil
      Dim s,k
      s = ""
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            s = s & aBNumDaSvil(k) & "."
         Next
      End If
      GetStringaNumDaSvil = RimuoviLastChr(s,".")
   End Function
   Function GetQuantitaNumeriDaSvil
      GetQuantitaNumeriDaSvil = nQNumeri
   End Function
End Class
 
ok , c'è ancora un errore ... verifica bene di aver chiuso i cicli for e i costrutti decisionali.... i next e gli end if devono andare al posto giusto ... riposta tutta la classe corretta
 
Codice:
Option Explicit
Class clsSviluppo
   Private aBNumDaSvil
   Private nQNumeri
   Private nCombInt
   Private nClasse
   Function InitSviluppo(aNumeri,Classe)
      nQNumeri = AlimentArrayNumDaSvil(aNumeri)
      nCombInt = Combinazioni(aNumeri,Classe)
      nClasse = Classe
      InitSviluppo = nCombInt
   End Function
   Private Function AlimentArrayNumDaSvil(aNumeri)
      Dim k,Q
      aBNumDaSvil = ArrayNumeriToBool(aNumeri)
      Q = 0
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            Q = Q + 1
         End If
      Next
      AlimentArrayNumDaSvil = Q
   End Function
   Function GetStringaNumDaSvil
      Dim s,k
      s = ""
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            s = s & aBNumDaSvil(k) & "."
         End If
      Next
      GetStringaNumDaSvil = RimuoviLastChr(s,".")
   End Function
   Function GetQuantitaNumeriDaSvil
      GetQuantitaNumeriDaSvil = nQNumeri
   End Function
End Class
 
bene , altro errore nell'uso della funzione combinazioni , di cui non mi ero accorto ...
sei sicuro di aver pssato i parametri giusti in questa riga ?
nCombInt = Combinazioni(aNumeri,Classe)

Correggi e ripota tutta la classse
 
Codice:
Option Explicit
Class clsSviluppo
   Private aBNumDaSvil
   Private nQNumeri
   Private nCombInt
   Private nClasse
   Function InitSviluppo(aNumeri,Classe)
      nQNumeri = AlimentArrayNumDaSvil(aNumeri)
      nCombInt = Combinazioni(nQNumeri,Classe)
      nClasse = Classe
      InitSviluppo = nCombInt
   End Function
   Private Function AlimentArrayNumDaSvil(aNumeri)
      Dim k,Q
      aBNumDaSvil = ArrayNumeriToBool(aNumeri)
      Q = 0
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            Q = Q + 1
         End If
      Next
      AlimentArrayNumDaSvil = Q
   End Function
   Function GetStringaNumDaSvil
      Dim s,k
      s = ""
      For k = 1 To UBound(aBNumDaSvil)
         If aBNumDaSvil(k) = True Then
            s = s & aBNumDaSvil(k) & "."
         End If
      Next
      GetStringaNumDaSvil = RimuoviLastChr(s,".")
   End Function
   Function GetQuantitaNumeriDaSvil
      GetQuantitaNumeriDaSvil = nQNumeri
   End Function
End Class
 
benissimo , ci sarebbe ancora un altro errore ma non è bloccante e ce ne accorgeremo tra poco.
Tralasciamo per il momento la classe di cui per ora abbiamo scritto il 30% di quello che serve e dedichiamoci
a scrivere del codice nella sub main in modo da trestare la classe , ci sarà utile per il proseguimento.

quindi nella sub main dovrai
- istanziare la classe
- far scegliere dinmicamente i numeri
- far scegliere dinamicamente la classe
- inizializare lo sviluppo
- scrivere in output e ottenere qualcosa come questa ( in funzione dei numeri e della classe scelta dall'utente io ho scelto 10 numeri classe ambo)

usa la base della sub main postata sotto



1600335339573.png

Codice:
Sub Main
  
      Dim cSvil
      Dim aNumDaSvil,nClasse,nCombInt,nQNumeri
     
       

      If nCombInt > 0 Then
      
      
      Else
         MsgBox "Impossibile sviluppare",vbCritical
      End If
End Sub
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 13 settembre 2025
    Bari
    85
    57
    40
    76
    14
    Cagliari
    90
    15
    68
    63
    76
    Firenze
    81
    74
    71
    25
    06
    Genova
    21
    47
    44
    02
    06
    Milano
    83
    39
    31
    84
    55
    Napoli
    74
    41
    24
    47
    38
    Palermo
    54
    25
    61
    22
    68
    Roma
    60
    72
    38
    55
    03
    Torino
    10
    45
    56
    54
    63
    Venezia
    14
    38
    66
    36
    28
    Nazionale
    85
    48
    38
    22
    81
    Estrazione Simbolotto
    Palermo
    08
    42
    27
    30
    20

Ultimi Messaggi

Indietro
Alto