Novità

Ricerca Frequente Migliore

claudio8

Premium Member
Scrivi " Ruota/e" & StringaRuote(aretRuote) & " " & StringaEstratti (retIdEstr,aretRuote) & " ] " ' Non Funziona è normale
il dato "retRuote" è la composizione di un acronimo ha un significato ben preciso
a= array (vettore o elenco)
ret = return ( di ritorno)
Ruote= ruote
in sostanza un elenco di ruote.
Se richiedi con "aretRuote" alla funzione StringaEstratti, essa non riceve lo specifico che gli occorre x darti risposta poichè la funzione "stringaestratti" rchiede questi parametri ( vedi help):

StringaEstratti
Function StringaEstratti(IdEstrazione, Ruota, Optional Separatore = ".", Optional tipogioco As Integer = 0, Optional idArchivio = 0) As String

Descrizione
Ottiene una stringa data dalla concatenazione dei numeri usciti su una data ruota in tale estrazione( quindi una ruota specifica)
Note
Valore di ritorno
Torna una stringa data dalla concatenazione dei numeri usciti su una data ruota in tale estrazione , i numeri vengono separati dal carattere separatore
Parametri
IdEstrazioneIl numero identificativo dell'estrazione da 1 a estrazioni totali nell'archivio
RuotaIdentificativo della ruota ( quindi una ruota specifica)
Optional Separatore = "."Carattere separatore per suddividere le sottostringhe
Optional tipogioco As Integer = 0Non usato
Optional idArchivio = 0Indentificativo dell'archivio da usare

per ottenere quanto ci richiede la funzione StringaEstratti dobbiamo estrapolare dall' array (elenco) di aretRuote la o le ruote che sono in questo elenco di ritorno.
Precedentemente abbiamo specificato nel Verificaesito il parametro "ruote" che inizialmente con il "Dim ruote(10)" abbiamo dichiarato che può contenere sino a 10 posizioni o valori anche se nel nostro costrutto ne usiamo solo 2 (TO e VE).

Precisazione : anche questo parametro è una array e per essere precisi avremmo dovuto in fase di Dim farlo precedere da un "a "(aruote) in modo da riconoscerlo come vettore o elenco ( vedi nell'elp alla funzione Vericaesito, che lo richiede).
VerificaEsito

aRuoteVettore ruote va dimensionato ad esempio con Dim aRuote (10) aRuote(1) = BA_ se si vuole specificare solo la ruota di bari dim aRuote (10) aRuote(1) = BA_ aRuote(1) = VE_ se si vuole specificare solo la ruota di bari e quella di venezia

In definitiva dobbiamo prima fare l'estrapolazione ciclando l'elenco aretRuote per vedere quante ne contiene, poichè l'esito che abbiamo richiesto potrebbe essersi verificato contemporaneamente su tutte le ruote per le quali abbiamo richiesto la Verifica (nel contempo le scrivo nel costrutto):
Codice:
For x = 1 To UBound(aretRuote)  ' cicliamo l'array o vettore (elenco)  dalla posizione 1 all'ultima presente in esso
    If aretRuote(x) > 0 Then Scrivi  SiglaRuota(aretRuote(x)) & " [" &  tringaEstratti(retIdEstr,aretRuote(x)) & "] "
Next
e poi inserirle nel testo che richiediamo con "Scrivi"

vedo delle specifiche di Ilegend, che ti suggerisce un'altro modo, di ricercare gli estratti, ma devo ancora leggerli.
per ora chiarisciti quanto ho scritto e prova a inserirlo nel costrutto e mandalo, in seguito riprendiamo.
ciao
 
Ultima modifica:

Xeroxs

Advanced Member >GOLD<
Provaci.
Non devi usare stringa estratti..
Prova a raccogliere in un areay i 5 estratti di bari di un estrazione qualsiasi

Questo è ciò che utilizzo poco ma che ho imparato leggendo i vostri precedenti post del passato un misto delle cose che ho capito, non ho approfondito in quanto funziona anche se ho sempre pensato che qualche errore comunque c'è.

Codice:
Sub Main
   Dim aRuota(1),Estr
   ReDim aEstratti(0)
   r = BA_
   Estr = EstrazioneFin
   aRuota(1) = r
   Call GetArrayNumeriRuota(Estr,aRuota(1),aEstratti)
   Scrivi DataEstrazione(Estr) & " " & SiglaRuota(r) & " - " & StringaNumeri(aEstratti,,1)
End Sub

esito

21.01.2021 BA - 18.43.19.69.15
 

Xeroxs

Advanced Member >GOLD<
Per Claudio8,

Grazie per quanto esponi, non avevo proprio compreso il vero significato di quegli acronomi, e vedo che da ciò che scrivi effettivamente alcune parti di codice per me sono nuove nel senso viste ma non approfondite come UBound.
Ora me le studio ed analizzo per capire il loro costrutto, devo capire bene questo "Verifica Esito"
 

claudio8

Premium Member
Ciao I legend,
onde evitare che Xeros faccia confusione, ti chiedo per cortesia di attendere che costruisca lo script secondo il mio processo del 1° esito. utilizzando il Verifica Esito.
Non voglio prevaricarti ma x Xeroxs è meglio che si proceda passo passo su una strada per volta e che si renda conto in segiuto della differenza di output dei 2 procedimenti in modo da poter in futuro scegliere il + adatto alle sue esigenze.
Non voglio escluderti dal tread, non mi permetterei mai neanche di pensarlo, ma cerchiamo di collaborare fornendogli le basi di studio delle funzioni del perchè delle cose in modo che gli siano chiare e indissolubili.
ciao

Xeros
mi dici se hai mai visionato le lezioni di script fatte da Luigi?
ciao
 

Xeroxs

Advanced Member >GOLD<
alcune, in questo periodo ho sostituito alcuni pezzi del Pc ed ho salvato il tutto altrove le avevo salvate per vederle da Tablet ma non ci riuscivo, ora che è a posto, voglio verle bene tutte comprese alcune che ho trovato di Joe, e soprattutto anche parti di post dove Te I-Legend Mike58 e altri ( sperando di non dimenticarne) danno delle descrizioni di alcune funzioni molto importanti.
 

Xeroxs

Advanced Member >GOLD<
Ciao, Riposto lo Script Ripulito da note e altro ed ho aggiunto quella riga come proposto da Claudio8 nel modo che esponga i valori rilevati, sto cominciando a capire infine i vari legami tra le variabili e non solo in quanto gli array davvero potenti su certe cose devono essere ben compresi, credo non solo da me.

Ora cercherò di capire come andare avanti nl caricare i valori che mi interessano

Codice:
Option Explicit
Sub Main()
   Dim ruote(10)
   ReDim aretRuote(12)
   Dim numeri1(10),Ambata(10)
   Dim posta(5)
   Dim Clp,Ini,Fin,es,K,retEsito,retColpi,retEstratti,retIdEstr,x,freq
   Dim aNum(90)
   ReDim aNumFreq(90,2)
   posta(1) = 1
   'posta(2) = 1 ' Attiva se Giochi 2 Ambate
   ruote(1) = TO_
   ruote(2) = VE_
   Clp = 7 ' Colpi di Gioco
   Ini = 9794
   Fin = EstrazioneFin
   Scrivi String(107,"-") & " By Xeroxs " & "-----"
   Scrivi String(48," ") & "****** Resoconto ****** ",1,,,7
   Scrivi String(48," ") & DataEstrazione(Ini) & " - " & DataEstrazione(Fin),1,,,1
   Scrivi String(24," ") & " L' Ambata  - Su Torino-Venezia - Test Per Ricerca Abbinamento ",1,,,1
   Scrivi String(123,"-")
   For es = Ini To EstrazioneFin
      'If IsUltimaDelMese(es) Then
      If IndiceMensile(es) = 6 Then
         Messaggio "Elaborazione estrazioni... [" &(es) & " ]   Script  by Xeroxs"
         AvanzamentoElab Ini,Fin,es
         Ambata(1) = Fuori90(Estratto(es,TO_,2) + 11)
         ColoreTesto 1
         K = K + 1
         Scrivi DataEstrazione(es) & " calcolo Ambata : " & Ambata(1) ' Queto codice permette di scrivere l'amabata da Giocare
         If VerificaEsito(Ambata,ruote,es + 1,1,Clp,,retEsito,retColpi,retEstratti,retIdEstr,aretRuote) = True Then '(=True può essere eliminato poichè la funzione restituisce o vero-True o falso-false)
            'Verificando l'esito,possiamo ottenere(il "ret" che precede i parametri indica che essi restituscono il valore del parametro) tipo di esito, colpo, gli estratti,
            'l'ID dell'estrazione e la ruota/e su cui è uscito l'esito.
            '
            Scrivi "Estraz. " & Format2(es) & " ---> " & IndiceMensile(es) & "° Estrazione Mensile " & "[" & Format2(Mese(es)) & " - " & Anno(es) & "]  " & String(58,"*") & " Caso n° " & Format2(K),1,0
            Scrivi
            Scrivi " Ambata    : " & Ambata(1)
            Scrivi " Esito     : " & retEsito
            Scrivi " Colpo     : " & retColpi & "°"
            Scrivi " Estratto  : " & retEstratti '& "   " & StringaEstratti
            Scrivi " Id Estraz : " & retIdEstr
            Scrivi " Ruota/e   : " & StringaRuote(aretRuote,True,"..")
            For x = 1 To UBound(aretRuote) ' cicliamo l'array o vettore (elenco)  dalla posizione 1 all'ultima presente in esso
               If aretRuote(x) > 0 Then
                  Scrivi " I Frequenti all'uscita dell'Ambata " & Ambata(1) & " Del Caso n° " & Format2(K) & " Sulla Ruota di " & SiglaRuota(aretRuote(x)) & " [" & StringaEstratti(retIdEstr,aretRuote(x)) & "] ",1
               End If
            Next
            Scrivi
         End If
         'abbiamo ora disponibile tutto quanto serve(l'Id estrazione,la/e ruota/e) per ricercare i numeri più frequenti coestratti alle varie ambate derivanti dallo specifico calcolo (5a mese, 2° di TO+11)
      End If
   Next
   Scrivi
End Sub

Sono Riuscito a ricopiare le videolezioni in modo tale da vederle comodamente senza il PC così le posso ultimare in quanto mi rendo conto di alcune legittime mancanze.

Grazie Ancora Claudio8 ed anche a Te I-Legend
 

claudio8

Premium Member
Proviamo ad incrementare le ruote da 2 a tutte le 10 ( nazionale esclusa)
Codice:
Option Explicit
Sub Main()
   Dim ruote(10)
   ReDim aretRuote(12)
   Dim numeri1(10),Ambata(10)
   Dim posta(5)
   Dim Clp,Ini,Fin,es,K,retEsito,retColpi,retEstratti,retIdEstr,x,freq
   Dim aNum(90)
   ReDim aNumFreq(90,2)
   posta(1) = 1
   'posta(2) = 1 ' Attiva se Giochi 2 Ambate
   ruote(1) = TO_
   ruote(2) = VE_
   ruote(3) = BA_
     ruote(4) = CA_
   ruote(5) = FI_
   ruote(6) = GE_
      ruote(7) = MI_
     ruote(8) = NA_
   ruote(9) = PA_
   ruote(10) = RO_

   Clp = 7 ' Colpi di Gioco
   Ini = 9794
   Fin = EstrazioneFin
   Scrivi String(107,"-") & " By Xeroxs " & "-----"
   Scrivi String(48," ") & "****** Resoconto ****** ",1,,,7
   Scrivi String(48," ") & DataEstrazione(Ini) & " - " & DataEstrazione(Fin),1,,,1
   Scrivi String(24," ") & " L' Ambata  - Su Torino-Venezia - Test Per Ricerca Abbinamento ",1,,,1
   Scrivi String(123,"-")
   For es = Ini To EstrazioneFin
      'If IsUltimaDelMese(es) Then
      If IndiceMensile(es) = 6 Then
         Messaggio "Elaborazione estrazioni... [" &(es) & " ]   Script  by Xeroxs"
         AvanzamentoElab Ini,Fin,es
         Ambata(1) = Fuori90(Estratto(es,TO_,2) + 11)
         ColoreTesto 1
         K = K + 1
         Scrivi DataEstrazione(es) & " calcolo Ambata : " & Ambata(1) ' Queto codice permette di scrivere l'amabata da Giocare
         If VerificaEsito(Ambata,ruote,es + 1,1,Clp,,retEsito,retColpi,retEstratti,retIdEstr,aretRuote) = True Then '(=True può essere eliminato poichè la funzione restituisce o vero-True o falso-false)
            'Verificando l'esito,possiamo ottenere(il "ret" che precede i parametri indica che essi restituscono il valore del parametro) tipo di esito, colpo, gli estratti,
            'l'ID dell'estrazione e la ruota/e su cui è uscito l'esito.
            '
            Scrivi "Estraz. " & Format2(es) & " ---> " & IndiceMensile(es) & "° Estrazione Mensile " & "[" & Format2(Mese(es)) & " - " & Anno(es) & "]  " & String(58,"*") & " Caso n° " & Format2(K),1,0
            Scrivi
            Scrivi " Ambata    : " & Ambata(1)
            Scrivi " Esito     : " & retEsito
            Scrivi " Colpo     : " & retColpi & "°"
            Scrivi " Estratto  : " & retEstratti '& "   " & StringaEstratti
            Scrivi " Id Estraz : " & retIdEstr
            Scrivi " Ruota/e   : " & StringaRuote(aretRuote,,"..")
             ColoreTesto 2

            For x = 1 To UBound(aretRuote) ' cicliamo l'array o vettore (elenco)  dalla posizione 1 all'ultima presente in esso
               If aretRuote(x) > 0 Then
                  Scrivi " I Frequenti all'uscita dell'Ambata " & Ambata(1) & " Del Caso n° " & Format2(K) & " Sulla Ruota di " & SiglaRuota(aretRuote(x)) & " [" & StringaEstratti(retIdEstr,aretRuote(x)) & "] ",1
               End If
            Next
            Scrivi
         End If
         'abbiamo ora disponibile tutto quanto serve(l'Id estrazione,la/e ruota/e) per ricercare i numeri più frequenti coestratti alle varie ambate derivanti dallo specifico calcolo (5a mese, 2° di TO+11)
      End If
   Next
   Scrivi
End Sub
Come puoi vedere usando il ciclo di scrittura delle estrazioni che tu hai inserito nel costrutto, possiamo scrivere gli estratti delle ruote in cui l'esito si è verificato contemporaneamente su più ruote rispetto alle prime 2 ruote ( caso n°2 e 7)
ciao
 
Ultima modifica:

claudio8

Premium Member
Adesso ripetiamo lo stesso script con le10 ruote e proviamo ad elencare le ruote e gli estratti in cui l'esito si è verificato.

Codice:
Option Explicit
Sub Main()
   Dim ruote(10)
   ReDim aretRuote(12)
   Dim numeri1(10),Ambata(10)
   Dim posta(5)
   Dim Clp,Ini,Fin,es,K,retEsito,retColpi,retEstratti,retIdEstr,x,freq
   Dim aNum(90)
   ReDim aNumFreq(90,2)
   posta(1) = 1
   'posta(2) = 1 ' Attiva se Giochi 2 Ambate
   ruote(1) = TO_
   ruote(2) = VE_
   ruote(3) = BA_
     ruote(4) = CA_
   ruote(5) = FI_
   ruote(6) = GE_
      ruote(7) = MI_
     ruote(8) = NA_
   ruote(9) = PA_
   ruote(10) = RO_

   Clp = 7 ' Colpi di Gioco
   Ini = 9794
   Fin = EstrazioneFin
   Scrivi String(107,"-") & " By Xeroxs " & "-----"
   Scrivi String(48," ") & "****** Resoconto ****** ",1,,,7
   Scrivi String(48," ") & DataEstrazione(Ini) & " - " & DataEstrazione(Fin),1,,,1
   Scrivi String(24," ") & " L' Ambata  - Su Torino-Venezia - Test Per Ricerca Abbinamento ",1,,,1
   Scrivi String(123,"-")
   For es = Ini To EstrazioneFin
      'If IsUltimaDelMese(es) Then
      If IndiceMensile(es) = 6 Then
         Messaggio "Elaborazione estrazioni... [" &(es) & " ]   Script  by Xeroxs"
         AvanzamentoElab Ini,Fin,es
         Ambata(1) = Fuori90(Estratto(es,TO_,2) + 11)
         ColoreTesto 1
         K = K + 1
         Scrivi DataEstrazione(es) & " calcolo Ambata : " & Ambata(1) ' Queto codice permette di scrivere l'amabata da Giocare
         If VerificaEsito(Ambata,ruote,es + 1,1,Clp,,retEsito,retColpi,retEstratti,retIdEstr,aretRuote) = True Then '(=True può essere eliminato poichè la funzione restituisce o vero-True o falso-false)
            'Verificando l'esito,possiamo ottenere(il "ret" che precede i parametri indica che essi restituscono il valore del parametro) tipo di esito, colpo, gli estratti,
            'l'ID dell'estrazione e la ruota/e su cui è uscito l'esito.
            '
            Scrivi "Estraz. " & Format2(es) & " ---> " & IndiceMensile(es) & "° Estrazione Mensile " & "[" & Format2(Mese(es)) & " - " & Anno(es) & "]  " & String(58,"*") & " Caso n° " & Format2(K),1,0
            Scrivi
            Scrivi " Ambata    : " & Ambata(1)
            Scrivi " Esito     : " & retEsito
            Scrivi " Colpo     : " & retColpi & "°"
            Scrivi " Estratto  : " & retEstratti '& "   " & StringaEstratti
            Scrivi " Id Estraz : " & retIdEstr
            Scrivi " Ruota/e   : " & StringaRuote(aretRuote,,"..")
             ColoreTesto 2
