Differenze tra le versioni di "Generare numeri casuali con le funzioni esterne del API di GLib"
Da Gambas-it.org - Wikipedia.
(Creata pagina con 'La libreria '''GLib''' di GNOME consente anche di generare dei numeri casuali in un ambito di valori da noi stabilito. In particolare è possibile generare valori interi (tipo...') |
|||
(8 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
La libreria '''GLib''' di GNOME consente anche di generare dei numeri casuali in un ambito di valori da noi stabilito. In particolare è possibile generare valori interi (tipo ''Integer'') e a virgola mobile (tipo ''Float''). | La libreria '''GLib''' di GNOME consente anche di generare dei numeri casuali in un ambito di valori da noi stabilito. In particolare è possibile generare valori interi (tipo ''Integer'') e a virgola mobile (tipo ''Float''). | ||
− | + | E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libglib-2.0.so.0.8000.2'' ". | |
− | + | Mostriamo un semplice esempio pratico, nel quale si utilizzeranno quattro funzioni esterne: | |
− | Mostriamo un semplice esempio pratico: | + | * ''g_random_int( )'' per ottenere un numero intero casuale ricompreso nelle capacità del tipo di valore ''guint32'' (intero senza segno); |
− | Library "libglib-2.0" | + | * ''g_random_int_range( )'' per ottenere un numero intero casuale posto fra un minimo e un massimo. Va precisato che il limite massimo dei due valori, che formano l'ambito, non sarà mai generato, mai restituito; |
+ | * ''g_random_double( )'' per ottenere un numero in virgola mobile casuale ricompreso nelle capacità del tipo di valore ''gdouble''; | ||
+ | * ''g_random_double_range( )'' per ottenere un numero in virgola mobile casuale posto fra un minimo e un massimo. Va precisato che il limite massimo dei due valori, che formano l'ambito, non sarà mai generato, mai restituito. | ||
+ | Library "libglib-2.0:0.8000.2" | ||
+ | |||
+ | <FONT Color=gray>' ''guint32 g_random_int (void)'' | ||
+ | ' ''Return a random guint32 equally distributed over the range [0..2^32-1].''</font> | ||
+ | Private Extern g_random_int() As Long | ||
<FONT Color=gray>' ''guint32 g_random_int_range (gint32 begin, gint32 end)'' | <FONT Color=gray>' ''guint32 g_random_int_range (gint32 begin, gint32 end)'' | ||
' ''Return a random guint32 equally distributed over the range [0..2^32-1].''</font> | ' ''Return a random guint32 equally distributed over the range [0..2^32-1].''</font> | ||
Private Extern g_random_int_range(begin As Integer, endI As Integer) As Integer | Private Extern g_random_int_range(begin As Integer, endI As Integer) As Integer | ||
+ | |||
+ | <FONT Color=gray>' ''gdouble g_random_double (void)'' | ||
+ | ' ''Returns a random gdouble equally distributed over the range [0..1).</font> | ||
+ | Private Extern g_random_double() As Float | ||
<FONT Color=gray>' ''gdouble g_random_double_range (gdouble begin, gdouble end)'' | <FONT Color=gray>' ''gdouble g_random_double_range (gdouble begin, gdouble end)'' | ||
Riga 16: | Riga 27: | ||
− | + | Public Sub Main() | |
− | |||
− | |||
− | |||
− | + | Dim l As Long | |
− | Print g_random_double_range( | + | Dim i As Integer |
− | + | Dim f As Float | |
− | + | ||
− | + | l = g_random_int() | |
+ | Print l | ||
+ | |||
+ | i = g_random_int_range(1, 8) | ||
+ | Print i | ||
+ | |||
+ | f = g_random_double() | ||
+ | Print f | ||
+ | |||
+ | f = g_random_double_range(1.0, 8.0) | ||
+ | Print f | ||
+ | |||
+ | End | ||
=Riferimenti= | =Riferimenti= | ||
− | * | + | * https://docs.gtk.org/glib/func.usleep.html?q=g_random |
Versione attuale delle 16:32, 21 giu 2024
La libreria GLib di GNOME consente anche di generare dei numeri casuali in un ambito di valori da noi stabilito. In particolare è possibile generare valori interi (tipo Integer) e a virgola mobile (tipo Float).
E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "libglib-2.0.so.0.8000.2 ".
Mostriamo un semplice esempio pratico, nel quale si utilizzeranno quattro funzioni esterne:
- g_random_int( ) per ottenere un numero intero casuale ricompreso nelle capacità del tipo di valore guint32 (intero senza segno);
- g_random_int_range( ) per ottenere un numero intero casuale posto fra un minimo e un massimo. Va precisato che il limite massimo dei due valori, che formano l'ambito, non sarà mai generato, mai restituito;
- g_random_double( ) per ottenere un numero in virgola mobile casuale ricompreso nelle capacità del tipo di valore gdouble;
- g_random_double_range( ) per ottenere un numero in virgola mobile casuale posto fra un minimo e un massimo. Va precisato che il limite massimo dei due valori, che formano l'ambito, non sarà mai generato, mai restituito.
Library "libglib-2.0:0.8000.2" ' guint32 g_random_int (void) ' Return a random guint32 equally distributed over the range [0..2^32-1]. Private Extern g_random_int() As Long ' guint32 g_random_int_range (gint32 begin, gint32 end) ' Return a random guint32 equally distributed over the range [0..2^32-1]. Private Extern g_random_int_range(begin As Integer, endI As Integer) As Integer ' gdouble g_random_double (void) ' Returns a random gdouble equally distributed over the range [0..1). Private Extern g_random_double() As Float ' gdouble g_random_double_range (gdouble begin, gdouble end) ' Returns a random gdouble equally distributed over the range [begin ..end ). Private Extern g_random_double_range(begin As Float, endF As Float) As Float Public Sub Main() Dim l As Long Dim i As Integer Dim f As Float l = g_random_int() Print l i = g_random_int_range(1, 8) Print i f = g_random_double() Print f f = g_random_double_range(1.0, 8.0) Print f End