Toolbox Visual Basic
Presentiamo in questa sezione, per i programmatori in Visual Basic, versioni 5 o 6, strumenti idonei ad ottimizzare le loro applicazioni in
termini di efficacia e funzionalità: si tratta di esempi di codici e di routines accompagnati da indicazioni sul loro funzionamento e sul
loro utilizzo all'interno di un programma.
Il materiale messo a disposizione è totalmente gratuito e di libero utilizzo. Se questo codice viene redistribuito altrove si dovrà però citarne l'autore e la fonte.
Sezione Numeri e date
Funzione ArrayRandomRange
A cosa serve e come funziona questo codice
Questo codice serve per generare una matrice (array) di numeri interi casuali compresi in un determinato intervallo (range).
La funzione, che deve essere richiamata passando obbligatoriamente come argomenti NumMin e NumMax rispettivamente il valore minimo e il
valore massimo dell'intervallo numerico desiderato, restituisce una matrice numerica (Variant o Long) che contiene, in ordine casuale, tutti
i numeri compresi nell'intervallo specificato dagli argomenti NumMin e NumMax.
Quando e perchè usare questo codice
Questa funzione può essere usata quando c'è la necessità di dover utilizzare una sequenza numerica casuale compresa tra un determinato
intervallo (esempio: estrazione dei numeri nel gioco della tombola, assegnazione di domande scelte casualmente da una lista ecc.).
Avvertenze e suggerimenti
Per migliorare l'efficienza del codice, in ambiente VB6 è possibile (e raccomandabile) modificare la Funzione da "Variant" a "Long".
Vedi anche la funzione RandomRange.
Function ArrayRandomRange(ByVal Min As Long, ByVal Max As Long) As Variant'As Long()
Esempio di utilizzo
Dim i As Long, j As Long, tmp As Long
'ridimensiona la matrice
ReDim RndNum(Min To Max) As Long
'carica la sequenza numerica nella matrice
For i = Min To Max
RndNum(i) = i
Next
For i = Max To Min Step -1
' genera un numero casuale compreso nel range specificato
j = Int(Rnd * (Max - Min + 1)) + Min
'inverte e combina in modo casuale i valori numerici all'interno della matrice
tmp = RndNum(i): RndNum(i) = RndNum(j): RndNum(j) = tmp
Next
'assegna la sequenza numerica alla funzione(matrice)
ArrayRandomRange = RndNum
End Function
Nell'esempio che segue ipotizziamo di avere la necessità di generare una sequenza numerica casuale compresa in un intervallo da 1 a 10, e di
volerla visualizzare in un controllo ListBox.
Ecco come richiamare la funzione ArrayRandomRange:
Private Sub VisualizzaSequenzaCasuale()
Dim i As Long
ReDim MatriceNumeriCasuali(1 To 10) As Long
MatriceNumeriCasuali = ArrayRandomRange(1, 10)
List1.Clear
For i = LBound(MatriceNumeriCasuali) To UBound(MatriceNumeriCasuali)
List1.AddItem MatriceNumeriCasuali(i)
Next
Erase MatriceNumeriCasuali
End Sub
Funzione RandomRange
A cosa serve e come funziona questo codice
Questo codice serve per estrarre un numero intero casuale compreso in un determinato intervallo (range).
La funzione, che deve essere richiamata passando obbligatoriamente come argomenti NumMin e NumMax rispettivamente il valore
minimo e il valore massimo del numero che si vuole ottenere, restituisce un valore numerico (long) casuale compreso nell'intervallo
specificato dagli argomenti NumMin e NumMax.
Quando e perchè usare questo codice
Questa funzione può essere usata quando c'è la necessità di utilizzare un numero casuale compreso in un determinato intervallo.
Avvertenze e suggerimenti
Vedi anche la funzione ArrayRandomRange
Private Function RandomRange(ByVal NumMin As Long, ByVal NumMax As Long) As Long
Esempio di utilizzo
'Inizializza il generatore di numeri casuali.
Randomize
'genera il numero casuale
RandomRange = Int((NumMax - NumMin + 1) * Rnd + NumMin)
End Function
Nell'esempio che segue ipotizziamo di avere la necessità di generare un numero casuale compreso tra 1 e 10.
Ecco come richiamare la funzione RandomRange:
Dim NumeroCasuale as Long
NumeroCasuale = RandomRange(1, 10) 'estrae un numero casuale compreso tra 1 e 10