Novità

AIUTO PER ORDINA MATRICE

marconi

Junior Member
Salve a tutti,
ho lo script che allego sotto,
vorrei che l'ordinamento lo facesse decrescente sulla colonna delle frequenze,
in pratica se questo è l'output

Terni a ruota
Terni Fr.
01-02-03 00
01-02-04 00
01-02-05 00
01-02-06 00
01-02-07 00
01-02-08 00
01-02-09 00
01-02-10 01
01-02-11 01

i terni 01-02-10 e 01-02-11 dovrebbero essere in testa perchè hanno frequenza 1 e gli altri 0.

Grazie.

Sub Main()
Dim ru(3)
Dim terni(117480,5)
Dim nn(3)
r = InputBox("Ruota (1-10)",,1)
n1 = InputBox("Numero Spia",,1)
For i = 1 To 117480
terni(i,1) = 0
terni(i,2) = 0
terni(i,3) = 0
terni(i,4) = 0
terni(i,5) = 0
Next
casi = 0
co = 0
fin = EstrazioneFin
ini = EstrazioneFin - 255
For es = ini To fin
Messaggio " Elaboro il N. " & CInt(n1) & " nell'estr. N. " & es & " su " & NomeRuota(r) & " dal " & DataEstrazione(ini) & " ad oggi"
AvanzamentoElab ini,fin,es
If Posizione(es,r,n1) > 0 Then
casi = casi + 1
c = 9
ess = es + c
If ess > fin Then ess = fin End If
co = 0
For x = 1 To 88
For y = x + 1 To 89
For z = y + 1 To 90
co = co + 1
terni(co,1) = co
terni(co,2) = x
terni(co,3) = y
terni(co,4) = z
nn(1) = x
nn(2) = y
nn(3) = z
ru(1) = r
terni(co,5) = terni(co,5) + SerieFreq(es + 1,ess,nn,ru,3)
Next
Next
Next
End If
Next
OrdinaMatrice terni,- 1,5
ColoreTesto 1
Scrivi "Spia " & CInt(n1) & " su " & NomeRuota(r)
Scrivi "Terni più frequenti entro " & c & " colpi"
Scrivi "N. " & CInt(casi) & " casi " & "dal " & DataEstrazione(ini) & " ad oggi"
Scrivi
Scrivi " Terni a ruota"
ColoreTesto 2
Scrivi String(10," ") & " Terni Fr."
ColoreTesto 0
For x = 1 To 30
riga = Format2(terni(x,2)) & "-" & Format2(terni(x,3)) & "-" & Format2(terni(x,4)) & " " & Format2(terni(x,5))
Scrivi String(9," ") & riga
riga = ""
Next
End Sub

Marco
 
Questa è la riga che devi modificare
Codice:
OrdinaMatrice terni,- 1,5
nell'Help di spaziometria - indice scrivi la funzione "ordinamatrice", e trovi tutte le indicazioni.
terni è la matrice, -1 è ilcriterio, 5 è la colonna sulla quale opera l'ordinamento.
Ricorati che esiste l'help per queste piccole cose... se non cominci non finisci
 
Innanzitutto grazie per la risposta.
Prima di scrivere il post ho proprio guardato l'help di spaziometria,
avevo compreso che bisogna agire qui OrdinaMatrice terni,- 1,5
dove -1 indica l'ordine decrescente, ma non riesco ad identificare la colonna sulla quale opera l'ordinamento, al posto di 5 le ho provate da 1 a 9 ma senza nessun esito.
Ciao


Marco
 
quote:Originally posted by marconi

Innanzitutto grazie per la risposta.
Prima di scrivere il post ho proprio guardato l'help di spaziometria,
avevo compreso che bisogna agire qui OrdinaMatrice terni,- 1,5
dove -1 indica l'ordine decrescente, ma non riesco ad identificare la colonna sulla quale opera l'ordinamento, al posto di 5 le ho provate da 1 a 9 ma senza nessun esito.
Ciao

Marco

La matrice dei terni, è dichiarata con l'istruzione
Codice:
Dim terni(117480,5)

essa significa che ha 2 dimensioni (117480 righe ,5 colonne)a queste, venngono aggiunte sempre la colonna 0 in orizzontale e la riga 0 che potrebbero essere utilizza te per identificare righe e colonne.
Con queste istruzioni
Codice:
 co = 0