Scrivi " I Frequenti all'uscita dell'Ambata " & Ambata(1) & " Del Caso n° " & Format2(K)& " Sulla/e Ruota/e di ",1,False
            For x = 1 To UBound(aretRuote) ' cicliamo l'array o vettore (elenco)  dalla posizione 1 all'ultima presente in esso
               If aretRuote(x) > 0 Then
                  Scrivi  SiglaRuota(aretRuote(x)) & " [" & StringaEstratti(retIdEstr,aretRuote(x)) & "] - ",1,False
               End If
            Next
            Scrivi
         End If
         'abbiamo ora disponibile tutto quanto serve(l'Id estrazione,la/e ruota/e) per ricercare i numeri più frequenti coestratti alle varie ambate derivanti dallo specifico calcolo (5a mese, 2° di TO+11)
      End If
   Next
   Scrivi
End Sub
forza Xeroxs che di cose da imparare ce ne sono una infinità
ciao
 
Ultima modifica:

Xeroxs

Advanced Member >GOLD<
Bene, Questo può essere utile per capire anche come si comportano le altre ruote per altri scopi, Ottimo anche per capire il Verifica esito nel suo costrutto più ampio, come gli Array che Ti aprono un mondo sulle variabili dinamiche e non davvero enorme, per questo occorre capirne appieno il ventaglio delle soluzioni che possono offrire.
 

