Novità

SpazioScript (per LuigiB o per chi può aiutarmi)

Edoardo_95

Advanced Member
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
 

Giggio

Super Member >PLATINUM<
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.
 

Edoardo_95

Advanced Member
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
 

Edoardo_95

Advanced Member
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
 

Edoardo_95

Advanced Member
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
 

Giggio

Super Member >PLATINUM<
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
 

Edoardo_95

Advanced Member
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
 

Giggio

Super Member >PLATINUM<
andrebbe bene .. ma dovevi usare il valore che avevamo gia calcolato e registrato globalmente nella classe
quindi modifica
 

Edoardo_95

Advanced Member
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
 

Giggio

Super Member >PLATINUM<
benissimo , ora inserisci queste funzioni nella classe e riposta tutta la classe , mi raccomando all'indentazione.
 

Edoardo_95

Advanced Member
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
 

Giggio

Super Member >PLATINUM<
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
 

Edoardo_95

Advanced Member
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
 

Giggio

Super Member >PLATINUM<
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
 

Edoardo_95

Advanced Member
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
 

Giggio

Super Member >PLATINUM<
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 20 aprile 2024
    Bari
    08
    62
    22
    82
    12
    Cagliari
    86
    44
    19
    31
    72
    Firenze
    38
    70
    31
    33
    26
    Genova
    84
    71
    65
    55
    75
    Milano
    61
    32
    48
    15
    24
    Napoli
    24
    55
    49
    12
    37
    Palermo
    87
    14
    52
    18
    43
    Roma
    01
    88
    16
    50
    63
    Torino
    15
    70
    52
    62
    55
    Venezia
    15
    83
    49
    18
    44
    Nazionale
    10
    22
    68
    78
    06
    Estrazione Simbolotto
    Genova
    27
    31
    15
    32
    04
Alto