Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Nå er jeg ikke sikker på hva AND og OR brukes i PHP, men i VB er dette binariske opratører. Det vil si at de fungerer på lik linje med +,-,: og - bare at de regner med binariske tall (de fire regneartene er egentlig en utbygning av binariske opratører). Se på disse tabellene:

 

1 AND 1 = 1

0 AND 0 = 0

0 AND 1 = 0

1 AND 0 = 0

 

1 OR 1 = 1

1 OR 0 = 1

0 OR 1 = 1

0 OR 0 = 0

 

Da er det likevel mulig å f.eks. skrive dette i VB:

 

If A = True And B = True Then ...

 

Men det er ikke mulig å skrive LoadPicture(...) OR LoadPicture(...). For å få til en kode som velger fram en tilfeldig bilde må du gjøre noe sånt:

 

Dim Tell%

Randomize Timer ' Ungår at tilfeldighetsgeneratoren genererer de samme tallene
Tell = Rnd

If Tell = 0 Then Me.Picture = LoadPicture("C:\Img1.jpg")
If Tell = 1 Then Me.Picture = LoadPicture("C:\Img2jpg")

 

Fatte?

Endret av aadnk
Lenke til kommentar

ja! Så den random, kan man sette uendelig mange bilder under eller bare 0-9 eller noe sånt? kan man sette andre koder der som for eksempel text1.text = "bla bla" o.l.?

 

Edit: hvordan lage en serial-greie som gir et tilfeldig x anntal siffer tall?

Endret av jonas22282460
Lenke til kommentar

Jo, man kan sette uendelig mangen bilder under (hvis man har så mangen da).

 

Dim Tell%

 

Randomize Timer ' Ungår at tilfeldighetsgeneratoren genererer de samme tallene

Tell = Rnd * 3

 

If Tell = 0 Then Me.Picture = LoadPicture("C:\Img1.jpg")

If Tell = 1 Then Me.Picture = LoadPicture("C:\Img2.jpg")

If Tell = 2 Then Me.Picture = LoadPicture("C:\Img3.jpg")

If Tell = 3 Then Me.Picture = LoadPicture("C:\Img4.jpg")

[code]

 

Ser du? Når man ganger RND med 3 vil maxium tallet være 3. Ganger man med 1000 vil dette være maxium tallet. Dette er fordi RND returnerer et tilfeldig tall mellom 0-1. Man kan sette andre koder og.

 

Så kan du sikkert lett lage serial koden selv.

Lenke til kommentar

Går det ann å sette til et minimums tall? Men hvordan skal jeg fortelle tekst boksen hva den skal stå inni? text1.text= "& rnd &" ?

 

Edit: jeg klarte det!!! wee!! Men hvorfor kan jeg ikke ha * 9999? kan jeg sette sån minimum 111 og maks 999?

 

Edit2:

Jeg trodde jeg måtte plusse sammen flere "tellere" for så å legge dem i en tekst boks, men det funka heller ikke:

 

Private Sub Command1_Click()
Dim tell%

Randomize Timer
tell = Rnd * 999

Dim tell2%

Randomize Timer
tell2 = Rnd * 999


Dim Sum%

Sum% = tell% & tell2%


Text1.Text = Sum%

End Sub

Får bare overflow der også.. hvordan kan jeg lage en som "tåler" fra 5-20? siffer?

 

Edit: ser ut som jeg kan kan plusse sammen to og to siffer.. hvorfor det?

Endret av jonas22282460
Lenke til kommentar
  • 2 uker senere...

Du trenger ikke gi Timer som parameter til Randomize.

 

Tenk også på at Rnd returnerer en single(flyttall,desimaltall) mellom 0 og 1. Det er ikke gitt ut fra kodeeksempelet, særlig idet du ikke bryr deg om å konvertere den.

 

Det er nok også riktig å si at man ikke bør bruke f.eks % for å indikere en variabels datatype i VB (type-declaration characters), da dette er med i språket kun for å oppnå bakoverkompatibilitet med Basic.

Lenke til kommentar

Nei jeg vet at du ikke trenger å gi Timer som paramentre i Randomize, men det er bare for å oppnå litt mer tilfeldighet (regner med at det er en pseudo-tilfeldighetsgenerator).

 

Og ja, jeg vet at RND returnerer ett tall mellom 0 og 1, men jeg regnet med at eksemplet mitt viste det. Jeg kunne sikkert ha lagt til en funksjon som f.eks:

 

Tell = CLng(111 + (Rnd * 888)) eller Tell = Val(111 + (Rnd * 888))

 

men det er nettopp derfor jeg definerte en variabel i DIM-en (noe man egentlig alltid skal). LONG og INTEGER (%) datatypene kan kunn vise heltall og Visual Basic konverterer automatisk.

 

Akkurat det med å bruke prefixen % i DIM syntaxen er en vane fra fortiden - jeg har skrevet litt i QBASIC. Jeg synes likevel det ikke gjør så mye, siden de fleste finner ut hva det er når de ser litt nærmere på det.

Endret av aadnk
Lenke til kommentar

Jeg skjønte hvorfor du ga Timer som parameter, men det er ikke nødvendig. (Randomize er ikke PRNG-en, dens eneste oppgave er å gi PRNG-en en seed).

Randomize Timer gir altså PRNG-en Timer som seed, mens Randomize uten parametre gjør akkurat det samme!!

 

I koden ovenfor er det faktisk enklere å bare sløyfe Randomize helt. Hvis du vil ha "mer tilfeldighet" kan du bare kalle Rnd(Timer) i stedet.

 

Jeg ser du har programmert i Basic utfra hjemmesida di. Hvertfall det "skylder" programmet er smekkfullt av Goto og andre morsomheter :roll:

Endret av novcius
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...