Avatar billede mega-hawk Nybegynder
17. oktober 2010 - 12:05 Der er 10 kommentarer og
1 løsning

korteste form a rnd og randomize?

Hej.

Sådan helt kort i en konsol app for en begynder.
Hvordan virker randomize og rnd
Efter hvad jeg kan forstå i min bog skal man bare skrive randomize for den skal bare være der og så rnd er den som faktisk blander tallene.

Dette eks virker ikke for mig så hvordan skulle den se ud hvis det skulle virke?

    Sub Main()
        Dim a As Integer
        Randomize()
        a = Int(10 * Rnd())
        Console.WriteLine(a)
        Console.ReadLine()
    End Sub

Altså jeg laver min variable a som integer, starter min randomize og sætter a = int fordi det er tal og så * 10 så den burde finde et tilfældig tal mellem 0 og 10 og skrive det på en linje.

Helt misforstået eller?
Avatar billede nissen2630 Novice
17. oktober 2010 - 12:27 #1
Du har ret..og eksemplet virker da også ganske fint
Avatar billede mega-hawk Nybegynder
17. oktober 2010 - 12:37 #2
kan du få dette eksempel til at virke?
Det kan jeg ikke.
Den prokker sig:
Option strict on disallows implicit conversions from "single" to "integer"
Avatar billede nissen2630 Novice
17. oktober 2010 - 12:49 #3
Testede det lige hos mig med VB express 2008. Det virker fint

Kan da ikke se hvorfor den skulle komme med den fejl..Der kan jeg ikke hjælpe
Avatar billede mega-hawk Nybegynder
17. oktober 2010 - 12:52 #4
kører vb express 2010 og nej jeg ved heller ikke hvad der er galt med den :o/

Men et eller andet sted glædeligt at det teoretisk set er rigtig hvad jeg siger ;o)
Avatar billede erikjacobsen Ekspert
17. oktober 2010 - 13:11 #5
a = CInt(10 * Rnd())
Avatar billede mega-hawk Nybegynder
17. oktober 2010 - 13:15 #6
hm det virker... Men hvorfor CInt?
Avatar billede erikjacobsen Ekspert
17. oktober 2010 - 13:20 #7
Laver et kommatal om til et heltal.
Avatar billede mega-hawk Nybegynder
17. oktober 2010 - 13:26 #8
nå ok. ja ja jeg forstår det nok en gang når jeg har arbejdet lang tid nok med det ;o)

Any way smid et svar så får du points og tak for hjælpen
Avatar billede erikjacobsen Ekspert
17. oktober 2010 - 13:32 #9
Jeg samler slet ikke på point, tak.

Den funktion du anvender, Int, tager et kommatal, og afleverer et kommatal, hvor kun heltalsdelen er tilbage. Alt efter kommaet er fjernet. Men det er stadig et kommatal, og kan ikke umiddelbart sættes ind i en heltals variabel.

CInt gør forsåvidt det samme, men resultatet afleveres som et heltal.
Avatar billede mega-hawk Nybegynder
17. oktober 2010 - 13:41 #10
javel ja.

Så lærte jeg jo endnu en gang noget nyt he he ;o)

Det er faktisk ret sjovt at arbejde med vb når man først begynder at forstå lidt af det så man kan komme igang.

Ja men så lukker jeg da bare spørgsmålet her og siger 1000 tak for din hjælp + forklaring.

Fortsat god weekend
Avatar billede arne_v Ekspert
17. oktober 2010 - 15:54 #11
Sub Main()
        Dim a As Integer
        Randomize()
        a = CInt(10 * Rnd())
        Console.WriteLine(a)
        Console.ReadLine()
    End Sub

ville jeg lave som:

    Private Shared rng As Random = New Random
    Sub Main()
        Dim a As Integer
        a = rng.Next(0, 10)
        Console.WriteLine(a)
        Console.ReadLine()
    End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester