Novità

SpazioScript (per LuigiB o per chi può aiutarmi)

Giggio

Super Member >GOLD<
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

Super 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 >GOLD<
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

Super 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 >GOLD<
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

Super 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 >GOLD<
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

Super 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 >GOLD<
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

Super 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 >GOLD<
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
    Saturday 17 October 2020
    Bari
    47
    24
    50
    84
    17
    Cagliari
    19
    11
    50
    89
    68
    Firenze
    44
    07
    43
    23
    11
    Genova
    27
    24
    60
    34
    05
    Milano
    27
    31
    10
    14
    47
    Napoli
    21
    40
    24
    68
    85
    Palermo
    67
    04
    11
    63
    49
    Roma
    28
    32
    49
    81
    72
    Torino
    50
    28
    40
    22
    18
    Venezia
    21
    49
    29
    47
    12
    Nazionale
    90
    32
    20
    10
    63
    Estrazione Simbolotto
    33
    13
    15
    14
    05
Alto