Novità

X claudio8

  • Creatore Discussione Creatore Discussione Roby
  • Data di inizio Data di inizio
Stato
Chiusa ad ulteriori risposte.
R

Roby

Guest
ciao Claudio

ho letto in un tuo recente post che possiedi 86 metodi di matematica sommativa

saresti cosi' gentile da dirmi dove li trovo? in quanto interessato

grazie
 
quote:Originally posted by desperaux

ciao Claudio

ho letto in un tuo recente post che possiedi 86 metodi di matematica sommativa

saresti cosi' gentile da dirmi dove li trovo? in quanto interessato

grazie

Caro desperaux gli 86 medodi sono tutti relizzati su fogli di calcolo elettronici di mio possesso che sulla base di specifiche formazioni-eventi, evidenziano la presenza di una previsione.

In altri post ancora più vecchi ne ho specificato qualcuno ed inoltre quando posto una previsione ne spiego la provenienza.

Per elaborazioni automatizzate devi vedere in rete quello che trovi tra gli script esistenti.
Ti do un suggerimento ricerca sul web questo testo "ATTENZIONE !!!", troverai uno script sommativo. ciao



claudio
 
X Luigi, non è assolutamente spiacevole quello che hai trovato con ATTENZIONE!!!, sei più fortunato di me che avevo trovato incece uno script di Ramco sul quale ci sto lavorando.

Te lo posto in originale ed approfitto per chiederti di modificarlo in modo che mi dia i numeri nuovi previsti ed il colpo in cui escono, se ne verifico le capacità in estrazioni retodatate. (attualmente i numeri presenti nel outp sono riferiti all' ultimo step analizzato e non a quelli futuri derivanti).


Codice:
Sub main()
ColoreTesto 2 : Scrivi "ATTENZIONE !!!",1
Scrivi "Ricerca per Ambata eseguita in tutte le ruote contemporaneamente",1
Scrivi "Ricerca per Ambata condizionata a STEP(salti) nel periodo selezionato",1
Dim som(5,90)
Dim estr(5)
Dim val(5,90)
Dim amb(90)
perc=InputBox("Imposta la percentuale esiti (10% - 100%)","PERCENTUALE",70)
nmc=CInt (InputBox("Quanti cicli(STEP) da analizzare ?","STEP",4))
esq=CInt (InputBox("La Lunghezza in estrazioni di uno STEP?","LUNGHEZZA STEP",5))
ncg=InputBox("Quanti colpi di gioco ?","COLPI DI GIOCO-ANALISI",3)
tes=CInt (InputBox ("Quante estrazioni vuoi indietreggiare dall'ultima in archivio?","SOLO per ANALISI",1))
'la riga sopra serve solo per staccare l'analisi dall'ultima estrazione in archivio, potremmo così vedere
'nelle estrazioni che decidiamo di mettere nel limbo(valore tes), quali numeri sono già sortiti...
fin=EstrazioneFin-tes
ini=Fin -(nmc*esq)
For r2=1 To 10
       For i=1 To 90
               amb(i)=0
       Next
       ColoreTesto 0 : Scrivi : Scrivi String (50,"*")
       ColoreTesto 0 : Scrivi "IMPOSTAZIONI:",1
       s="Cicli analizzati "& nmc &" da "& esq &" estrazioni cad. per "
       If eval(ncg)=1 Then
               s=s+ncg+") colpo:"
               Else
               s=s+ncg+") colpi:"
       End If
       ColoreTesto 0 : Scrivi s
       ColoreTesto 1 : Scrivi "Quantità cicli Impostati: ("& nmc &")  tot. ("& (nmc*esq)&") Estr.",1
       ColoreTesto 0 : Scrivi "Statistica dal: "+DataEstrazione(ini)+" al: "+DataEstrazione(Fin),1
       ColoreTesto 2 : Scrivi "Percentuale Impostata: "& perc &"%",1
       Scrivi
       For r=1 To 10
               z=0
               For i=1 To 5
                       For j=1 To 90
                               som(i,j)=0
                               val(i,j)=True
                       Next
               Next
               For i=1 To 5
                       estr(i)=0
               Next
               valido=False
               For n=ini To fin step esq
                       If eval(esq)=0 Then m=n+1 Else m=n End If
                       z=z+1
                       For i=1 To 5
                               estr(i)=Estratto(n,r,i)
                       Next
                       For i=1 To 5
                               For j=1 To 90
                                       val(i,j)=True
                               Next
                       Next
                       k3=n+ncg
                       If k3 > EstrazioniArchivio  Then k3 = EstrazioniArchivio  End If
                       For nv=n+1 To k3
                               For i=1 To 5
                                       For j=1 To 5
                                               k=Estratto(nv,r2,j)-estr(i)
                                               While k<=0
                                                       k=k+90
                                               Wend
                                               If val(i,k)=True Then
                                                       som(i,k)=som(i,k)+1
                                                       val(i,k)=False
                                               End If
                                       Next
                               Next
                       Next
               Next
               For i=1 To 5
                       For j=1 To 90
                               zz=Int((z/100)*perc)
                               s=CStr(eval(i))+"° di "+FormatSpace(NomeRuota(r),8)+" + "+Format
 
quote:Originally posted by desperaux

ciao claudio e Luigi

purtroppo con attenzione non ho trovato nulla mi dispiace

Ciao, quello che avresti dovuto trovare te lo ho già postato sopra, adesso aspettiamo Luigi per ampliare le capacità dello script.
Per adesso caricalo in spaziometria e cerca di capire qello che fà.
ciao

claudio
 
Alt ... io voglio insegnatre a te a procedere da solo ... anche perche
come dico sempre io non gioco e di modificare o fare script a destra e a manca non mi va .. quindi dimmi che problema hai e cerchero di ragionare insieme per risolverlo.
Ciao !
 
x Luigi
Ti posto uno script simile al precedente, ma modificato per i miei usi.
Esso ricerca una formazione di numeri uguali su 2 ruote e 2 posizioni ed estrae, per i casi da me richiesti, gli estratti ed i fissi da sommare che hanno ottenuto una % minima di casi positivi.

Codice:
Sub Main()
	ColoreTesto 2
	Scrivi "ATTENZIONE !!  --> RICERCA PER AMBATA <-- ",1
	Scrivi "Eseguita in tutte le ruote contemporaneamente, per i CASI richiesti",1
	Dim som(5,90)
	Dim estr(5)
	Dim estrn(5),ambn(90)
	Dim Val(5,90)
	Dim amb(90)
	Dim perc 'perc minima
	Dim r1,p1,cs1,colpi
	Dim r2,p2,a,b,ini1,fin,r3
	Dim rr,r
	'									'DATI DAI SPECIFICA
	perc = 99 '	'  ok  Perc
	r1 = 4	'<-----Ruota1
	p1 = 2 	'<-----Posiz1
	r2 = 8	'<-----Ruota2
	p2 = 2	'<-----Posiz1
	cs1 = 10 	'<-----Casi
	colpi = 10	'<-----Colpi
	' 							'INIZIO con la ricerca del n. casi da rintraccire  "cs1"
	cc = 0						' imposto il contatore dei casi  cc = 0
	tme1 = 0						' totale-meno-estrazioni1 riferito alle estrazioni
	For es = EstrazioneFin - tes To 1 Step - 1 	' legge le estrazioni dall'ultima - tes (togli estrazione)alla 1a e si ferma quando ha trovato il n. casi richiesti e rileva il tme1
		a = Estratto(es,r1,p1) 			' definisco gli estratti da trovare
		b = Estratto(es,r2,p2) 	' con l asottrazione del passo, è possibile considerare posizioni anche su estrazioni diverse (a ritroso)
		If a = b Then 				' numeri uguali nelle posizione di ricerca  a = b
		cc = cc + 1				'cc = cc + 1 Incrementa il contatore dei casi
		If cc = cs1 Then 			'se  il contatore casi cc = cs1(numero casi richiesti) allora
		tme1 =(EstrazioneFin - tes - es) 		' tme1 = (estraz fin-tes-es) -> totale-meno-estrazioni1 riferito alle estrazioni
	End If
End If
Next
'							'FINE  ricerca del n. casi da rintraccire "cs1"
ini1 = EstrazioneFin - tme1 			' inizio estrazioni = ultimo caso a ritroso = estrazione finale - tes - tme1
fin = EstrazioneFin 				' deve diventare tme1
ini1 = fin - tme1
'							'INIZIO CICLO ELABORAZIONE
For r3 = 1 To 1		'r3 = ruota di analisi
	For i = 1 To 90
		amb(i) = 0
		
	Next
	ColoreTesto 0
	Scrivi
	Scrivi String(80,"*")
	ColoreTesto 0
	Scrivi "PARAMETRI IMPOSTATI :",1
	s = "Statistica dal: " & DataEstrazione(ini1) & " al: " & DataEstrazione(fin) & " Casi impostati " & cs1 & " per "
	If eval(colpi) = 1 Then
		s = s & colpi & " colpo:"
	Else
		s = s & colpi & " colpi:"
	End If
	ColoreTesto 0
	Scrivi s,1
	ColoreTesto 1
	Scrivi "Quantità casi per analisi: " & cs1
	ColoreTesto 0
	ColoreTesto 2
	Scrivi "Percentuale Impostata: " & perc & " % "
	Scrivi
	For r = 1 To 10				'r per le ruote di partenza da 1 to 10
		z = 0
		For i = 1 To 5				'per estratti da 1 to 5 ,
			For j = 1 To 90 			'per i numeri fissi da 1 to 90 , i fissi
				som(i,j) = 0		'matrice     som (estratto, fisso) = 0
				Val(i,j) = True		'matrice     val (estratto, fisso) = vero
			Next
		Next
		For i = 1 To 5
			estr(i) = 0
			estrn(i) = 0
		Next
		valido = False
		For es = ini1 To fin
			a = Estratto(es,r1,p1)
			b = Estratto(es,r2,p2)
			If a = b Then
				z = z + 1
				For i = 1 To 5
					estr(i) = Estratto(es,r,i)
					estrn(i) = Estratto(fin + 1,r,i)
				Next
				For i = 1 To 5
					For j = 1 To 90
						Val(i,j) = True
					Next
				Next
				k3 = es + colpi
				If k3 > EstrazioniArchivio Then
					k3 = EstrazioniArchivio
				End If
				' CICLO DI VERIFICA del fisso
				'colpov = 0
				For nv = es + 1 To k3		' for estrazione verifica = es+1 to k3 = es+colpi, a condizione di non fine archivio
					For i = 1 To 5		'  for gli estratti  i = 1 to 5
						For j = 1 To 5
							k = Estratto(nv,r3,j) - estr(i)
							While k <= 0
								k = k + 90
							Wend
							If Val(i,k) = True Then
								som(i,k) = som(i,k) + 1	' contatore del estratto e fisso
								Val(i,k) = False
							End If
						Next
					Next
				Next
			End If
		Next
		For i = 1 To 5
			For j = 1 To 90
				zz = Int((z/100)*perc)
				s = CStr(eval(i)) + "° di " + FormatSpace(NomeRuota(r),8) + " + " + Form
 
X desperaux
con questi listati puoi creane centinaia di metodi sommativi.
N.b. il listato a step ha un errore di %, praticamente considera nella % anche lo step dal quale dovrebbe partire la previsione.
Saluti e fammi sapere se li trovi di tuo interesse.


claudio
 
Ciao Claudio

si si si che li trovo di mio interesse,ma io con script = 0

so solo che si possono inserire in spaziometria oppure in quale altro prog? excel

Sarei grato a te ,a Luigi o altri che mi spiegassero come procedere

ne ho davvero bisogno

ciao
 
quote:Originally posted by desperaux

Ciao Claudio
si si si che li trovo di mio interesse,ma io con script = 0
so solo che si possono inserire in spaziometria oppure in quale altro prog? excel (solo spaziometria)Sarei grato a te ,a Luigi o altri che mi spiegassero come procedere
ne ho davvero bisogno
ciao

Vai a questo link, leggitelo e troverai dei file - 4 lezioni di Luigi- da scaricare per iniziare a capire, troverai inoltre il link di una guida del "vbscript"
http://forum.lottoced.com/topic.asp?TOPIC_ID=123737
Ciao

claudio
 
x Luigi
Ho tradotto, per quanto mi è stato possibile, il listato, cercando di essere esplicativo al massimo, per farti capire cosa e come ho appreso il vbscript (auto interrogazione).
Penso che, quanto commentato, correzioni tue comprese, siano di valido aiuto per chi ha difficoltà come me ed ha bisogno di chiarisi una serie di concetti fondamentali per le elaborazioni" astratte" che si devono fare per il lotto.
In definitiva vorrei, se ti è possibile avere specifiche indicazioni sull'uso delle matrici, dalla loro creazioni ed utilizzo e trasformazioni in corso di scrittura di un listato.
Quando penso alle matrici le identifico come tabelle contenenti dei valori variabili da usarsi all' occorrenza, però non capisco come si possa tutt'untratto cambiare gli indici in queste
e ti faccio un esempio:

Codice:
For estraz_verif = es + 1 To k3		' for estrazione verifica = es+1 to k3 = es+colpi, a condizione di non fine archivio
				For i = 1 To 5				'  for gli estratti base  i = 1 to 5 - (posizione da 1 a 5) ell'estratto base 
					For j = 1 To 5			' ?????????  for   j  = 1 to 5 ( posizione dell' )
						k = Estratto(estraz_verif,r3,j) - estr_base(i) 'k = diff. tra estratto di verif.posiz j(da 1 a 5) ed est_base nelle pos da 1 a 5
						While k <= 0' esgue ciclicamente la istruzione sotto scritta (k=k+ 90) fintanto che la K <=0
							k = k + 90 ' istruzione (k = k+ 90).
								'-->  in sostanza se la differenza K che identifica il numero "fisso" é <=90, al K occorrre sommare il 90
						Wend
						If Val(i,k) = True Then 'se la matrice val(i,k) = True (vero) allora...
						
 

							som(i,k) = som(i,k) + 1	' contatore del som(estr_base e fisso) incrementa di 1
							Val(i,k) = False		' val( estr_base e fisso) = false (-1)

Questa mia carenza di chiarezza mi fa fumare la zucca.

:D:D Gli script mi stanno appassionando, ma se non supero questo muro altissimo ... mi ci butto giù :D:D

Codice:
Sub Main()
	ColoreTesto 2
	Scrivi "ATTENZIONE !!  --> RICERCA PER AMBATA <-- ",1
	Scrivi "Eseguita in tutte le ruote contemporaneamente, per i CASI richiesti",1
	Dim som(5,90)
	Dim estr_base(5)
	Dim estr_new(5)
	Dim Val(5,90)
	Dim n_ambata(90),ambn(90)
	Dim perc 'perc minima
	Dim r1,p1,cs1,colpi,estraz_verif
	Dim r2,p2,a,b,ini1,fin,r3
	Dim rr,r
	'									'DATI DA SPECIFICA
	perc = 99 '	'  ok  Perc
	r1 = 4	'<-----Ruota1
	p1 = 2 	'<-----Posiz1
	r2 = 8	'<-----Ruota2
	p2 = 2	'<-----Posiz1
	cs1 = 10 	'<-----Casi
	colpi = 10	'<-----Colpi
	' 							'INIZIO con la ricerca del n. casi da rintraccire  "cs1"
	cc = 0						' imposto il contatore dei casi  cc = 0
	tme1 = 0						' totale-meno-estrazioni1 riferito alle estrazioni
	For es = EstrazioneFin - tes To 1 Step - 1 	' legge le estrazioni dall'ultima - tes (togli estrazione)alla 1a e si ferma quando ha trovato il n. casi richiesti e rileva il tme1
		a = Estratto(es,r1,p1) 			' definisco gli estratti da trovare
		b = Estratto(es,r2,p2) 	' con l asottrazione del passo, è possibile considerare posizioni anche su estrazioni diverse (a ritroso)
		If a = b Then 				' numeri uguali nelle posizione di ricerca  a = b
		cc = cc + 1				'cc = cc + 1 Incrementa il contatore dei casi
		If cc = cs1 Then 			'se  il contatore casi cc = cs1(numero casi richiesti) allora
		tme1 =(EstrazioneFin - tes - es) 		' tme1 = (estraz fin-tes-es) -> totale-meno-estrazioni1 riferito alle estrazioni
	End If
End If
Next
'							'FINE  ricerca del n. casi da rintraccire "cs1"
ini1 = EstrazioneFin - tme1 			' inizio estrazioni = ultimo caso a ritroso = estrazione finale - tes - tme1
fin = EstrazioneFin 				' deve diventare tme1
ini1 = fin - tme1
'							'INIZIO CICLO ELABORAZIONE
For r3 = 1 To 1					'r3 = ruota di analisi - ricerca per gioco bari
	For i = 1 To 90
		'CREA MATRICI CON
		n_ambata(i) = 0									'n_ambata(i = 90 righe ) = 0
	Next
	ColoreTesto 0
	Scrivi
	Scrivi String(80,"*")
	ColoreTesto 0
	Scrivi "PARAMETRI IMPOSTATI :",1
	' 						'gestione  del testo sing-plurale con if ...then
	s = "Stati
 
quote:Originally posted by claudio8

x Luigi
Ho tradotto, per quanto mi è stato possibile, il listato, cercando di essere esplicativo al massimo, per farti capire cosa e come ho appreso il vbscript (auto interrogazione).
Penso che, quanto commentato, correzioni tue comprese, siano di valido aiuto per chi ha difficoltà come me ed ha bisogno di chiarisi una serie di concetti fondamentali per le elaborazioni" astratte" che si devono fare per il lotto.
In definitiva vorrei, se ti è possibile avere specifiche indicazioni sull'uso delle matrici, dalla loro creazioni ed utilizzo e trasformazioni in corso di scrittura di un listato.
Quando penso alle matrici le identifico come tabelle contenenti dei valori variabili da usarsi all' occorrenza, però non capisco come si possa tutt'untratto cambiare gli indici in queste
e ti faccio un esempio:

Allora Cloud , qui c'è un problema di fondo nel senso che bisogna disporre innanzi tutto di una proprietà di linguaggio riferita alla programmazione quindi c'è bisogno di studiare la teoria che sta alla
base di tutto e poi applicarla con la pratica per poterla consolidare.
E' necessario utilizzare i termini appropriati per farsi capire.
Gli indici di una matrice sono semplicemente dei numeri che identificano una posizione all'interno della matrice cambiarli serve solo per riverirsi ad un preciso elemento della matrice stessa.

Come mio solito partiamo da lontano : Le variabili
Cos'è una variabile ? La variabile è una locazione di memoria che contiene un valore , possiamo accedere ad una vriabile sia per leggere il suo valore sia per modificarla cio si puo fare
riferendosi alla variabile sempre attraverso il suo nome.
Questo concetto gia lo conosci , sta alla base per comprendere
i vettori e le matrici.
Cosa sono i vettori ? I vettori altrimenti detti array si comportano
piu o meno come una variabile con la differenza che possono contenere
piu valori diversi contemporanemente.
Facciamo un esempio pratico , nella tua camera da letto sicuramente avrai una cassettiera , bene la cassettiera è un vettore !!
Esatto perche la cassettiera è un unica entita che contiene chesso 10 cassetti ciascuno dei quali puo contenere degli oggetti diversi.
Se tu dici a tua moglie : cara non trovo i calzini dove li hai messi ? Lei magari ti rispondera : nella casettiera nel terzo cassetto a partire dall'alto. Benissimo tua moglie ti ha dato un'indicazione precisa per trovare i tuoi calzini.
La stessa cosa si fa con un vettore.
Si dichiara un vettore di 10 elementi con

Dim Vettore(10)

e ci si riferisce ad uno dei suoi 10 elementi attraverso il suo indice

per esempio

Vettore(3) = 1

serve per valorizzare con 1 l'elemento 3 del nostro vettore.
Il 3 in questo caso è l'indice del vettore

Le matrici
Le matrici sono vettori a 2 o piu dimensioni</u>
Fai finta che la tua cassettiera in camera da letto abbia dei cassetti perticolari ,di quelli che al loro interno sono divisi
in scomparti fai finta due scomparti per cassetto.
Bene quindi la cassettiera ha 10 cassetti ciascun cassett ocontiene 2 scomparti.
Stessa cosa per una matrice

Dim Cassettiera( 10 ,2)

è la rappresentazione informatica tella tua cassettiera di legno

in questo caso non basta riferirsi solo ad un cassetto per indicarlo ma bisogna identificare anche lo scomparto (i computer son pignoli e le cose le vogliono precise) quindi per identificare uno scomparto di uno specifico cassetto si utilizzano anche in questo caso gli indici ,
il primo indice puo spaziare da 1 a 10 tanto quanto è grande la cassettiera il secondo da 1 a 2 e cioe tanto quanto sono gli scomparti di ciascun cassetto.

Cassettiera (1 ,1) = Calzini
Cassettiera (1 ,2) = Mutande

in questo modo ti stai riferendo sempre al primo cassetto e stai specificando 2 scomparti diversi.

Cassettiera (3 ,1)
 
signor Professore,

Leggendo lo script postato sopra, io trovo una prima volta questa matrice Val
For i = 1 To 5
For j = 1 To 90
Val(i,j) = True
Next
Next
E poi trovo la stessa matrice Val
In questo if.. then
:
For estraz_verif = es + 1 To k3
For i = 1 To 5
For j = 1 To 5
k = Estratto(estraz_verif,r3,j) - estr_base(i)
While k <= 0'
k = k + 90
Wend

If Val(i,k) = True Then ecc. Ecc.

Ti chiedo queste due matrici con lo stesso nome hanno qualcosa in comune, una qualche relazione? o no?

Io a questo punto immagino la stessa cassettiera VAL con 5 cassetti (i) a 90 scomparti (j) che poi cambia il nome degli scomparti chiamandoli (k) mantenendo viva l'entità cassettiera.



claudio
 
signor Professore,

Leggendo lo script postato sopra, io trovo una prima volta questa matrice Val
For i = 1 To 5
For j = 1 To 90
Val(i,j) = True
Next
Next
E poi trovo la stessa matrice Val
In questo if.. then
:
For estraz_verif = es + 1 To k3
For i = 1 To 5
For j = 1 To 5
k = Estratto(estraz_verif,r3,j) - estr_base(i)
While k <= 0'
k = k + 90
Wend

If Val(i,k) = True Then ecc. Ecc.

Ti chiedo queste due matrici con lo stesso nome hanno qualcosa in comune, una qualche relazione? o no?

Io a questo punto immagino la stessa cassettiera VAL con 5 cassetti (i) a 90 scomparti (j) che poi cambia il nome degli scomparti chiamandoli (k) mantenendo viva l'entità cassettiera.



claudio
 
Signor Alunno :-) mi compiaccio che è quasi sulla strada giusta.
per dissipare meglio i suoi dubbi bisogna introdurre dei concetti
riguardanti l'area di visibilita delle variabili
quando parlo di area di visibilita delle variabili mi riferisco sia
alle variabili che alle matrici che ai vettori.
Che cosa è l'area di visibilita delle variabili ? si intende per area di visibilita delle variabili l'area in cui una variabile mantiene il suo valore e quindi puo essere utilizzata.
Mi spiego meglio.
La struttura di uno script e composta da una procedura principale
cioè la famosa

Codice:
Sub Main

End sub

ed eventualemnte altre sub o function secondarie

Bene , qualsiasi variabile , vettore , matrice dichiarata
all'interno di un blocco Sub / End Sub o Function/End Function
ha un'area di visibilita all'interno solo e soltanto in quella procedura (sub) o funzione (Function) , cio vuol dire diverse cose
tra cui le piu importanti
1) non si puo usare in quella stessa sub o function un'altra dichiarazione Dim che usi lo stesso nome di variabile
ci sarebbe infatti errore di variabile gia dichiarata , questo perche
i nomi delle variabili devono essere univoci all'interno della loro
area di visibilita.
2) puoi dichiarare tranquillamente una variabile con lo stesso nome
in una procedura o funzione diversa , tale variabile pur chiamandosi allo stesso modo non ha niente a che fare con l'altra


