Novità

SpazioScript (per LuigiB o per chi può aiutarmi)

Giggio

Super Member >PLATINUM<
come andiamo ? Vediamo se questa immagine ti suggerisce qualcosa

1600415975283.png

si tratta della creazione della griglia prendendo l'esempio di 5 numeri da sviluppare per terno.

come vedi è come se avessimo una specie di contenitore gialllo che contiene 3 numeri alla volta e lo facciamo scorrere di una casellina in funzione della posizione

il procedimento è identico con qualsiasi altra classe e quantita di numeri.

questo si implementa con 2 cicli for nidificati.
 

Edoardo_95

Advanced Member
Va malissimo ahahaha ci sto ragionando da questa mattina alle 7 ... il problema non è il meccanismo, quello per fortuna l'ho capito perfettamente. E' la stesura del codice applicando il meccanismo. Ho capito che vi è la necessità dei due cicli for ma non riesco a capire come nidificarli. Appena ci riesco postero il tutto :D
 

Giggio

Super Member >PLATINUM<
direi di no ... il primo ciclo for è la classe ...
tra l'altro vorresti usare un array come variabile di controllo di un ciclo ?

con un primo ciclo for scorri le righe, per ogni riga alimenti le colonne cioe le caselline di quella riga , prendendo i numeri dall'array dei numeri a partire dal valore della variabile di controllo del ciclo esterno per una quantita pari al numero di numeri per riga.
 

Edoardo_95

Advanced Member
come non proprio? ?

" a partire dal valore della variabile di controllo del ciclo esterno per una quantità pari al numero di numeri per riga. "

quindi

variabile di controllo del ciclo esterno = k
Quantità numero di numeri per riga = nQNumPerRiga

va dal valore di k a nQNumPerRiga

for ... = k to nQNumPerRiga

Sbagliato?
 

Giggio

Super Member >PLATINUM<
il ciclo esterno è giusto , il ciclo interno ha sbagliaot il limite superiore ... che succede con k = 3 nel ciclo interno ? io dico che si blocca visto che nQNumPerRiga è un valore fisso che nel nostro esempio vale proprio 3 ( esempio dei 5 numeri per terno) invece deve poter arrivare fino al limite superiore dell'array numeri ...

infondo si tratta di prendere delle porzioni da un primo array , e shiftare di una casellina ogni volta che si cambia riga.
la porzione devesempre contenere 3 numeri (nel nostro esempio) e quindi una vota prende i numeri da 1 a 3 dell'arrray , poi da , 2 a 4 , poi da 3 a 5 ... come vedi il limite superiore cambia sempre percio non puo essere fisso come hai fatto tu
 
Ultima modifica:

Edoardo_95

Advanced Member
Allora sbaglio qualcos'altro al 100% ed ora ne ho la prova ... perché tra le migliaia di prove ho provato anche

Codice:
    For k = 1 To nClasse      
      For j  =  k To UBound(aNumeri)
      Next
      Next

diverse volte ....ma in output non mi restituisce nulla ...
 

Giggio

Super Member >PLATINUM<
e ovvio che non vedi l'outoput .. i cicli scoorono ma se in mezzo non metti istruzioni per valorizzare la matrice cosa ti aspetti di vedere ?
 

Edoardo_95

Advanced Member
Qui non l'ho postato ma in realtà ho messo le istruzioni per valorizzarla ma ho capito che c'è qualcosa che non va

Codice:
   Private Sub AlimentaArrayRighe
      Dim aNumeri,k,j,s,z' contiene i numeri del pronostico convertiti dall'array boolean
      Call ArrayBNumToArrayNum(aBNumDaSvil,aNumeri) ' popolo aNumeri
      nQNumPerRiga =((nQNumeri - nClasse) + 1) 'che formula uso  per calcolare la quantita di numeri per singola riga della griglia
      ReDim aRighe(nClasse,nQNumPerRiga) ' dimensiono la griglia in modo opportuno
      For k = 1 To nClasse 'scorro le righe
         s = "" 'per ogni riga alimento le colonne
         For j = k To UBound(aNumeri) 'prendo i numeri (aNumeri) a partire dalla variabile di controllo del ciclo esterno (k)
         s = s & j
      Next
      Next
   End Sub

Facendo in questo modo j "salterà" la prima casella in funzione della classe... ma se io inserisco come valore per la stringa "j" ... inserirà sempre numeri in funzione della classe ma sempre fino a 5 (nel nostro esempio) e non va bene perché deve inserire numeri fino ad una quantità pari a nQNumPerRiga.

Inoltre mi sono reso conto che attraverso questa procedura genero una stringa ... ma non valorizzo la matrice. Sto pensando a come risolvere il problema :D
 

Giggio

Super Member >PLATINUM<
esatto non devi creare una stringa ma valorizzare la matrice. , inoltr e il secondo ciclo non deve avere un limite fisso sia esso anche il pi alto , deve essere un valore che dinamicamente si modific per prendere N elelementi a partire da uno.


se io voglio valorizzare la cella riga 1 , colonna 1 con il primo numero dell'array numeri
scrivo
aRighe(1,1)=aNumeri (1)
 

Edoardo_95

Advanced Member
Quindi secondo questo filo logico avendo una matrice con valori dinamici...la valorizzazione sarà uguale a:

Codice:
aRighe(k,j) = aNumeri(j)
 

Giggio

Super Member >PLATINUM<
j non potra mai andare bene per identificare contemporaneamente un elemento della matrice e uno dell'array dei numeri. abbiamo visto che nella matrice ci sono 3 colonne ma i numeri nell'rray sono 5 ...

comunque la strada è questa con delle variabili punti gli element della matrice e dell'array e cosi prelevi il valore e lo scrivi...

facciamo un esempio come dovrebeb esser con K = 1

aRighe(1,1) = aNumeri(1)
aRighe(1,2) = aNumeri(2)
aRighe(1,3) = aNumeri(3)

facciamo un esempio come dovrebeb esser con K = 2

aRighe(2,1) = aNumeri(2)
aRighe(2,2) = aNumeri(3)
aRighe(2,3) = aNumeri(4)

facciamo un esempio come dovrebeb esser con K = 3

aRighe(3,1) = aNumeri(3)
aRighe(3,2) = aNumeri(4)
aRighe(3,3) = aNumeri(5)
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 26 marzo 2024
    Bari
    30
    51
    17
    01
    53
    Cagliari
    13
    70
    25
    68
    47
    Firenze
    28
    30
    54
    70
    88
    Genova
    67
    87
    22
    03
    62
    Milano
    22
    34
    13
    47
    24
    Napoli
    20
    72
    59
    01
    52
    Palermo
    05
    72
    65
    52
    32
    Roma
    28
    43
    75
    54
    87
    Torino
    16
    08
    17
    24
    38
    Venezia
    67
    28
    55
    60
    29
    Nazionale
    15
    69
    22
    63
    39
    Estrazione Simbolotto
    Firenze
    44
    09
    31
    22
    16
Alto