[VISUAL BASIC] Random variabelen weergeven

Pagina: 1
Acties:
  • 302 views sinds 30-01-2008

  • magnifor
  • Registratie: Februari 2004
  • Niet online
Voor school moet ik een programma schrijven dat in staat moet zijn om variabelen random weer te geven. Ik heb het allemaal heel simpel gehouden. Ik heb 1 tekstvak die invoerVeld heet en 1 button toegevoegd. De code die ik al heb is als volgt:

code:
1
2
3
4
5
6
7
8
9
Dim x As integer
Dim y As integer
Dim z As integer
Dim willekeurig As integer

Randomize
willekeurig = hier moet de code komen die ik nog niet weet

invoerVeld = willekeurig


Mijn vraag is dus nu hoe ik de variabelen x,y,z random kan weergeven. Als er fouten in de code zitten of als het misschien beter kan, moet je het gewoon zeggen.

Ik gebruik Visual Basic 6.0 personal edition.

Alvast bedankt voor jullie hulp.

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 17:25

Salandur

Software Engineer

zoek eens op de functie random in de helpfiles van VB. Staat het vast in,

De volgende keer even zelf nadenken en zoeken voordat je zo een simpele vraag stelt waar je zelf eenvoudig een antwoord op kan vinden.

Assumptions are the mother of all fuck ups | iRacing Profiel


  • magnifor
  • Registratie: Februari 2004
  • Niet online
Salandur schreef op maandag 13 december 2004 @ 20:54:
zoek eens op de functie random in de helpfiles van VB. Staat het vast in,

De volgende keer even zelf nadenken en zoeken voordat je zo een simpele vraag stelt waar je zelf eenvoudig een antwoord op kan vinden.
Daar staat het niet in. In de MSDN libary heb ik alleen dit gevonden:

code:
1
2
3
Dim MyValue As Integer
Randomize   ' Initialize random-number generator.
MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.


Verder vraag ik niet zomaar iets. Ik vraag alleen dingen die ik echt niet weet en het antwoord niet heb kunnen vinden.

[ Voor 19% gewijzigd door magnifor op 13-12-2004 20:58 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:17

Robtimus

me Robtimus no like you

Tip: gebruik een array van variabelen ipv 3 losse variabelen. Dan zie je zelf denk ik wel hoe je verder moet.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • magnifor
  • Registratie: Februari 2004
  • Niet online
IceManX schreef op maandag 13 december 2004 @ 21:03:
Tip: gebruik een array van variabelen ipv 3 losse variabelen. Dan zie je zelf denk ik wel hoe je verder moet.
Kun je een voorbeeldje geven? Ja sorry, maar ik ben nog echt een beginner in VB. Ik krijg pas 2 weken Visual Basic.

[ Voor 6% gewijzigd door magnifor op 13-12-2004 21:06 ]


  • Brothar
  • Registratie: Oktober 2000
  • Laatst online: 04-02 09:14

Brothar

meester

Als ik je TS lees, vraag ik me af wat nu de opdracht is:
- hoeveel variabelen ? 3 ? => wijzig de randomize van 6 naar 3 !
(- en wat wordt met random weergeven bedoeld ?
Afhankelijk van een randomize 1 van de drie ? Of mogen het ook tekstvariabelen zijn, en moet het variabel een stukje van 1 van die variabelen zijn ?
:) )

eagle


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:17

Robtimus

me Robtimus no like you

Ik hoop dat je weet wat een array is? (zoek dat anders even op)

Dat array kan indexen 0-2 of 1-3 hebben, en die elementen kun je direct aanspreken met bv arrayval(1), als arrayval de naam van je array is. Zie je meteen waar je de random voor kunt gebruiken?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'netjes dimmen ;)
dim array_random(3)

'array vullen
array_random(0) = "0veld"
array_random(1) = "1veld"
array_random(2) = "2veld"
array_random(3) = "3veld"

'timer randomizen
randomize timer

'random var tussen 0 de uppercound (max van array)
int_random = round(rnd() * UBound(array_random),0)

'output random variable!
response.write(array_random(int_random))


That should do the trick!

de array kun je dan zien als:

code:
1
2
3
4
 0 | 0veld
 1 | 1veld
 2 | 2veld
 3 | 3veld


volgens mij :D

[ Voor 28% gewijzigd door Mischa_NL op 13-12-2004 21:36 ]


  • magnifor
  • Registratie: Februari 2004
  • Niet online
Brothar schreef op maandag 13 december 2004 @ 21:08:
Als ik je TS lees, vraag ik me af wat nu de opdracht is:
- hoeveel variabelen ? 3 ? => wijzig de randomize van 6 naar 3 !
(- en wat wordt met random weergeven bedoeld ?
Afhankelijk van een randomize 1 van de drie ? Of mogen het ook tekstvariabelen zijn, en moet het variabel een stukje van 1 van die variabelen zijn ?
:) )
Het programma moet een aantal variabelen willekeurig weergeven. De variabelen moeten gewoon getallen zijn. Daarom gebruik ik ook Integer. :)
Mischa_NL schreef op maandag 13 december 2004 @ 21:27:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'netjes dimmen ;)
dim array_random(3)

