Stig Jøran Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 Hvordan kan man få ut et random tall mellom feks 0 og 10, uten så mye kode? Det jeg bruker nå er en tekstboks og en timer som teller fra 0 til 10 og om igjen. Også trykker jeg på en knapp så tar den det tallet som er i tekstboksen akkurat da. En veldig tung måte å få et random tall på Lenke til kommentar
Jonas Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 (endret) Du bruker Rnd()-funksjonen, som returnerer en verdi mellom 0 og 1. Først lager du et nytt "seed": Randomize Timer Så kan du hente ut et tall: Dim sTall As Long sTall = Rnd * 10 Edit: Long er en datatype som ikke støtter desimaltall. Den kan brukes til mye, bla. ta bort desimaltall som du gjør her. Endret 2. mars 2005 av Jonas Lenke til kommentar
aadnk Skrevet 2. mars 2005 Del Skrevet 2. mars 2005 (endret) Dersom du eksempelvis ønsker å finne et tilfeldig tall innenfor et visst område, kan du også bruke følgende funksjon: Public Function RandomNumber(lngBegin As Double, lngEnd As Double) As Double Randomize RandomNumber = lngBegin + (Rnd * (abs(lngEnd - lngbegin) - 1)) End Function For å finne et tilfeldig tall mellom 50 og 100, gjør følgende: MsgBox RandomNumber(50, 100) Et tilfeldig tall mellom 0 og 10 kan finnes ut likeledes: MsgBox RandomNumber(0, 10) For å returnere kun helttall, kan du benytte funksjonene Int, Fix eller CLng: MsgBox "Gir kun heltall uten avrunding: " & Int(RandomNumber(50, 100)) MsgBox "Gir kun heltall uten avrunding: " & Fix(RandomNumber(50, 100)) MsgBox "Gir heltall med avrunding: " & CLng(RandomNumber(50, 100)) Endret 6. mars 2005 av aadnk Lenke til kommentar
d0ppler Skrevet 6. mars 2005 Del Skrevet 6. mars 2005 .... Public Function RandomNumber(lngBegin As Double, lngEnd As Double) As Double Randomize RandomNumber = lngBegin + (Rnd * (lngEnd - 1)) End Function .... For å finne et tilfeldig tall mellom 50 og 100, gjør følgende: MsgBox RandomNumber(50, 100) ..... feil, denne vil returnere et tall mellom 50 - 150 du må gange Rnd() med absolutt verdien av differansen mellom lngBegin og lngEnd hvis du vil at den skal funke som du mener. som dette : Public Function RandomNumber(lngBegin As Double, lngEnd As Double) As Double Randomize RandomNumber = lngBegin + (Rnd * (abs(lngEnd - lngbegin) - 1)) End Function aadnk : vi bør fortsette med evovEd-editoren snart.. Lenke til kommentar
aadnk Skrevet 6. mars 2005 Del Skrevet 6. mars 2005 du må gange Rnd() med absolutt verdien av differansen mellom lngBegin og lngEnd hvis du vil at den skal funke som du mener. Oisann, der gikk det litt fort i svingene. Du har selvsagt rett, det er differansen som skal benyttes. aadnk : vi bør fortsette med evovEd-editoren snart.. Jepp, det er nokså lenge siden sist. Kanske jeg kan ta kontakt med deg senere i dag. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå