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 05 aprile 2025
    Bari
    10
    58
    03
    61
    14
    Cagliari
    04
    67
    36
    85
    87
    Firenze
    70
    45
    80
    62
    06
    Genova
    05
    66
    32
    59
    89
    Milano
    20
    56
    02
    87
    47
    Napoli
    60
    63
    75
    72
    06
    Palermo
    14
    80
    30
    76
    70
    Roma
    73
    42
    36
    79
    08
    Torino
    26
    74
    83
    78
    31
    Venezia
    06
    60
    85
    76
    40
    Nazionale
    44
    11
    71
    06
    37
    Estrazione Simbolotto
    Genova
    26
    14
    36
    31
    44

Ultimi Messaggi

Indietro
Alto