For x = 1 To 88
For y = x + 1 To 89
For z = y + 1 To 90
co = co + 1
terni(co,1) = co
terni(co,2) = x
terni(co,3) = y
terni(co,4) = z
nn(1) = x
nn(2) = y
nn(3) = z
ru(1) = r
terni(co,5) = terni(co,5) + SerieFreq(es + 1,ess,nn,ru,3)
Next
Next
Next
riscrive sulla matrice predisponendo nelle posizioni cartesiane (la matrice è a 2 dimensioni x = co y = da 1...5) i vari valori che ricava dal ciclo.
Il criterio in OrdinaMatrice è rappresentato da: Se = 1 ordina in modo crescente se -1 in modo decrescente
e la colonna di ordinamento è la 5(frequenza).
Appena pront, ti reinvio lo script con piccolemodifche ed una correzzione moto importante.
Comunque lo carico x vedere se c'è qualche errore.
ciao
 
C'è qualcosa che non va nel programma, non riesce ad ordinare la mole deiterni,perche modificandolo ad ambo funziona perfettamente.
ciao

L'ho modificato x ridurre le quantità di combinazioni a terno e funziona.

Codice:
 Sub Main()
	Dim ru(3)
	Dim terni(17480,5)
	Dim nn(3)
	r = InputBox("Ruota (1-10)",,1)
	n1 = InputBox("Numero Spia",,1)
	For i = 1 To 17480
		terni(i,1) = 0
		terni(i,2) = 0
		terni(i,3) = 0
		terni(i,4) = 0
		terni(i,5) = 0
	Next
	casi = 0
	co = 0
	fin = EstrazioneFin
	ini = EstrazioneFin - 255
	For es = ini To fin
		Messaggio " Elaboro il N. " & CInt(n1) & " nell'estr. N. " & es & " su " & NomeRuota(r) & " dal " & DataEstrazione(ini) & " ad oggi"
		AvanzamentoElab ini,fin,es
		If Posizione(es,r,n1) > 0 Then
			casi = casi + 1
			c = 9
			ess = es + c
			If ess > fin Then ess = fin End If
			co = 0
			For x = 20 To 50
				For y = x + 1 To 51
					For z = y + 1 To 52
						co = co + 1
						terni(co,1) = co
						terni(co,2) = x
						terni(co,3) = y
						terni(co,4) = z
						nn(1) = x
						nn(2) = y
						nn(3) = z
						ru(1) = r
						terni(co,5) = terni(co,5) + SerieFreq(es + 1,ess,nn,ru,3)
					Next
				Next
			Next
		End If
	Next
	OrdinaMatrice terni,- 1,5
	ColoreTesto 1
	Scrivi "Spia " & CInt(n1) & " su " & NomeRuota(r)
	Scrivi "Terni più frequenti entro " & c & " colpi"
	Scrivi "N. " & CInt(casi) & " casi " & "dal " & DataEstrazione(ini) & " ad oggi"
	Scrivi
	Scrivi " Terni a ruota"
	ColoreTesto 2
	Scrivi String(10," ") & " Terni Fr."
	ColoreTesto 0
	For x = 1 To 30
		riga = Format2(terni(x,2)) & "-" & Format2(terni(x,3)) & "-" & Format2(terni(x,4)) & " " & Format2(terni(x,5))
		Scrivi String(9," ") & riga
		riga = ""
	Next
End Sub

Bisogna chider a Luigi il perchè, anche l8+ non lo gestrisce

Lo spot che conosciamo dice "Ti Piace vincere facile ? " .. io rispondo SI !!!"
 
Ciao attualmente si possono ordinare solo fino a 32767 elementi !
Cerchero di aumentare le possibilita nella prossima versione
 
quote:Originally posted by LuigiB

Ciao attualmente si possono ordinare solo fino a 32767 elementi !
Cerchero di aumentare le possibilita nella prossima versione

Grazie Luigi


Ecco fatto
Codice:
Spia 1 su Bari
Terni più frequenti entro 9 colpi
N. 2 casi dal 21.06.2011 ad oggi

 Terni a ruota
           Terni Fr.
         14-54-57 02
         24-38-90 01
         27-78-81 01
         46-47-85 01
         24-38-60 01
         20-48-82 01
         24-40-56 01
         24-40-60 01
         35-76-89 01
         42-59-86 01
         12-35-51 01
         36-37-68 01
         29-40-51 01
         12-35-76 01
         38-60-90 01
         31-79-86 01
         36-37-48 01
         46-47-68 01
         29-39-51 01
         29-39-40 01
         24-40-63 01
         16-24-43 01
         23-54-57 01
         14-66-69 01
         14-23-54 01
         14-23-57 01
         41-47-68 01
         71-79-86 01
         12-76-89 01
         56-60-63 01

