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
    sabato 12 luglio 2025
    Bari
    67
    30
    66
    89
    47
    Cagliari
    06
    66
    33
    32
    37
    Firenze
    43
    25
    78
    21
    23
    Genova
    34
    20
    85
    52
    33
    Milano
    36
    19
    02
    70
    77
    Napoli
    21
    72
    74
    15
    53
    Palermo
    32
    08
    37
    02
    86
    Roma
    27
    32
    12
    67
    06
    Torino
    45
    47
    08
    13
    32
    Venezia
    29
    34
    19
    51
    53
    Nazionale
    34
    18
    56
    47
    85
    Estrazione Simbolotto
    Nazionale
    02
    26
    01
    08
    17
Indietro
Alto