Novità

aiuto script

salvo50

Advanced Member >PLATINUM PLUS<
Perdonami Joe, mi sono permesso di fare una piccola modifica al tuo scriptino

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),1,0,,2
         Else
            Scrivi " " & Format2(E),1,0
         End If
      Next
      Scrivi
   Next
End Sub
 

joe

Advanced Member >PLATINUM PLUS<
lla;n2163470 ha scritto:
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

Ciao lla,

Purtroppo non so rispondere perché non ho capito.

Dovessi azzardare una ipotesi è No.

Non tanto perché sia sbagliato ma perché sembra un altra cosa non compatibile con quanto avevi scritto.

Diciamola così:

"Esse" è la somma di A e B

S = A + B

Se "Esse" è pari allora "Esse" si dimezza altrimenti rimane come è.

IF Pari S Then S = S/2 (non serve altro codice cioè "else")

Questa è l'ipotesi che m'era sembrato di aver intuito.

(Nel messaggio in cui chiedevi questa cosa)

Piuttosto che, un intervento di dimezzamento di uno degli addendi.

Questa seconda ipotesi è cosa di per se legittima ...

dunque potrebbe essere giusto anche quello che hai scritto,

anche se sembra doversi leggere un po al contrario.

Cioè: Prima è somma ... se non la cambi ... rimane.

Senza "altrimenti"

:)
 
Ultima modifica:

joe

Advanced Member >PLATINUM PLUS<
Ciao Salvo, si giusto

anche scriverli tutti con formattazioni differenti.

Dipende dall'uso che se ne vuole fare.

Se per esempio volessimo controllare ad occhio

se ripete a colpo più facilmente un numero dimezzato

o l'intero da cui deriva è molto comodo poter colorare

come stanno "le cose".

:)
 

lla

Advanced Member >PLATINUM PLUS<
joe;n2163537 ha scritto:
Ciao lla,

Purtroppo non so rispondere perché non ho capito.

Dovessi azzardare una ipotesi è No.

Non tanto perché sia sbagliato ma perché sembra un altra cosa non compatibile con quanto avevi scritto.

Diciamola così:

"Esse" è la somma di A e B

S = A + B

Se "Esse" è pari allora "Esse" si dimezza altrimenti rimane come è.

IF Pari S Then S = S/2 (non serve altro codice cioè "else")

Questa è l'ipotesi che m'era sembrato di aver intuito.

(Nel messaggio in cui chiedevi questa cosa)

Piuttosto che, un intervento di dimezzamento di uno degli addendi.

Questa seconda ipotesi è cosa di per se legittima ...

dunque potrebbe essere giusto anche quello che hai scritto,

anche se sembra doversi leggere un po al contrario.

Cioè: Prima è somma ... se non la cambi ... rimane.

Senza "altrimenti"

:)




*************
Diciamola così:

"Esse" è la somma di A e B

S = A + B

Se "Esse" è pari allora "Esse" si dimezza altrimenti rimane come è.
**************

è questa sì! avevi capito bene poi nel messaggio successivo probabilmente non sono stata chiara.

grazie mille:)
 

salvo50

Advanced Member >PLATINUM PLUS<
lla;n2163583 ha scritto:
*************
Diciamola così:

"Esse" è la somma di A e B

S = A + B

Se "Esse" è pari allora "Esse" si dimezza altrimenti rimane come è.
**************

è questa sì! avevi capito bene poi nel messaggio successivo probabilmente non sono stata chiara.

grazie mille:)

Ciao a Tutti
Però se hai un numero alto è lo vuoi dimezzare
finche non arriva ad un numero giocabile
per il lotto

Codice:
 'Dato un numero, se è paro lo divido per 2,
'se è disparo gli addiziono 91 e poi lo divido per 2,
' finchè non resta un numero inferiore a 92

Option Explicit
Sub Main
   Dim Pippo,X
   Pippo = 47565 'questo numero può essere il risultato di qualsiasi calcolo
   X = 91
   Do While Pippo > X
      If pari(Pippo) Then
         Pippo =(Pippo / 2)
      Else
         Pippo =(Pippo + X)
      End If
   Loop
   Pippo = Fuori90 (Pippo)
   Scrivi Format2(Pippo)
End Sub
 
Ultima modifica:

lla

Advanced Member >PLATINUM PLUS<
Grazie Salvo e Joe mi sto esercitando con quello he mi avete postato :)
 

joe

Advanced Member >PLATINUM PLUS<
Se e dico se, ci sono le istruzione dedicate,

è quasi inutile parlarne ora, considerando invece che, un numero pari,

e divisible per 2, con resto zero, mentre un numero dispari no ...