Lo spot che conosciamo dice "Ti Piace vincere facile ? " .. io rispondo SI !!!"
 
Claudio grazie per la esaurientissima spiegazione, perchè non apri una sezione e fai un corso su come fare i listati?

Torniamo al listato.
Cosi come l'hai modificato però non è funzionale perchè considera solo i numeri da 20 a 52, secondo te se gli faccio elaborare prima i numeri da 1 a 45 e poi da 46 a 90 è logico?
Provo anche a modificarlo io per gli ambi, nel caso facessi disastri posso chiederti aiuto?

Grazie anche a Luigi, ho modificato Dim terni(17480,5) in
Dim terni(32767,5) e l'output infatti da risultati diversi.

Buona serata a tutti.

Marco
 
quote:Originally posted by marconi

Claudio grazie per la esaurientissima spiegazione, perchè non apri una sezione e fai un corso su come fare i listati?
Caro marconi, il corso in video lezioni c'è già.
Personalmente non ho tutte queste capacità e comunque sono già stato nominato capoclasse da Elephantbig e non vorrei ulteriori aumenti gi grado (:D senza aumenti di stipendio :D) che non merito.
Torniamo al listato.
Cosi come l'hai modificato però non è funzionale perchè considera solo i numeri da 20 a 52, era solo una prova dimostrativa per verificare se con meno combinazioni di terni operava l'ordinamento con la versione ultima ....96, modificata in questo da Luigi, il tutto funziona perfettamente

Buona serata a tutti.

Marco
Claudio
 
Scusa Claudio ma non riesco a capire:
con la versione ultima ....96, modificata in questo da Luigi, il tutto funziona perfettamente
io ho installato la versione 1.2.93 c'è una nuova versione dopo questa?

Ho cercato nel forum ma non trovo niente.
Ciao

Marco
 
quote:Originally posted by marconi

Scusa Claudio ma non riesco a capire:
con la versione ultima ....96, modificata in questo da Luigi, il tutto funziona perfettamente
io ho installato la versione 1.2.93 c'è una nuova versione dopo questa? SI LA 96
Ho cercato nel forum ma non trovo niente sta li da ieri sera, da poco dopo che ti ho scritto che il tutto doveva essere chiesto a Luigi... Lui lo ha letto e sistemato. .
Ciao
Marco
http://forum.lottoced.com/topic.asp?TOPIC_ID=139055

:D:D:Dsui libri di scuola ho conosciuto un'altro Marconi (un pioniere), con la Maiuscola... non sei tu.. vero?:D:D:D
ciao.. scherzo, non te la prendere, però sii + attento ai vari post
ri ciao
 
Ti ho modificato un po lo script con altri inputbox e ti ho corretto un errore sulla gestione delle presenze (seriefreq...),
altre cosine per ampliarti le conoscenze sugli script (le formattazioni e colorazioni delle scritte).
Codice:
 '