Xeroxs

Advanced Member >GOLD<
Buongiorno a Tutti,
Ciao Claudio8,
In questo fine settimana anche se preso dalle dinamiche familiari mi sono dedicato a capire come gestire il passo successivo , ovvero rintracciare i frequenti/presenti nelle estrazioni quando è sortita la nostra ambata, cercando di ottenere quanto da Te esposto nel tuo esempio

6 8 12 19 21 26 29 32 33 35 36 37 40 47 52 61 62 66 68 70 75 80 87 88 89
1 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Nun. freq in decrescente
29 2
8 2
19 2
68 1
33 1

Ho anche ultimato le lezioni video di Luigi ma anche grazie ai vostri lavori ho cercato di capire alcune basi del VBscript e quindi anche di Spazioscript ( Spaziometria ) in quanto devo ammettere le mie lacune sulla comprensione degli Array infatti non avevo compreso cosa effettivamente fossero, ed esaminando i vari script ed anche se poche alcune vostre descrizioni ecome se fossero dei "cassetti" che possono contenere molte delle cose che Noi potremmo esaminare e quindi portarci ad eseguire calcoli, ricerche e statistiche, devo effettivamente ben assimilarle ed il Video di LuigiB ha un pò chiarito la base dell'Array, e mi sono reso conto davvero di quanto potente può essere.

In questa fase successiva quindi devo capire come utilizzare la funzione necessaria che mi porti al risultato voluto,

Se non sbaglio devo/dovrei per quanto riguarda questo tipo di ricerca utilizzare

SerieFreq normale o Turbo

impiegando le variabile già dichiarate nello script

Dim aNum(90)
ReDim aNumFreq(90,2)


Dove la prima variabile ci permette di eseguire la ricerca tra i 90 numeri o estratti che sono sortiti

e aNumFreq(90,2) dovrebbe essere la variabile che mi permette di estrapolare i valori sortiti

bene se uso la funzione

SerieFreq(Inizio, Fine, VetNumeri, vetRuote, Sorte, Optional tipogioco = 0, Optional Jolly = False, Optional idArchivio = 0)

devo impostare inizio e Fine che dovrebbe corrispondere al periodo analizzato ( da me dichiarato con ini e fin) ma quì vado in confusione perchè come gli dichiaro che devo estrapolare i valori sortiti con l'amabta in uno specifico ID che nel mio caso dovrebbe essere retIdEstr

il vettore VetNumeri dovre essere aNum

il vetRuote dovrebbe essere aretRuote,

la Sorte ? dovrebbe essere 1 ovvero il singolo numero o ambata

ed infine la mia funzione la chiamerò aNumFreq


Ma nel frattempo devo impostare un ciclo For nidificato nella ricerca da me impostato


For n = 1 To UBound(aNum)
oppure For 1 To 90 (forse meglio)
( K = K + 1 ) -----------------> Questo non capisco se devo metterlo per incrementare ma credo di No
e scrivendo la funzione -----------------------> Teorica ( Ho un pò di dubbi)
aNumFreq = SerieFreq(Ini,Fin,aNum,..... Sorte? aretRuote,1)

Next

Provando in diversi modi incappo in errore, nella sorte non comprendo cosa riportare in quanto è un valore da dichiarare e non opzionale..


Poi magari ho utilizzato la funzione non corretta in questo contesto

E mi ritrovo certamente dopo questo fine settimana con più informazioni, ma ancora non complete per arrivare al mio obbiettivo.


:rolleyes:
 

i legend

Premium Member
Cia xerox
La raccolta dati proposta da me e claudio non utilizza serie freq turbo , e una pesca precisa e mirata in un piccolo specchio d acqua. Molto veloce .

Si può utilizzare anche la funzione da te proposta , ma è come se per operare invece di usare il bisturi utilizzi un machete .
Prova a seguire il filo logico proposto d Claudio. La soluzione più semplice è sempre la migliore.👍
 