se al contrario una variabile un vettore o una matrice vengono dichiarate al di fuori di un blocco sub o function allora quella
variabile , matrice , o vettore sarà visibile e quindi utilizzabile
in tutte le sub e in tutte le function dello script, come nell'esempio che segue , nota che la dichiarazione va effettuata
prima della Sub Main

Codice:
Dim Ruota
Sub Main 
    ruota = 1 
End Sub 

Sub ScriviValoreVariabile
   call scrivi (ruota)
End Sub

Quindi abbiamo visto che ci sono 2 aree di visibilita per le variabili
e cioe a livello globale di script se vengono dichiarate prima
della sub main , e a livello di procedura se sono dichiarate
dentro un blocco sub o function se dovesse capitare di una
variabile dichiarata a livello globale e poi nuovamente dichiarata a livello di procedura quest'ultima ha priorita e all'interno di quella
procedura in cui è dichiarata identifica una variabile diversa che non ha nulla a che fare con quella globale pur chiamandosi ugualmente.

Ti ho fatto tutto questo discorso perche come ti ripeto la teoria è importante , ora arriviamo al tuo dubbio

La variabile il cui nome è Val</u> proprio per il discorso che abbiamo fatto ha un area di visibilita in tutta la procedura che la contiene , quello che a te ha creato il dubbio è il fatto di aver
visto che peer indicare gli indici di questa famosa variabiel val
sono state usate variabili differenti , questo ti ha creato confusione , vedere val(i,k) e val(i,j) .. eheh caro Cloud che importa come si chiamano le variabili che specificano l'indice ?
quello che ci importa è il loro valore non il nome quindi anche se
nello script si fa uso di variabili differenti (cioè con nome diverso) in realta il nome non conta nulla perche quella variabile in va vista come un valore che di volta in volta specifica l'indice per accedere al famoso scomparto del cassetto della cassettiera di cui alla lezione 1 ;.) cioe se j = 1 e k = 1 a noi importa l'1 cioe il valore della variabile , è quello che viene usato per passare l'indice alla matrice.
Se non hai ancora chiaro fammi sapere ! Ciao !
 
Urca boia questa è una lezione memorabile me la stampo e la leggo con calma perchè mi sento che qui c'è il nocciolo della questione .
Grazie Luigi e Claudio[8] che ha sollevato la questione. fill
 
Caro professor Luigi,

Riguardo al concetto di visibilità è tutto ben chiaro, per cui la variabile il cui nome è Val proprio per il discorso che hai fatto ha un area di visibilità all’interno della Sub main … End Sub quindi nello specifico in tutta la procedura .

Se la variabile Val identifica inizialmente una cvaseetiera-area di memoria contenente i 5 cassetti (i) ed i 90 scomparti (j) , la immaginiamo come un grosso casellario avente 5 righe e 90 colonne (escludiamo la riga e colonna 0) ottenendo 450 caselle, la sua valorizzazione con Val(i,j) = True cosa pone in ognuna di queste caselle?
Ne cambia il contenuto, trasformando ogni singola casella in = true ? … o cos’altro, cosa fà in pratica la istruzione Val(i,j) = True ?

Ritornando al casellario , che contiene 5 righe (i) e 90 colonne (K) il nome k cosa identifica all’interno delle casellario VAL ? sostituisce solo il nome k a j ?
E quindi chiedo: la istruzione If Val(i,k) = True Then , considerando che precedentemente si è valorizzato
k = Estratto(estraz_verif,r3,j) - estr_base(i) cosa fa, trasforma la Val in qualcosaltro che non ho ancora chiaro ?
Quindi vorrei capire cosa si valorizza con = quando si ha una variabile senza indici, una variabile con 1 indice, una con 2 indici una con 3 indici e così via ?

Grazie dal tuo allievo =)


claudio
 