' postato da marconi - modificato da Claudio8 - [url]http://forum.lottoced.com/topic.asp?TOPIC_ID=139028[/url]
Sub Main()
	Dim ru(3)
	Dim terni(117480,5)
	Dim nn(3)
	r = InputBox("Ruota  della spia(1-10)",,1)
	n1 = InputBox("Numero Spia",,1)
	ee = InputBox("Estrazioni da controllare",,155)
	rr = InputBox("Ruota di ricerca(1-10)",,11)
	c = InputBox("Numero colpi di gioco",,9)
	For i = 1 To 117480
		terni(i,1) = 0
		terni(i,2) = 0
		terni(i,3) = 0
		terni(i,4) = 0
		terni(i,5) = 0
	Next
	casi = 0
	co = 0
	fin = EstrazioneFin
	ini = EstrazioneFin - ee
	For es = ini To fin
		Messaggio " Elaboro il N. " & CInt(n1) & " nell'estr. N. " & es & " su " & NomeRuota(r) & " dal " & DataEstrazione(ini) & " al " &DataEstrazione(fin)

		AvanzamentoElab ini,fin,es
		If Posizione(es,r,n1) > 0 Then
			casi = casi + 1
			'c = 9
			ess = es + c
			If ess > fin Then ess = fin End If
			co = 0
			For x = 1 To 88
				For y = x + 1 To 89
					For z = y + 1 To 90
						co = co + 1
						terni(co,1) = co
						terni(co,2) = x
						terni(co,3) = y
						terni(co,4) = z
						nn(1) = x
						nn(2) = y
						nn(3) = z
						ru(1) = rr
						'terni(co,5) = terni(co,5)+ SerieFreq(es + 1,ess,nn,ru,3)' RIGA ERRATA
						presenze = SerieFreq(es + 1,ess,nn,ru,3)
						If presenze > 0 Then    'condizione da non eliminare perch'e se capitano + terni(es. 10..eccediamo) 
									  	'nello stesso caso in analisi, il resoconto finale viene falsato da tutti questi errori.
						terni(co,5) = terni(co,5) + 1
						End If
						
					Next
				Next
			Next
		End If
	Next
	OrdinaMatrice terni,- 1,5
	ColoreTesto 1
	Scrivi String(4," ") &"Spia " & CInt(n1) & " su " & NomeRuota(r)
	Scrivi String(4," ") &"Terni più frequenti entro " & c & " colpi sulla a ruota di "& NomeRuota(rr)
	Scrivi String(4," ") &"N. " & CInt(casi) & " casi " & "dal " & DataEstrazione(ini) & " a al " &DataEstrazione(fin)
	Scrivi
	Scrivi "    Terni sulla ruota di " & NomeRuota(rr)& "    ",1,2,4
	ColoreTesto 2
	Scrivi "    Posiz.ne |  Terno   | Pres.ze "
		ColoreTesto 0
	For x = 1 To 50
	
		riga =FormatSpace(x,8,-1)& " | " & Format2(terni(x,2)) & "." & Format2(terni(x,3)) & "." & Format2(terni(x,4)) & " |   " & Format2(terni(x,5))
		Scrivi String(4," ") & riga
		riga = ""
	Next
End Sub

Cerca di farne buon uso almenosu su tutte.
Ciao
Ps: quando si postano gli script è buona regola x rispetto a chi lo ha scritto, citarne il nome.

Lo spot che conosciamo dice "Ti Piace vincere facile ? " .. io rispondo SI !!!"
 
Caro Claudio,
- con quel Marconi non c'è nemmeno una lontana discendenza e sono uno a cui piace scherzare quindi figurati se non accetto le battute.

- Io prima di chiedere aiuto agli altri mi do da fare, dal link che mi hai inviato per la ver. 1.2.96 non si scarica niente:
Il link al file che hai richiesto non è valido.

- ho fatto anche una ricerca e questo è il risultato:
Microsoft OLE DB Provider for ODBC Drivers error '80040e31'
[Microsoft][ODBC SQL Server Driver]Timeout expired
/search.asp, line 349

- Ti ringrazio per lo script, in questi giorni ci lavoro e ti faccio sapere.

Buon fine settimana.




Marco
 
Si la versione 97 l'ho trovata grazie.

Lo script ultimo ha sempre il problema che non ordina in ordine decrescente per frequenze,
nella versione 97 rimane sempre quello che ci aveva segnalato Luigi a proposito del numero di terni?

Ciao.

Marco
 
Rettifico: l'ordinamento funziona benissimo.

Rimane l'altro quesito:
nella versione 97 rimane sempre quello che ci aveva segnalato Luigi a proposito del numero di terni o adesso lavora sui 117...

Ciao.

Marco
 
ciao , ora l'ordinamento non soffre piu di quel problema , certo se si tenta di ordinare 1000000 di elementi ci potrebbe volere un bel po ...
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 10 gennaio 2025
    Bari
    40
    61
    11
    86
    37
    Cagliari
    31
    02
    51
    68
    87
    Firenze
    73
    55
    34
    52
    18
    Genova
    11
    40
    27
    82
    20
    Milano
    80
    71
    65
    19
    10
    Napoli
    50
    30
    03
    01
    36
    Palermo
    66
    42
    43
    76
    89
    Roma
    05
    22
    62
    35
    39
    Torino
    17
    58
    62
    86
    69
    Venezia
    43
    89
    14
    04
    40
    Nazionale
    64
    76
    35
    40
    19
    Estrazione Simbolotto
    Bari
    08
    07
    37
    33
    38
Indietro
Alto