si può fare e facevo utilizzo di queste considerazioni,

quando appunto non c'erano istruzioni specifiche.

Dunque lascio esempi di quest'altre soluzioni.

Codice:
Option Explicit
Sub Main
  Dim X
  For X = 1 To 10
  If (Int(X/2)) = X / 2 Then Scrivi X & " Pari"
  Next
End Sub

Oppure ancor più aderente alla descrizione appena fatta:

Codice:
Option Explicit
Sub Main
  Dim X 
  For X = 1 To 10 
  If (X/2 - Int(X/2)) = 0 Then Scrivi X & " Pari"
  Next
End Sub

e/o con l'istruzione dedicata alla divisione intera

Codice:
Option Explicit
Sub Main
  Dim X
  For X = 1 To 10
  If (X Mod 2) = 0 Then Scrivi X & " Pari"
  Next
End Sub

:)
 
Ultima modifica:

salvo50

Advanced Member >PLATINUM PLUS<
joe;n2163695 ha scritto:
Se e dico se, ci sono le istruzione dedicate,

è quasi inutile parlarne ora, considerando invece che, un numero pari,

e divisible per 2, con resto zero, mentre un numero dispari no ...

si può fare e facevo utilizzo di queste considerazioni,

quando appunto non c'erano istruzioni specifiche.

Dunque lascio esempi di quest'altre soluzioni.

Codice:
Option Explicit
Sub Main
Dim X
For X = 1 To 10
If (Int(X/2)) = X / 2 Then Scrivi X & " Pari"
Next
End Sub

Oppure ancor più aderente alla descrizione appena fatta:

Codice:
Option Explicit
Sub Main
Dim X
For X = 1 To 10
If (X/2 - Int(X/2)) = 0 Then Scrivi X & " Pari"
Next
End Sub

e/o con l'istruzione dedicata alla divisione intera

Codice:
Option Explicit
Sub Main
Dim X
For X = 1 To 10
If (X Mod 2) = 0 Then Scrivi X & " Pari"
Next
End Sub

:)

Grazie
 

joe

Advanced Member >PLATINUM PLUS<
Ciao Salvo,

relativamente a quanto invece hai scritto sulla riduzione a numero giocabile ...

ci sono decine, centinaia o migliaia di soluzioni.

Ne cito "poche" solo per evidenziare come a partire da un dato scientifico,

quale potrebbe essere in statistica la somma "in un quadro estrazionale" ...

cioè partendo dallo stesso numero ogni lottologo possa ingenuamente o involontariamente determinare

e fattualmente determini ... egli stesso il numero da giocare "indipendentemente" dal dato di partenza:

Codice:
Option Explicit
Sub Main
   Dim Pippo,X
   Pippo = 47565 + 13 'questo numero può essere il risultato di qualsiasi calcolo
   ColoreTesto 7 : Scrivi Figura(Pippo),True
   ColoreTesto 3 : Scrivi Piramide(Pippo),True
   ColoreTesto 2 : Scrivi FuoriX(Pippo/2,90),True
   ColoreTesto 1 : Scrivi FuoriX(Pippo,15),True
   ColoreTesto 0 : Scrivi FuoriX(Pippo),True
   X = 91
   Do While Pippo > X
      If pari(Pippo) Then
         Pippo =(Pippo / 2)
      Else
         Pippo =(Pippo + X)
      End If
   Loop
   Pippo = Fuori90(Pippo)
   Scrivi Format2(Pippo)
End Sub

:)
 

salvo50

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

relativamente a quanto invece hai scritto sulla riduzione a numero giocabile ...

ci sono decine, centinaia o migliaia di soluzioni.

Ne cito "poche" solo per evidenziare come a partire da un dato scientifico,

quale potrebbe essere in statistica la somma "in un quadro estrazionale" ...

cioè partendo dallo stesso numero ogni lottologo possa ingenuamente o involontariamente determinare

e fattualmente determini ... egli stesso il numero da giocare "indipendentemente" dal dato di partenza:

Codice:
Option Explicit
Sub Main
Dim Pippo,X
Pippo = 47565 + 13 'questo numero può essere il risultato di qualsiasi calcolo
ColoreTesto 7 : Scrivi Figura(Pippo),True
ColoreTesto 3 : Scrivi Piramide(Pippo),True
ColoreTesto 2 : Scrivi FuoriX(Pippo/2,90),True
ColoreTesto 1 : Scrivi FuoriX(Pippo,15),True
ColoreTesto 0 : Scrivi FuoriX(Pippo),True
X = 91
Do While Pippo > X
If pari(Pippo) Then
Pippo =(Pippo / 2)
Else
Pippo =(Pippo + X)
End If
Loop
Pippo = Fuori90(Pippo)
Scrivi Format2(Pippo)
End Sub

