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
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 !