claudio8

Premium Member
La array, definito da Luigi come "cassetto" non è altro che un elenco (unidimensionali) di valori.
immagina una lista della spesa con solo gli oggetti da comprare:
- ( inserisco solo 6 cose nell'esempio ma può contenerne molte di più)
"vuoto"
Pane
Pasta
Sale
Pepe
mele
pere
questa lista è di tipo unidimensionale disposta su un unica colonna e 7 righe.
essa puo essere rappresentata nello script con la variabile aSpesa dimensionata a 6 valori in questo modo
Dim aSpesa(6) -> vuol dire che essa può contenere massimo 6 valori oltre al valore in posizione "0" quindi la sua capacità effettiva è di 7 possibili posizioni (0.1.2.3.4.5.6) ognuna delle quali ha un detreminato valore o testo.
Per estrapolare dalla lista i singoli valori occore ciclare dal 1 al 6 i singoli oggetti chiaramente dopo averli dimensionati .
Codice:
Sub Main
    Dim aSpesa(6)
    Dim x
    aSpesa(0) = "    " ' Vuoto
    aSpesa(1) = "Pane"
    aSpesa(2) = "Pasta"
    aSpesa(3) = "Sale"
    aSpesa(4) = "Pepe"
    aSpesa(5) = "Mele"
    aSpesa(6) = "Pere"
    Scrivi "scrittura in Verticale dell'elenco",,,,2
    For x = 1 To 6 'limite massimo della array o UBound
        Scrivi "pos." & x & " "& aSpesa(x) 'qui ho preposto al Testo delle Cose nell'elenco "aSpesa" la posizione in elenco
    Next
    Scrivi
    Scrivi "scrittura in Orizzontale dell'elenco",,,,2
    For x = 1 To UBound(aSpesa) ' limite massimo della Array è UBound
        Scrivi aSpesa(x),,False
    Next
    Scrivi ' interrompe la scrittura in
    Scrivi
    Scrivi "scrittura in Orizzontale con spaziatura tra i testi dell'elenco",,,,2
    For x = 1 To UBound(aSpesa) ' limite massimo della Array o UBound
        Scrivi aSpesa(x) & " ",,False
    Next
    Scrivi
End Sub
comincia con l'assimilare questo concetto.
Tra poco ( tempo permettendo) ti spiego le "matrici" .
ciao
 
Ultima modifica:

Xeroxs

Advanced Member >GOLD<
Ciao, Claudio8,
Grazie davvero stavo proprio cercando di capire questo tipo di cose, mi sono letto diverse cose sugli Array, ora cerco di analizzare bene quanto da te esposto.
 

claudio8

Premium Member
La matrice, sono vettori a più dimensioni.
vediamo il caso di una bidimensionale che differenzia dalla array elenco (unidimensionali) dalla quantità di dimensioni.
Immaginiamo la stessa lista della spesa ed affianchiamo ad ogni oggetto una quantità.
“col 0”“col 1”“col2”
riga 1 Pane 10
riga 2 Pasta 4
riga 3 Sale 1
riga 4 Pepe 1
riga 5 Mele 3
riga 6 Pere 2
questa lista è di tipo “bidimensionale” disposta su 7 righe e 2 colonne. (neretto)
la riga “0”che normalmente è vuota la usiamo per il n° delle colonne :0,1, 2
la colonna “0” che normalmente è vuota la usiamo per l'elenco degli oggetti (riga1,riga2, ecc..riga6)
In questo caso dobbiamo impostare la dimensione della matrice così Dim Spesa(6,2) ,cioè (6 righe, 2 colonne).
E' sempre bidimensionale una matrice che ha 2 indici (6 e 2 sono gli indici ) con valori anche maggiori es. Matrice (100,150)
L’incrocio tipo “battaglia navale” di questa tabella identifica una casella contenente un dato valore.
esempio :
la casella in 1a riga e 1a colonna = Pane
la casella in riga 1 e 2a colonna = 10

Quindi per conoscere quanto pane abbiamo nella lista spesa aSpesa dobbiamo richiedere allo script il valore presente nel cassetto in riga 1 e colonna 2 cioè Spesa (1,2) 1a rig, 2a colonna.

Occorre quindi, oltre a conoscere il nome della matrice (Spesa), anche le 2 dimensioni per identificare quanto ci serve.
Per ottenere tutti o parte dei valori/ cose della aSpesa ed i rispettivi quantitativi occorre nidificare un ciclo for .. next all’interno di un altro ciclo for..next. essendo la matrice a 2 dimensioni. Una prima volta per i valori delle righe che chiamiamo x e dopo per i valori delle colonne che chiamiamo y.
Codice:
Sub Main
    Dim Spesa(6,2)
    Dim x,y
    '
    Spesa(1,1) = "Pane"
    Spesa(2,1) = "Pasta"
    Spesa(3,1) = "Sale"
    Spesa(4,1) = "Pepe"
    Spesa(5,1) = "Mele"
    Spesa(6,1) = "Pere"
    Spesa(1,2) = 10
    Spesa(2,2) = 4
    Spesa(3,2) = 1
    Spesa(4,2) = 1
    Spesa(5,2) = 3
    Spesa(6,2) = 2
    Scrivi " scrittura in Verticale dell'elenco con titoli in posizione 0 delle colonne e righe  ",,,,2
    For x = 0 To 6 'limite massimo della array o UBound
        Spesa(x,0) = "ri" & x
        For y = 0 To 2
            Spesa(0,y) = "co" & y
            Scrivi Spesa(x,y) & " ",,False
        Next
        Scrivi
    Next
    Scrivi ' lascio una riga vuota
    Scrivi " scrittura in Verticale dell'elenco senza i titoli  ",,,,2
    For x = 1 To 6 'limite massimo della array o UBound
        For y = 1 To 2
            Scrivi Spesa(x,y) & " ",,False
        Next
        Scrivi
    Next
    Scrivi ' lascio una riga vuota
    Scrivi " scrittura della intera matrice",,,,2
    ScriviMatrice Spesa
Scrivi " valori in uscita dai cicli di x e di y"
Scrivi    "      " &  x &" . " & y



End Sub
maggiori dimensioni (max 60) alle matrici, non cambiamìni sostanzialmente il loro uso.
sperodi essere stato chiaro.
ciao.
 
Ultima modifica:

Xeroxs

Advanced Member >GOLD<
Grazie, Claudio8, Mi studio bene queste 2 bei concetti sugli Array in modo da assimilarne bene i procedimenti della loro logica.
 

Zetrix

Advanced Premium Member
Claudio8 volevo mettere un esempio delle matrici questo programmino lo trovato in web ed è gratis e fa tante cose
una volta scelta la matrice 2x2 o 3x3 o 4x4 si possono inserire i numeri e si può scegliere diverse modalità di calcolo esempio A+B oppure A-B..
Nell'esempio che ho messo ho inserito una matrice A x BA CA FI
più una altra matrice B e calcola la somma di A+B
una volta questi conteggi li facevo con carta e penna adesso con questo programmino e molto più facile..
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 26 marzo 2024
    Bari
    30
    51
    17
    01
    53
    Cagliari
    13
    70
    25
    68
    47
    Firenze
    28
    30
    54
    70
    88
    Genova
    67
    87
    22
    03
    62
    Milano
    22
    34
    13
    47
    24
    Napoli
    20
    72
    59
    01
    52
    Palermo
    05
    72
    65
    52
    32
    Roma
    28
    43
    75
    54
    87
    Torino
    16
    08
    17
    24
    38
    Venezia
    67
    28
    55
    60
    29
    Nazionale
    15
    69
    22
    63
    39
    Estrazione Simbolotto
    Firenze
    44
    09
    31
    22
    16

Ultimi Messaggi

Alto