:)

Ciao a Tutti.
Ciao Joe
Molto istruttivo.
Grazie
 

lla

Advanced Member >PLATINUM PLUS<
joe;n2163117 ha scritto:
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

ciao a tutti

riprendo questo come esempio
posso avereun esito con un formato tabella da potermi portare su excel?anzichè il resoconto?

e poi.. stavo cercando l'istruzione per farmi una statistica degli esiti e ho trovato questo:

Sub StatEstrattoDL(Numero, Ritardo, RitardoMax, IncrRitMax, Frequenza, Optional Inizio = 0, Optional Fine = 0, Optional aPosizioni = Nothing)

quic devo dargli un range di estrazioni,
Optional Inizio = 0, Optional Fine = 0,

ma posso scrivere Optional Inizio = fin (EstrazioneFin)
e l'altra ini ( EstrazioneFin - ee)?

e va prima del resoconto? o sotto ?

grazie :)
 

joe

Advanced Member >PLATINUM PLUS<
Ciao lla,

Incominciamo dal fondo.

"... va prima del resoconto? o sotto ?"

Come già detto, Sempre Prima.

Prima le variabili,

poi i loro valori,

poi i calcoli.

poi le giocate.

poi i risultati.

in ultimo il rendiconto.

Non si può e non si deve invertire l'ordine.

"... posso scrivere Optional Inizio = fin (EstrazioneFin)
e l'altra ini ( EstrazioneFin - ee)?

EstrazioneFin - ee

Se si tratta di simulare un metodo in un lungo periodo ...

è accettabile l'errore che c'è tra il quanto si vorrebbe ed il quanto si sta facendo,

perchè è errore minimo.

Se invece si vogliono risultati più precisi si deve notare che la lunghezza del periodo

così calcolata è equivalente ad "una estrazione in più".

Questa differenza può portare a sensibili differenze tra i numeri che saranno considerati/ammessi,

al gioco o di cui si calcola la statistica.

Dunque si .... si può e si devono determinare i limiti del periodo,

... qualora non si vogliano ricerche lunghe tutto l'archivio.

Possibilmente corrispondenti a quanto voluto.

"... Sub StatEstrattoDL(Numero, Ritardo, RitardoMax, IncrRitMax, Frequenza, Optional Inizio = 0, Optional Fine = 0, Optional aPosizioni = Nothing)"

Qui ci si addentra nei "secondo me" dunque io scrivo il mio ... sicuramente opinabile.

Penso che quanto più sia evoluta la ricerca tanto più siano utili funzioni complesse.

Viceversa, per cose semplici, sia meglio utilizzare script con istruzioni semplici e meno evolute.

Provo a spiegarmi con un esempio:

Se si vuole valutare il rendiconto economico di un metodo,

meglio eseguire tutta la procedura descritta prima e "ScriviResoconto" ... è il risultato voluto.

Se invece si vuole avere un elenco delle estrazioni in cui un numero è sortito in una posizione in una ruota,

molto meglio utilizzare uno script di poche righe con al centro una simile a:

if Posizione (Estrazione,Numero,Ruota) = X then scrivi...

Per avere un elenco completo di quanto si voleva

Piuttosto che simulare un metodo valutandone i risultati economici ...

... eppoi ricercare, in essi, con excel le celle ove il risultato era al colpo considerato.

Cioè tra tutti i rendiconti di tutte le giocate, in una situazione intricata.

In ultimo visto che si accennato Estratto, si riferisce al lotto.

EstrattoDL indirizza e riferisce di un altro gioco.

Dunque se è così ... è no. Non va bene, per il lotto.

:)
 

lla

Advanced Member >PLATINUM PLUS<
ciao a tutti

riprendo questo come esempio
vorrei avere come risultato di ritorno la distanza fra due numeri in questo modo:

prendo come esempio l'estrazione di bari del 18 .5
30.25.6.27.24

vorrei calcolare la distanza , per esempio , fra 27 e 24 ovvero 27 -->a 24 =87 (estratti 4 e 5)
qual è la funzione che lo fa ? ho provato distanza, diffciclometrica...mi torna sempre 3 come fosse una differenza normale
..che poi se il primo numero in questione cioè il quarto estratto è più' piccolo dell'altro la funzione mi deve dare 3 xò.
grazie


joe;n2163117 ha scritto:
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
 

salvo50

Advanced Member >PLATINUM PLUS<
Ciao

Non lo sò se c'è una funzione

Codice:
Option Explicit
Sub Main
Dim A
 A = Fuori90 (24 - 27)
 Scrivi A  
End Sub
 

