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 28 marzo 2026
    Bari
    53
    04
    01
    11
    09
    Cagliari
    67
    19
    47
    35
    64
    Firenze
    13
    48
    58
    39
    15
    Genova
    52
    87
    51
    79
    67
    Milano
    07
    79
    84
    28
    37
    Napoli
    26
    90
    68
    82
    67
    Palermo
    38
    57
    65
    20
    56
    Roma
    81
    66
    45
    53
    08
    Torino
    29
    47
    55
    78
    71
    Venezia
    07
    29
    76
    14
    15
    Nazionale
    17
    10
    21
    29
    15
    Estrazione Simbolotto
    Firenze
    02
    38
    33
    11
    39
Indietro
Alto