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
    giovedì 28 marzo 2024
    Bari
    49
    73
    67
    86
    19
    Cagliari
    64
    36
    37
    02
    04
    Firenze
    66
    27
    44
    90
    17
    Genova
    09
    44
    78
    85
    19
    Milano
    70
    14
    47
    38
    27
    Napoli
    80
    29
    28
    45
    39
    Palermo
    54
    59
    78
    47
    62
    Roma
    17
    22
    49
    52
    88
    Torino
    71
    35
    75
    74
    60
    Venezia
    40
    84
    02
    63
    29
    Nazionale
    08
    13
    44
    69
    85
    Estrazione Simbolotto
    Firenze
    06
    35
    16
    18
    05

Ultimi Messaggi

Alto