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
    giovedì 21 maggio 2026
    Bari
    88
    65
    11
    87
    59
    Cagliari
    05
    64
    45
    80
    74
    Firenze
    37
    56
    25
    19
    36
    Genova
    29
    31
    90
    15
    17
    Milano
    73
    61
    45
    85
    48
    Napoli
    21
    85
    29
    48
    77
    Palermo
    40
    02
    66
    87
    51
    Roma
    23
    68
    57
    60
    26
    Torino
    44
    04
    76
    05
    57
    Venezia
    79
    86
    19
    29
    40
    Nazionale
    33
    54
    75
    39
    63
    Estrazione Simbolotto
    Milano
    27
    16
    30
    21
    26
Indietro
Alto