Novità

aiuto script

joe

Advanced Member >PLATINUM PLUS<
Ciao Salvo,

Si essendoci una istruzione dedicata è facile.

Basta usare la funzione appropriata.

Naturalmente deve essere "quella giusta",

in funzione del risultato che si vuole ottenere.

Vediamo lo script per gestire tutte le differenze tra i 5 estratti:

Codice:
Sub Main()
   Dim Es,E(5),R,P,Q
   Es = 9597 : R = BA_
   'Memorizza 5 Estratti
   For P = 1 To 5
      E(P) = Estratto(Es,R,P)
   Next
   'Scrive informazioni su Estrazione/Ruota/Estratti
   Scrivi DataEstrazione(Es) & " " & SiglaRuota(R) & " " & StringaNumeri(E,,True)
   Scrivi
   'Sviluppa tutte differenze
   For P = 1 To 4
      For Q = P + 1 To 5
         Scrivi E(P) & "." & E(Q) & " Diff =  " & Differenza(E(P),E(Q))
      Next
   Next
End Sub

:)
 
Ultima modifica:
L

LuigiB

Guest
ciao , colgo piu che altro l'occasione per salutare Joe , l'altro giorno sul post principale non ho potuto perche il forum funzionava male.
Ora io so che Joe ama fare script compatibili tra spaziometria e il famoso altro programma ..ma in spaziometria lo script puo essere piu snello.
Saluti a Joe e naturalmente anche a Salvo.

Codice:
Sub Main()
   Dim Es,E,R,P,Q
   Es = 9597 : R = BA_
   'Memorizza 5 Estratti
   'For P = 1 To 5
   '   E(P) = Estratto(Es,R,P)
   'Next
   Call GetArrayNumeriRuota ( Es, R, E)

   'Scrive informazioni su Estrazione/Ruota/Estratti
   Scrivi DataEstrazione(Es) & " " & SiglaRuota(R) & " " & StringaNumeri(E,,True)
   Scrivi
   'Sviluppa tutte differenze
   For P = 1 To 4
      For Q = P + 1 To 5
         Scrivi E(P) & "." & E(Q) & " Diff =  " & Differenza(E(P),E(Q))
      Next
   Next
End Sub
 

salvo50

Advanced Member >PLATINUM PLUS<
Ciao Luigi, come dice Joe qualche post addietro ... qui il "top dei top" è Luigi e su questo non ci sono dubbi, ma Joe è in gambissima, mi piacciono i suoi script spartani e invidio la padronanza che ha con i FOR-NEXT.

Un salutone a tutti e due.
 
Ultima modifica:

joe

Advanced Member >PLATINUM PLUS<
Ciao Luigi.

Si hai fatto benissimo a sottolineare il "livello superiore" di Spaziometria.

Ovvero della presenza delle potenti-funzioni-dedicate, che hai aggiunto al Basic,

con le quali diventa possibile ed è "tutto-fatto" ... con una sola istruzione.

:)​ Saluto naturalmente anche Salvo e tutte/i.
 
Ultima modifica:

lla

Advanced Member >PLATINUM PLUS<
joe;n2162372 ha scritto:
Ciao Salvo,

Si essendoci una istruzione dedicata è facile.

Basta usare la funzione appropriata.

Naturalmente deve essere "quella giusta",

in funzione del risultato che si vuole ottenere.

Vediamo lo script per gestire tutte le differenze tra i 5 estratti:

Codice:
Sub Main()
Dim Es,E(5),R,P,Q
Es = 9597 : R = BA_
'Memorizza 5 Estratti
For P = 1 To 5
E(P) = Estratto(Es,R,P)
Next
'Scrive informazioni su Estrazione/Ruota/Estratti
Scrivi DataEstrazione(Es) & " " & SiglaRuota(R) & " " & StringaNumeri(E,,True)
Scrivi
'Sviluppa tutte differenze
For P = 1 To 4
For Q = P + 1 To 5
Scrivi E(P) & "." & E(Q) & " Diff = " & Differenza(E(P),E(Q))
Next
Next
End Sub

:)

si possono usare somme e differenze già calcolate , come variabili anzichè gli estratti ?

ad esempio

Dim num (10) dove num sono tutte le differenze o somme

num1 num (1)= estratto (es,Ba_,1)- estratto (es,Ba_,2)
num (2)= estratto (es,Ba_,2)- estratto (es,Ba_,4)
e così via


e poi un'altra variabile con cui sommare, moltiplicare, dividere, sottrarre le num?

grazie :)
 

vengio

Super Member >GOLD<
joe;n2162350 ha scritto:
No.

Lottologicamente la distanza è una grandezza ciclometrica.

Per esempio tra 01 e 89 è 2.

Dunque non è differenza pura (o assoluta) cioè 88.

E ... non è neppure diametrale della differenza. Cioè 88-45 = 43

Per convenzione la distanza si misura in senso orario su di un cerchio.

(Per questo è convenzionalmente sempre un numero positivo)

Dopo aver disposto i 90 numeri in cerchio alla stessa distanza unitaria.

Cioè è la lunghezza dell'arco di circonferenza che unisce i 2 numeri

sulla curva ove essi sono rappresentati.

:)

Grande joe, anche se sono un attimo fuori post, qualcuno ha una formula excel a questo quesito? ad esempio la formula "=SE(AK28>45;90-AK28+AL28;AK28-AL28) " dove AK28 = 37 eAL28 = 1 mi torna 36 mentre dovrebbe invece ritornarmi 54. il 90% dei risultati sono esatti ma alcuni sfalsano in questo modo. Ringraziando se non è chiedere troppo.
 

GioRyuKen72

Advanced Member >PLATINUM PLUS<
Ciao Vengio, non ti dà 54 perchè AK28 (37) non è maggiore di 45 come richiesto dalla funzione SE(AK28>45.....)

esempio SE(AK28>45;90-AK28+AL28;AK28-AL28)

SE 37 è maggiore di 45 è falso, quindi passa al 37-1=36

Gio.
 

joe

Advanced Member >PLATINUM PLUS<
Buona serata a tutte/i.

x lla:

"Si possono usare somme e differenze già calcolate , come variabili anzichè gli estratti ?"

Si è sufficiente ed utile memorizzarle indicizzate appena calcolate ...

e poi si possono richiamare per futuri calcoli.

Per l'indice da attribuire basta inserire un contatore che si userà per numerare progressivamente

i risultati uno ad uno nella routine in cui essi vengono elaborati.

Per esempio K = K+1 : Risultato (K) = Estratto(P) +Estratto(Q)

---

x Vengio:

... Non è così semplice.

Nell'esempio che ho fatto 89 è più piccolo di 1 pertanto contando in senso orario da 89 ad 1

Abbiamo: 89/90 = 1 distanza + 90/01 = 1 distanza ... Totale distanze = 2

Con Excel, in una ventina d'anni, per questi calcoli, ho visto quasi esclusivamente, dei pasticci.

Dunque appena posso provo a scrivere e controllare una formula efficiente tuttavia ...

... secondo me, con excel non si riesce a gestire la ciclometria

con la versatilità e la velocità e la potenza di calcolo di Spaziometria.

L'assenza di questa funzione come di migliaia di altre ne è già ...esempio significativo.

:)
 
Ultima modifica:

Joe91

Advanced Member >PLATINUM PLUS<
Buon Giorno a tutte/i.

Vengio, ho provato con excel l' algoritmo che avevo per mente e funziona bene.

Per facilitarti la scrittura ho usato variabili stile celle excel (A1,B1, ...)

Nella formula dovrai naturalmente sostituire virgole con puntievirgola e

massimo e minimo con max min quando riunirai il "se" Vero/Falso (divisi da Else) in una unica cella.

La sintassi giusta e funzionante che dovrai adottare dipende dalla versione e lingua dell' excel che utilizzi.

Dunque la mia "funzione" per il calcolo della DistanzaCiclometrica (per Spaziometria) é così:

Codice:
Option Explicit
Sub Main
'Test Funzione DistanzaCiclometrica per Excel v.1.0 By Joe 
   Dim A1,B1
   For A1 = 1 To 89
      For B1 = A1 + 1 To 90
         Scrivi Format2(A1) & "." & Format2(B1) & "  ",0,0
         Scrivi Format2(F_DistanzaCiclometrica(A1,B1)) & "  ",0,0
         Scrivi F_DistanzaCiclometrica(A1,B1) = Distanza(A1,B1)
      Next
   Next