joe

Advanced Member >PLATINUM PLUS<
Ciao.

Normalmente una differenza "24-27" dovrebbe restituire "-3".

Oppure una differenza assoluta 3.

O ancora una distanza ciclometrica 3 (dove però con valori che non superano quello assoluto di 45)

Quanto chiedi ... sembra essere il complemento a 90 della diffferenza assoluta.

Dove la differenza assoluta |a-b| lottologicamente è "concetto inesistente".

Dunque potrebbe essere in Basic Abs (a-b) e con Spaziometria

ComplAdX ( Abs(a-b)). Dove implicitamente ci si riferisce ad un insieme X di 90 numeri.

Cioè con un comando del tipo: Scrivi ComplAdX (Abs(24-27))

Sempre in Spaziometria ci sono 2 istruzioni diverse per ottenere la prima parte dei risultati:

Distanza (a,b)

Differenza (a,b) ... (e ... da quanto scrivi sembra essere più indicata questa seconda)

Cioè: Abs(a-b)

Come detto, ed in questo caso avendo come risultato un numero minore di 45 ...

le due differenti istruzioni restituiscono 3.

Dunque facendo riferimento al 3 non è possibile sapere quale dei calcoli è stato utilizzato.

:)
 
Ultima modifica:

lla

Advanced Member >PLATINUM PLUS<
ho un'altra domanda :)

estratto n1 50

estratto n2 30

estratto n3 60

vorrei sommare il più grande con il medio a prescindere dall'ordine di uscita ma sempre prendendo a riferimento il 1,2 e 3 estratto non tutti e 5 i numeri.

in questo caso il grande è l'estratto 3 e il medio è l'estratto 1
ma vorrei prevedere anche i casi in cui il 50 per esempio è il secondo estratto e il 30 è il primo ecc ecc

provavo a fare con l'if ( e comunque non mi è riuscito :p)

ma come dovrebbe essere? metto un paio di casi


if n1> n2 and n1<n3 then
risultato= n1+n3
else
if n1<n2 and n2< n3
risultato = n2+n3

end if

???

spero sia chiaro quello che ho scritto
 

joe

Advanced Member >PLATINUM PLUS<
Secondo me la via più comoda è quella di demandare

l'ordinamento dei numeri al computer.

Per 3 numeri non conviene progettare una soluzione ad hoc.

Perché essa sarebbe abbastanza intricata e laboriosa a scriversi.

Per redigerla si ricorre ad un algoritmo conosciuto come "bubble-sort"

e ripeto non consiglio di farlo perché ci sono istruzioni più comode già scritte e collaudate.

Dunque conviene porre i numeri (anche o anche più di 3) in Array

Dapprima dichiarare nella Sub che saranno 3 numeri:


Dim N(3)

arribuire loro i valori:

N(1) = 50
N(2) = 30
N(3) = 60

delegare l'ordinamento alla funzione preposta:

Call OrdinaMatrice (N,False)

Verificare il risultato con :

Scrivi StringaNumeri (N)

dove osservare che:

N(1) è divenuto il piu piccolo
N(2) il valore intermedio
N(3) il valore più grande.

Quindi se vuoi sommare "il medio" con "il grande"

l'istruzione necessaria per visualizzare questo risultato sarà:

Scrivi N(2)+N(3)

:)
 
Ultima modifica:

lla

Advanced Member >PLATINUM PLUS<
grazie ..incredibile mi torna..figoo :)
e per mettere a fianco del risultato l'estrazione che è uscita ? dopo i numeri in gioco a destra :rolleyes:
 

joe

Advanced Member >PLATINUM PLUS<
lla;n2172562 ha scritto:
grazie ..incredibile mi torna..figoo :)
e per mettere a fianco del risultato l'estrazione che è uscita ? dopo i numeri in gioco a destra :rolleyes:

Non sono in grado di dare una interpretazione univoca a questa richiesta.

Fai un esempio anche di fantasia con numeri e date a caso.

:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 13 aprile 2024
    Bari
    36
    14
    82
    54
    13
    Cagliari
    30
    22
    07
    06
    10
    Firenze
    15
    90
    28
    24
    51
    Genova
    67
    14
    23
    85
    90
    Milano
    67
    53
    40
    90
    84
    Napoli
    62
    58
    64
    29
    05
    Palermo
    61
    36
    90
    70
    83
    Roma
    71
    49
    72
    12
    54
    Torino
    16
    41
    78
    17
    75
    Venezia
    52
    09
    56
    85
    81
    Nazionale
    17
    84
    54
    28
    15
    Estrazione Simbolotto
    Genova
    33
    25
    27
    15
    10

Ultimi Messaggi

Alto