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ì 09 ottobre 2025
    Bari
    09
    10
    42
    73
    59
    Cagliari
    14
    65
    66
    79
    83
    Firenze
    71
    15
    32
    04
    61
    Genova
    08
    02
    18
    87
    84
    Milano
    33
    08
    84
    80
    41
    Napoli
    29
    81
    50
    17
    83
    Palermo
    14
    28
    74
    19
    60
    Roma
    76
    32
    55
    67
    90
    Torino
    07
    02
    66
    15
    70
    Venezia
    34
    73
    70
    40
    09
    Nazionale
    87
    79
    36
    46
    02
    Estrazione Simbolotto
    25
    07
    23
    17
    30

Ultimi Messaggi

Indietro
Alto