Novità

SpazioScript (per LuigiB o per chi può aiutarmi)

quindi il meccanismo con il quale preleviamo i numeri da aRighe per scriverli in aColonna ti è chiaro.

Ok il motivo per cui non sviluppa altre colonne è perche non abbiamo gestito tutti i registri ma solo l'ultimo.


a questo punto dobbiamo fare le opportune modifiche per far si che tutti i registr ivengano gestiti.

abbiamo visto che dobbiamo provare ad incrementare l'ultimo registro , se questo h raggiunto il limite dobbiamo salire al registro precedente.

quindi in GetColonne inserisci una variabile che si chiamerà nPuntatore.

nPuntatore subito deve essere valorizzato con il valore della classe , fallo e posta solo la routine getColonne
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nClasse) + 1
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
ok abbiamo creato la variabie nPuntatore e l'abbiamo valorizzata pari alla classe perche la useremo come indice dell'array aPuntatore.
Questa variabile nPuntatore verra decrementata quando il valore aPuntatore((nPuntatore)+1 diventa > nQNumPerRiga e serve appunto per salire al registro precedente.


tu gi a fai

ValIncr = aPuntatore(nClasse) + 1

nclasse va sostituito con nPuntatore , subito dopo devi inserire un ciclo Do While che decrementa nPuntatore finche ValIncr è maggiore di nQNumPerRiga , naturalmente dentro il ciclo devi ricalcolare ValIncr.

vai procedi
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nPuntatore) = ValIncr
         For k = 1 To nPuntatore
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
         Do While ValIncr > nQNumPerRiga
            ValIncr = aPuntatore(nPuntatore) - 1
            aPuntatore(nPuntatore) = ValIncr
            Loop
         End If
   End Function
 
male , io ti ho chiesto di fare un ciclo do subito dopo
ValIncr = aPuntatore(nPuntatore) + 1

chi ti ha detto di metterlo dentro il caso False ? levalo e risposta ... anche perche è sbagliato ma te lo diro dopo
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga
         ValIncr = aPuntatore(nPuntatore) - 1
         aPuntatore(nPuntatore) = ValIncr
         If ValIncr <= nQNumPerRiga Then
            GetColonna = True
            aPuntatore(nPuntatore) = ValIncr
            For k = 1 To nPuntatore
               aColonna(k) = aRighe(k,aPuntatore(k))
            Next
         ElseIf ValIncr > nQNumPerRiga Then
            GetColonna = False
         End If
      Loop
   End Function
 
mannaggia ma me lo fai apposta ? riparti da qui

ripeto
io ti ho chiesto di fare un ciclo do subito dopo
ValIncr = aPuntatore(nPuntatore) + 1


il resto lascialo cosi com 'è l a chiusura del do va fatta prima dell'if .. ... non devi toccare niente li



Codice:
Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nClasse) + 1







      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
Ultima modifica:
Codice:
Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga

      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
    
   End Function
 
Codice:
Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga

      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
    
   End Function
 
nPuntatore serve per salire al registro precedente , parte da nClasse , se il valore incrementato supera il limite bisogna salire (in verità scendere ma essendo la colonna in verticale partendo dall'ultimo saliamo anche se l'indice scende) di registro e nPuntatore si decrementa senno cosa lo abbiamo valorizzato a fare al valore di nClasse ?

dentro al do devi
- decrementare nPuntatore
- ricalcolare ValIncr

procedi ...
 
Ultima modifica:
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga
         nPuntatore = nPuntatore - 1
         ValIncr = nPuntatore
      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
Codice:
   Function GetColonna(aColonna)
      Dim k,ValIncr
      Dim nPuntatore
      nPuntatore = nClasse
      ValIncr = aPuntatore(nPuntatore) + 1
      Do While ValIncr > nQNumPerRiga
         nPuntatore = nPuntatore - 1
         ValIncr = aPuntatore(nPuntatore) + 1
      Loop
      If ValIncr <= nQNumPerRiga Then
         GetColonna = True
         aPuntatore(nClasse) = ValIncr
         For k = 1 To nClasse
            aColonna(k) = aRighe(k,aPuntatore(k))
         Next
      ElseIf ValIncr > nQNumPerRiga Then
         GetColonna = False
      End If
   End Function
 
ok ora rispondi ad una domanda , a forza di decrementare nPuntatore che cosa potrebbe succedere ? Considera che il nostro array dei registri va da 1 alla classe usata
 
bravo , ogni tanto mi fai risalire il morale ...

quindi prima di
ValIncr = aPuntatore(nPuntatore) + 1
dato che nPuntatore potrebbe valere 0 dobbiamo uscire dal ciclo do nel caso .. come si fa ?
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 24 aprile 2026
    Bari
    15
    88
    36
    90
    37
    Cagliari
    49
    22
    46
    28
    86
    Firenze
    07
    85
    14
    84
    55
    Genova
    89
    69
    88
    41
    81
    Milano
    71
    43
    45
    25
    03
    Napoli
    83
    72
    60
    16
    21
    Palermo
    75
    78
    68
    80
    76
    Roma
    13
    25
    67
    83
    78
    Torino
    30
    39
    63
    72
    81
    Venezia
    13
    55
    71
    89
    05
    Nazionale
    42
    70
    22
    48
    41
    Estrazione Simbolotto
    Genova
    38
    45
    33
    15
    22
Indietro
Alto