End Sub
Function F_DistanzaCiclometrica(A1,B1)
   If Massimo(A1,B1) - Minimo(A1,B1) < 45 Then
      F_DistanzaCiclometrica = Massimo(A1,B1) - Minimo(A1,B1)
   Else
      F_DistanzaCiclometrica = 90 - Massimo(A1,B1) + Minimo(A1,B1)
   End If
End Function

:)
 

lla

Advanced Member >PLATINUM PLUS<
mi dite perchè mi ritorna continuamente 90 come risultato?please

Option Explicit
Sub Main
Dim ruo(2),r,clp,ee,es,co,fin,ini,NUMa,NUMb,risultato(2)
Dim aposte(3)
aposte(1) = 1 'x ambata
NUMa = Fuori90(Estratto(es,BA_,1) + Estratto(es,BA_,2))
NUMb = Fuori90(Estratto(es,BA_,1) + Estratto(es,BA_,3))
r = CInt(InputBox("SU CHE RUOTA DI RICERCA?",,1))
ee = CInt(InputBox("QUANTE ESTRAZIONI CONTROLLO?",,10))
clp = CInt(InputBox("QUANTI COLPI?",,9))
co = 0' contatore
fin = EstrazioneFin
ini = EstrazioneFin - ee
For es = ini To fin
risultato(1) = Differenza(NUMa,NUMb)
risultato(2) = Fuori90(NUMa+NUMb)

ruo(2) = BA_
co = co + 1
Scrivi
Scrivi "Caso n°: " & CInt(co),1,risultato
ImpostaGiocata 1,risultato,ruo,aposte,clp
Gioca es
Next
ScriviResoconto
End Sub

....

grazie
 

joe

Advanced Member >PLATINUM PLUS<
Ciao lla,

si vede subito che "estratto(es"

restituisce zero perchè es vale zero dunque col fuori90 diventa 90.

ini = ... / fin = ... / for es = ini to fin

devi scriverli prima.

:)
 

lla

Advanced Member >PLATINUM PLUS<
beato te che lo vedi subito

ma non gliel'ho già detto?
ee = CInt(InputBox("QUANTE ESTRAZIONI CONTROLLO?",,10))
fin = EstrazioneFin
ini = EstrazioneFin - ee
 
Ultima modifica:

joe

Advanced Member >PLATINUM PLUS<
Codice:
Sub Main
   Dim ruo(2),r,clp,ee,es,co,fin,ini,NUMa,NUMb,risultato(2)
   Dim aposte(3)
   aposte(1) = 1 'x ambata
   r = CInt(InputBox("SU CHE RUOTA DI RICERCA?",,1))
   ee = CInt(InputBox("QUANTE ESTRAZIONI CONTROLLO?",,10))
   clp = CInt(InputBox("QUANTI COLPI?",,9))
   ' Primo fissi i limiti
   fin = EstrazioneFin
   ini = EstrazioneFin - ee
   '' Secondo scorri le estrazioni
   For es = ini To fin
   ''' Terzo  leggi gli estratti e con questi calcoli il pronostico
      NUMa = Fuori90(Estratto(es,BA_,1) + Estratto(es,BA_,2))
      NUMb = Fuori90(Estratto(es,BA_,1) + Estratto(es,BA_,3))
      co = 0' contatore
      risultato(1) = Differenza(NUMa,NUMb)
      risultato(2) = Fuori90(NUMa + NUMb)
      ruo(2) = BA_
      co = co + 1
      '''' Quarto imposti la giocata
      Scrivi "Caso n°: " & CInt(co),1',risultato
      ImpostaGiocata 1,risultato,ruo,aposte,clp
      ''''' Quinto effettui la giocata
      Gioca es
   Next
   ''''' Ultimo controlli il resoconto
   ScriviResoconto
End Sub
 
Ultima modifica:

vengio

Super Member >GOLD<
Joe91;n2163082 ha scritto:
Buon Giorno a tutte/i.

Vengio, ho provato con excel l' algoritmo che avevo per mente e funziona bene.

Per facilitarti la scrittura ho usato variabili stile celle excel (A1,B1, ...)

Nella formula dovrai naturalmente sostituire virgole con puntievirgola e

massimo e minimo con max min quando riunirai il "se" Vero/Falso (divisi da Else) in una unica cella.

La sintassi giusta e funzionante che dovrai adottare dipende dalla versione e lingua dell' excel che utilizzi.

Dunque la mia "funzione" per il calcolo della DistanzaCiclometrica (per Spaziometria) é così:

Codice:
Option Explicit
Sub Main
'Test Funzione DistanzaCiclometrica per Excel v.1.0 By Joe
Dim A1,B1
For A1 = 1 To 89
For B1 = A1 + 1 To 90
Scrivi Format2(A1) & "." & Format2(B1) & " ",0,0
Scrivi Format2(F_DistanzaCiclometrica(A1,B1)) & " ",0,0
Scrivi F_DistanzaCiclometrica(A1,B1) = Distanza(A1,B1)
Next
Next
End Sub
Function F_DistanzaCiclometrica(A1,B1)
If Massimo(A1,B1) - Minimo(A1,B1) < 45 Then
F_DistanzaCiclometrica = Massimo(A1,B1) - Minimo(A1,B1)
Else
F_DistanzaCiclometrica = 90 - Massimo(A1,B1) + Minimo(A1,B1)
End If
End Function

:)

Ciao Joe, grazie per il pensiero. Quindi dovrei inserire quanto da te pubblicato, con le opportune modifiche, come vba in excel, giusto? Comunque sto usando il 2013.
 

joe

Advanced Member >PLATINUM PLUS<
vengio;n2163121 ha scritto:
Ciao Joe, grazie per il pensiero. Quindi dovrei inserire quanto da te pubblicato, con le opportune modifiche, come vba in excel, giusto? Comunque sto usando il 2013.

Ciao Vengio.

No.

Come da esempio in un foglio nuovo/vuoto :

In A1 scrivi 89

in B1 Scrivi 1

In C1 Scrivi = SE (Max(A1;B1) - Min(A1;B1)<45; ... ecc ecc

(ricopiando il resto della funzione con la sintassi di excel).

Se ti restituisce 2 puoi provare con altre coppie di numeri in A1 e B1.

Quando giusti i risultati e capita la formula ... la puoi trasferire al tuo foglio.

:)
 
Ultima modifica:

lla

Advanced Member >PLATINUM PLUS<
ciao a tutti
altra richiesta, come si differenziano i numeri pari dai dispari?

vorrei mettere una condizione del tipo
se pippo= pari allora

dividi pippo per 2
altrimenti no

l'istruzione if l'ho trovata sull'aiuto script di spaziometria ma come si dice pari e dispari?:)
 

joe

Advanced Member >PLATINUM PLUS<
Ciao lla,

Semplicemente pari.

Codice:
Option Explicit
Sub Main
   Scrivi "Pari dell'ultima estrazione"
   Dim E,R,P
   For R = 1 To 10
      Scrivi SiglaRuota(R),0,0
      For P = 1 To 5
         E = Estratto(EstrazioneFin,R,P)
         If pari(E) Then Scrivi " " & Format2(E),0,0
      Next
      Scrivi
   Next
End Sub

Fai precedere NOT se vuoi dispari

:)
 

joe

Advanced Member >PLATINUM PLUS<
Dimenticavo per i dispari,

puoi anche usare altri test condizionali:

If Pari (E) <> True Then oppure

If Pari (E) = False Then

che lascia intendere che, prima, ho usato una semplificazione di:

If pari (E) = True Then
 
Ultima modifica:

lla

Advanced Member >PLATINUM PLUS<
va bene anche se E non è un estratto ma un risultato di una operazione precedente?

tipo

e= s1+s2

se pari (e) e= s1+s2/2
altrimenti e=s1+s2
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 23 aprile 2024
    Bari
    47
    22
    34
    20
    50
    Cagliari
    33
    14
    86
    02
    62
    Firenze
    61
    22
    44
    19
    26
    Genova
    21
    12
    57
    82
    55
    Milano
    66
    05
    11
    70
    30
    Napoli
    05
    23
    25
    52
    73
    Palermo
    23
    44
    49
    71
    65
    Roma
    82
    37
    59
    34
    71
    Torino
    26
    42
    66
    15
    58
    Venezia
    57
    06
    68
    54
    84
    Nazionale
    21
    79
    49
    03
    01
    Estrazione Simbolotto
    Genova
    24
    02
    19
    03
    27
Alto