'array vullen
array_random(0) = "0veld"
array_random(1) = "1veld"
array_random(2) = "2veld"
array_random(3) = "3veld"

'timer randomizen
randomize timer

'random var tussen 0 de uppercound (max van array)
int_random = round(rnd() * UBound(array_random),0)

response.Write(int_random & "<Br>")

'output random variable!
response.write(array_random(int_random))


That should do the trick!

de array kun je dan zien als:

code:
1
2
3
4
 0 | 0veld
 1 | 1veld
 2 | 2veld
 3 | 3veld


volgens mij :D
Oke, volgens mij begrijp ik die source. Moet ik nu voor uitvoer invoerVeld = array_random doen of iets anders?

Ik ga het iig morgen proberen. Thanks. :)
Dat array kan indexen 0-2 of 1-3 hebben, en die elementen kun je direct aanspreken met bv arrayval(1), als arrayval de naam van je array is. Zie je meteen waar je de random voor kunt gebruiken?
Als ik eerlijk moet zijn, begrijp ik het niet. Maar met de code van Mischa zal ik ver komen. Thanks voor het idee iig. :)

[ Voor 51% gewijzigd door magnifor op 13-12-2004 21:40 ]


  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
als je gewoon een random getal wilt hebben is het nog makkelijker

code:
1
2
3
4
5
6
7
8
'timer randomizen
randomize timer

'random var tussen 0 de uppercound (max van array)
int_random = round(rnd() * [**maximale integer**],0)

'output random variable!
response.write(int_random)

[ Voor 6% gewijzigd door Mischa_NL op 13-12-2004 21:37 ]


  • magnifor
  • Registratie: Februari 2004
  • Niet online
Mischa_NL schreef op maandag 13 december 2004 @ 21:36:
als je gewoon een random getal wilt hebben is het nog makkelijker

code:
1
2
3
4
5
6
7
8
'timer randomizen
randomize timer

'random var tussen 0 de uppercound (max van array)
int_random = round(rnd() * [**maximale integer**],0)

'output random variable!
response.write(int_random)
Ja oke, thanks. Maar dat was niet de opdracht. Maar toch leuk om het te weten voor andere opdrachten.

Dank u wel iig. :)

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 15-05 00:22
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim x As integer
Dim y As integer
Dim z As integer
Dim willekeurig As integer

Randomize
a=round(rnd() * [3],0) 

IF a=0 THEN willekeurig=x
IF a=1 THEN willekeurig=y
IF a=2 THEN willekeurig=z

invoerVeld = willekeurig

:P

  • magnifor
  • Registratie: Februari 2004
  • Niet online
Ga ik ook proberen. Jullie horen het nog van me. Thanks. :)

Ik ben nu even bezig:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'netjes dimmen ;)
dim array_random(3)

'array vullen
array_random(0) = "0veld"
array_random(1) = "1veld"
array_random(2) = "2veld"
array_random(3) = "3veld"

'timer randomizen
randomize timer

'random var tussen 0 de uppercound (max van array)
int_random = round(rnd() * UBound(array_random),0)

'output random variable!
response.write(array_random(int_random))

invoerVeld = array_random


Maar nu geeft hij een foutmelding van: Type mismatch? Hoe moet ik nu verder?

Ik het volgende heb ik al geprobeerd:

code:
1
2
3
invoerVeld = array_random()
invoerVeld = array_random(3 To 0)
invoerVeld = array_random(0 To 3)

[ Voor 134% gewijzigd door magnifor op 14-12-2004 16:20 ]


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 17:25

Salandur

Software Engineer

Baris Ka schreef op dinsdag 14 december 2004 @ 11:04:
code:
1
2
3
...

invoerVeld = array_random


Maar nu geeft hij een foutmelding van: Type mismatch? Hoe moet ik nu verder?
Hangt van het type af van invoerVeld. Als dit een textbox is moet het zijn
code:
1
invoerVeld.text = array_random(int_random)

Maar dit is natuurlijk geheel afhankelijk van het type van invoerVeld, dus dat zal je zelf even op moeten zoeken.

[ Voor 16% gewijzigd door Salandur op 14-12-2004 21:37 ]

Assumptions are the mother of all fuck ups | iRacing Profiel


  • magnifor
  • Registratie: Februari 2004
  • Niet online
Salandur schreef op dinsdag 14 december 2004 @ 21:36:
[...]

Hangt van het type af van invoerVeld. Als dit een textbox is moet het zijn
code:
1
invoerVeld.text = array_random(int_random)

Maar dit is natuurlijk geheel afhankelijk van het type van invoerVeld, dus dat zal je zelf even op moeten zoeken.
Oke, het is een textveld. Ik ga het morgen proberen. Thanks.

Ben nu bezig met mijn weblog. :)

[ Voor 4% gewijzigd door magnifor op 14-12-2004 21:44 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Het topic wordt nu wel erg een "help mij debuggen". Zo'n foutmelding staat er niets voor niets. Daarnaast heb je nu wel genoeg voorzetjes gekregen om je opdacht af te maken denk ik :)

Daarnaast is je topicstart aan de magere kant. Als je voor je eventueel volgende topic P&W FAQ - De "quickstart" eens door zou willen lezen dan graag :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.