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ì 30 aprile 2026
    Bari
    02
    58
    76
    30
    50
    Cagliari
    28
    06
    35
    51
    39
    Firenze
    46
    27
    71
    88
    50
    Genova
    01
    08
    15
    17
    38
    Milano
    82
    50
    87
    51
    02
    Napoli
    65
    38
    37
    53
    46
    Palermo
    56
    62
    58
    10
    67
    Roma
    57
    82
    49
    80
    02
    Torino
    39
    74
    29
    35
    47
    Venezia
    54
    76
    22
    73
    85
    Nazionale
    69
    62
    88
    43
    21
    Estrazione Simbolotto
    Genova
    01
    37
    04
    17
    23

Ultimi Messaggi

Indietro
Alto