Bene , bene ... qui qualcuno sta per diventare il nuovo capoclasse ...
ehehe (ogni riferimento al povero elephantone è puramente casuale :-) )
Allora Cloud , esistono in vbscript delle costanti predefinite.
Cosa è una costante ? Una costante puo essere vista come una variabile
nel senso che contiene un valore ma mentre la variabile appunto varia
e cipè ne possiamo modificare il valore a nostro piacimento
le costanti rimangono tale e quali e il loro valore non cambia mai.
Anche per le costanti vale lo stesso discorso dlle variabili , e cioe se una costante è dichiarata dentro un blocco sub o function
sara visibile solo li , se dichiarata al di fuori sara visibile in tutte
le sub e function dello script.
Per dichiarare una costante si usa invece di Dim</u> la parola chiave Const</u> ad esempio

Codice:
Const PiGreco = 3.14

dichiara una costante che vale 3.14

Bene oltre a poterle dichiarare da solo ci sono alcune costanti
come dicevo predefinite dal linguaggio
ad esempio la costante VbYellow identifica il valore numerico
per del colore giallo , VbBlack ad esempio serve
per identificare il colore nero.
Un 'altra costante e qui arriviamo al tuo quesito è la
Costante True che vale -1 , l'opposto della costante True
è la costante False che vale 0.
True e False sono due valori di tipo Booleano ovvero Vero (True) e Falso (False) quindi solo 2 valori opposti.
Quando lo script valorizza V(k,j) = true sta valorizzando con il valore di True (cioè -1) l'elemento k,j della famosa cassettiera
A cosa serve cio ? Dipende dalla logica dello script in questo caso
chi ha fatto lo script dichiarando la variabile Val ha creato una sorta di griglia nella quale ciascuna cella è come un interruttore
che puo avere lo stato di On (vero,true) oppure Off (spento,falso ,false) poi in base alla logica dell'algoritmo va ad interrogare
la variabile val per sapere se la tale cella contien il valore vero o il valore falso e si regola di conseguenza.
Tornando al discorso indici delle matrici facciamo questo esempio

Codice:
Sub Main
	
	' dichiaro la matrice
	ReDim Cassettiera(3 ,2)
	
	' valorizzo la matrice con valori a caso
	
	Cassettiera(1 ,1) = 10
	Cassettiera(1 ,2) = 20
	Cassettiera(2 ,1) = 30
	Cassettiera(2 ,2) = 40
	Cassettiera(3 ,1) = 50
	Cassettiera(3 ,2) = 60
	
	
	' ora con un ciclo scrivo a video il valore degli elementi (cioè i cassetti)
	
	For k = 1 To 3 ' k gestisce il numero dei cassetti
		For j = 1 To 2 ' j gestisce il numero degli scomparti
			Call Scrivi (Cassettiera (k,j))
		Next
	
	Next
	

	' ora con un ciclo scrivo a video il valore degli elementi (cioè i cassetti)
	' ma uso variabili differenti per specificare gli indici
	
	For z = 1 To 3 ' z gestisce il numero dei cassetti
		For y = 1 To 2 ' jy gestisce il numero degli scomparti
			Call Scrivi (Cassettiera (z,y))
		Next
	
	Next

	. N.B. 
	' Come si puo vedere lanciando lo script
	' anche se ho usato variabili differenti per passare gli indici il risultato è
	' giustamente identico perche cio che viene stampato a video è il valore
	' dei cassetti della matrice Cassettiera
	

	
End Sub


Ciao !
 
Stato
Chiusa ad ulteriori risposte.

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 26 luglio 2025
    Bari
    81
    09
    05
    54
    10
    Cagliari
    56
    07
    45
    69
    64
    Firenze
    39
    16
    56
    29
    09
    Genova
    67
    12
    55
    74
    04
    Milano
    40
    30
    44
    63
    27
    Napoli
    63
    07
    74
    86
    81
    Palermo
    80
    34
    16
    27
    53
    Roma
    08
    78
    43
    03
    52
    Torino
    38
    84
    47
    57
    20
    Venezia
    88
    70
    85
    65
    24
    Nazionale
    36
    09
    43
    55
    10
    Estrazione Simbolotto
    Nazionale
    25
    23
    13
    40
    35
Indietro
Alto