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 27 giugno 2026
    Bari
    46
    42
    63
    90
    08
    Cagliari
    86
    69
    76
    89
    55
    Firenze
    77
    54
    87
    57
    88
    Genova
    70
    65
    44
    76
    58
    Milano
    52
    41
    53
    74
    16
    Napoli
    32
    56
    09
    73
    63
    Palermo
    17
    82
    87
    84
    67
    Roma
    50
    09
    48
    79
    12
    Torino
    81
    43
    75
    21
    38
    Venezia
    15
    72
    65
    74
    60
    Nazionale
    88
    21
    04
    26
    55
    Estrazione Simbolotto
    Napoli
    03
    30
    18
    38
    44

Ultimi Messaggi

Indietro
Alto