Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Funzione Randomize - Numeri Interi...
Forum - C# / VB.NET - Funzione Randomize - Numeri Interi...

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
psycho85 (Ex-Member)
Pro


Messaggi: 72
Iscritto: 20/08/2006

Segnala al moderatore
Postato alle 19:43
Mercoledì, 06/06/2007
Utilizzo questa sinstassi per generare numeri casuali compresi tra 1 e 7...

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim varNumeroCasuale As Byte
  2.  
  3. Randomize()
  4. varNumeroCasuale = CByte(Int((90 * Rnd())+ 1))



Ok...Se volessi estrarre oltre ai numeri interi un 0.5

Esempio...

NUMERI DA GENERARE
0.5 - 1-2-3-4-5-6-7

Esempio: Non deve estrarre 4.5 ma 4 oppure 0.5

MI sono spiegato bene? :-?

PM Quote
Avatar
giovannibart91 (Member)
Pro


Messaggi: 64
Iscritto: 30/05/2008

Segnala al moderatore
Postato alle 20:51
Mercoledì, 06/06/2007
Forse.
Io ho capito che vuoi generare dei numeri casuali ben precisi all'interno di un range.
Cioè che deve estrarre a caso i numeri interi da 1 a 7 ma può estrarre anche il numero decimale 0.5 e come decimale può estrarre solo quello.
Ho capito bene? :-| :-?

PM Quote
Avatar
psycho85 (Ex-Member)
Pro


Messaggi: 72
Iscritto: 20/08/2006

Segnala al moderatore
Postato alle 0:14
Giovedì, 07/06/2007
:k: PERFETTO :k:

:alert: Ora non resta che risolvere il quesito :alert:

PM Quote
Avatar
giovannibart91 (Member)
Pro


Messaggi: 64
Iscritto: 30/05/2008

Segnala al moderatore
Postato alle 15:10
Giovedì, 07/06/2007
È proprio quello il bello... io non so proprio come fare!! :-|

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 15:46
Giovedì, 07/06/2007
metti tutto in un'array di variabili e poi visualizza il risultato casuale
della serie
a(1)= 0.5
a(2)= 1
a(3)= 2
a(4)= 3
a(5)= 4
a(6)= 5
a(7)= 6
a(8)= 7
numeroestratto= a(x) 'dove x è il valre random da 1 a 8

Ultima modifica effettuata da P4p3r0g4 il 07/06/2007 alle 15:47
PM Quote
Avatar
psycho85 (Ex-Member)
Pro


Messaggi: 72
Iscritto: 20/08/2006

Segnala al moderatore
Postato alle 19:12
Giovedì, 07/06/2007
Allora...questo era il codice prima...

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim varNumeroCasuale As Byte
  2.  
  3. Randomize()
  4. varNumeroCasuale = CByte(Int((90 * Rnd())+ 1))



Visto il post sugli array di P4p3r0g4 ho modificato il codice in questo modo...

Codice sorgente - presumibilmente VB.NET

  1. Dim A(8) As Integer
  2.    A(1) = 0.5
  3.    A(2) = 1
  4.    A(3) = 2
  5.    A(4) = 3
  6.    A(5) = 4
  7.    A(6) = 5
  8.    A(7) = 6
  9.    A(8) = 7
  10.  
  11. Dim varNumeroCasuale As Integer
  12. Randomize()
  13. varNumeroCasuale = CInt(Int((A(8) * Rnd()) + 0.5))



Ovviamente non funzione come immaginavo...Infatti credo che la colpa sia di "CInt e Int" che producono solo numeri interi...
Ho provato a sostituire CInt con CDec senza esito positivo...

:-?
:d

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 21:02
Giovedì, 07/06/2007
Intanto è sbagliata la dichiarazione dell'array: quello che devi scrivere è questo:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim A(7) As Decimal
  2. A(0)= 0.5
  3. A(1)= 1
  4. A(2)= 2
  5. 'eccetere


Oppure, ancora più veloce:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim A() as decimal = {0.5,1,2,3,4,5,6,7}


Dopo devi usare il random per estrarre un indice casuale nell'array, meglio se usi Random.Next:
Codice sorgente - presumibilmente VB.NET

  1. Dim R as new random
  2. dim d as decimal
  3. randomize()
  4. d = a(r.next(7))


PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 14:35
Venerdì, 08/06/2007
io pensavo a un
Codice sorgente - presumibilmente Plain Text

  1. varNumeroCasuale = A(Int(8* Rnd()) + 1)


xò ci sono un'infinità di modi...

Ultima modifica effettuata da P4p3r0g4 il 08/06/2007 alle 14:36
PM Quote
Avatar
psycho85 (Ex-Member)
Pro


Messaggi: 72
Iscritto: 20/08/2006

Segnala al moderatore
Postato alle 19:07
Venerdì, 08/06/2007
Grazie P4p3r0g4
Grazie Il Totem

I vostri consigli sono stati oro per me, non ci sarei mai arrivato...

Dopo svariati tentativi ho deciso di adottare il seguente code...

Codice sorgente - presumibilmente VB.NET

  1. Dim A() As Decimal = {0.5, 1, 2, 3, 4, 5, 6, 7}
  2.  
  3.         Dim R As New Random
  4.         Dim d As Decimal
  5.         Randomize()
  6.         d = A(R.Next(8))
  7.  
  8. 'Visualizzazione del numero generato nella textbox
  9. txtGenerato.Text = d



:k:GRAZIE ANCORA:k:

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo