Novità

Help per Luigi o chi è in grado

i legend

Premium Member
ciao a Tutti


Ciao luigi
Vorrei scrivere una funzione tipo puntiSuArray ma che tenga conto anche dei numeri ripetuti.
in sintesi
ho due matrici che contengono numeretti (0,9)
Ho bisogno di conteggiare la corrispondenza esatta

sicuramente è possibile da fare ma non ci sto riuscendo, potresti darmi una mano?

ti posto il conteggio di PuntiSuArray per spiegarti perche non fa al caso mio.
scrip di esempio
Codice:
Option Explicit
' script di esempio
Sub Main
    ' con puntiSuArray non vengono conteggiato lo zero
    ' con punti su array non si conteggiano le ripetizioni
    ' serve una funzione che conteggi la corrispondenza esatta dei punti
    ' 10 sono i punti massimi con la coincidenza esatta di tutti i numeri
    ' La matrice è di dieci elementi (0-9)    -> le cifre che compongono i numeri
    ' è una funzione specifica
    Call GetArray1 '->restituisce 8 invece di 10
    Call GetArray2 ' 9 invece di 10
    Call GetArray3 ' 7 invece di 6
End Sub
Function GetArray1
    Dim aMat(10)
    Dim aConf(10)
    ' primi 2 array da confrontare
    aMat(0) = 2:aMat(1) = 6:aMat(2) = 1:aMat(3) = 3:aMat(4) = 2:aMat(5) = 0:aMat(6) = 7:aMat(7) = 8:aMat(8) = 0:aMat(9) = 2 'a
    aConf(0) = 2:aConf(1) = 6:aConf(2) = 1:aConf(3) = 3:aConf(4) = 2:aConf(5) = 0:aConf(6) = 7:aConf(7) = 8:aConf(8) = 0:aConf(9) = 2        'a
    Scrivi PuntiSuArray(aMat,aConf)
End Function
Function GetArray2
    Dim aMat(9)
    Dim aConf(9)
    aMat(0) = 2:aMat(1) = 6:aMat(2) = 1:aMat(3) = 3:aMat(4) = 2:aMat(5) = 0:aMat(6) = 7:aMat(7) = 8:aMat(8) = 1:aMat(9) = 1 'b
    aConf(0) = 6:aConf(1) = 2:aConf(2) = 3:aConf(3) = 1:aConf(4) = 0:aConf(5) = 2:aConf(6) = 8:aConf(7) = 7:aConf(8) = 1:aConf(9) = 1        'b
    Scrivi PuntiSuArray(aMat,aConf)
End Function
Function GetArray3
    Dim aMat(9)
    Dim aConf(9)
    '2.6.1.3.2.0.7.9.0.2
    '9.6.3.6.0.2.8.7.2.4
    aMat(0) = 2:aMat(1) = 6:aMat(2) = 1:aMat(3) = 3:aMat(4) = 2:aMat(5) = 0:aMat(6) = 7:aMat(7) = 9:aMat(8) = 0:aMat(9) = 2 'b
    aConf(0) = 9:aConf(1) = 6:aConf(2) = 3:aConf(3) = 6:aConf(4) = 0:aConf(5) = 2:aConf(6) = 8:aConf(7) = 7:aConf(8) = 2:aConf(9) = 4        'b
    Scrivi PuntiSuArray(aMat,aConf)
End Function

Potresti aiutarmi tempo e voglia permettendo :)
se non puoi grazie uguale

Non riesco a pensare la sequenza , .(
 
Ciao.

Con 2 for next in sequenza ed un if...

indirizzi gli elementi dei 2 array

ed in caso di caso uguaglianza incrementi i punti.

:)
 
ciao oltre l'idea di Joe potresti semplicemetne usare un terzo array dove memorizzi la quantità di presenze del tale numero., il tale numero rappresenta l'indice di questo terzo array sicche durante il ciclo for che cerca i punti sulla colonna , se il punto è stato trovato incrementi il famoso terzo array chiamiamolo aQNum () alla posizione (indice ) di quel numero che hai trovato. aQNum(numeroTrovato) = aQNum(numeroTrovato ) +1
Alla fine scorrendo gli elementi di tale array saprai quante volte sono comparsi i tali numeri , chiaro che l'array aQNume deve avere 91 elementi da 0 a 90 ..

ciao
 
Ciao Joe
Ciao Luigi
Grazie mille per i suggerimenti :)
Ho provato ma non mi riesce, :(
il fatto è che ho numeri ripetuti

lquello che la funzione dovrebbe fare e
contare le presenze dei numeri e fin qua nessun problema
e nel dare il punteggio che mi perdo.

se ho la stessa identica quantita non presenza dei numeri nei due array allora il punteggio è pieno.
es
Codice:
a1=array(1,0,2,2,3,1,4,9,5,1)
a2=array(0,1,1,3,2,4,9,1,2,5)

inquesti due array totalizzo 10 punti perche   negli array ci sono 
Array      N;P ----- N;P----- N;P-----N;P-----N;P----- N;P
a1    ->   1=3-------2=2------3=1-----4=1-----9=1------5=1
a2    ->   1=3-------2=2------3=1-----4=1-----9=1------5=1
esempio 2 

a1=array(1,0,2,2,3,1,4,9,5,1)
a2=array(0,1,0,3,2,3,8,1,2,6)

Array      N;P ----- N;P----- N;P-----------N;P-----N;P----- N;P
a1    ->   1=3-------2=2------3=1-----------4=1-----9=1------5=1
a2    ->   1=2-------2=2------3=2(+1)-----4=0-----9=0------5=0  
in a2 il 3 è ripetuto 2 volte in a1 1 volta quindi è un punto 
il punteggio è data dalla somma presenze in a2
punteggio= 2+2+1+0+0+0=5

sbaglio nei conteggi  


a voi con i suggerimenti che mi avete dato funziona?

grazie mille
a dopo ;)
continuo a divertirmi un altro po ;)
 
dopo che hai alimentato l'array della quantita delle presenze lo rileggi e conti quanti sono gli elementi con valore maggiore di 0 , quello è il punteggio , ciao
 
ciao ho fatto la funzione seguendo lo schema di ricerca che ho postato ma si potrebbe scrivere meglio
eleganza zero....
conto il primo array
a scrivo un aPresenze
conto il secondo array
scrivo un altro aPresenze
confronto i due array e faccio le somme
lungo ma sembra funzionare :)
grazie mille :)
 
Ciao ora che ti torna e hai capito puoi passare alla fase di ottimizzazione..
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 13 giugno 2026
    Bari
    25
    62
    86
    19
    37
    Cagliari
    03
    65
    84
    69
    63
    Firenze
    84
    34
    83
    08
    26
    Genova
    19
    29
    90
    53
    32
    Milano
    75
    70
    86
    51
    35
    Napoli
    46
    48
    68
    37
    19
    Palermo
    16
    39
    87
    84
    74
    Roma
    29
    42
    65
    54
    80
    Torino
    77
    67
    68
    57
    45
    Venezia
    05
    82
    85
    42
    19
    Nazionale
    75
    27
    45
    33
    39
    Estrazione Simbolotto
    Napoli
    42
    15
    27
    08
    41

Ultimi Messaggi

Indietro
Alto