Avatar billede jsc Nybegynder
06. juni 2001 - 12:07 Der er 28 kommentarer og
2 løsninger

et tilfældigt tal...

Hej Eksperter.

Jeg har lige brug for en kode der kan generere tal, den skal kunne sætte et tal per 100 ms i en txt-fil (det er ligegyldigt hvilket tal). Denne proces skal stoppe når alle tal mellem 0-1 mia er brugt

På forhånd tak
/jsc
Avatar billede jper Nybegynder
06. juni 2001 - 12:25 #1
Hvis det er et filfældigt tal så kan det samme tal jo godt blive valgt flere gange, må det det?

Hvis det ikke må det så er det jo en tal række fra 1-1.000.000.000 i tilfældig rækkefølge du skal bruge.

Men vb har en funktion der hedder rnd, f.eks:

dim l as long
l = Int((1000000000 * Rnd) + 1) \'laver et tilfældigt tal mellem 1 og en mia.
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 12:27 #2
Det er nok en god ide at skrive Randomize inden du begynder at finde tallet.. Randomize tager nemlig og \"ryster posen med tal\".. Hvis du forstår  :)
Avatar billede jsc Nybegynder
06. juni 2001 - 12:29 #3
den må ikke komme med tal der er de samme lige forløbigt...

jeg skal altså bare sætte denne stump kode ind i en timer der skriver til filen?

/jsc
Avatar billede jsc Nybegynder
06. juni 2001 - 12:30 #4
-->minijensen
kan du komme med et eksempel?

/jsc
Avatar billede jsc Nybegynder
06. juni 2001 - 12:33 #5
--> jper, minijensen1
Jeg skal i øvrigt have alle tallene til at komme lige efter hinanden (altså kun med et ophold, ikke nylinie)

jeg ved ikke helt hvordan dette sættes sammen så kunne i ikke komme med hele koden?

/jsc
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 12:45 #6
Jeg ved ikke helt hvordan man checker om tallene er brugt. Hvordan skal det se ud i din tekstfil? Kan du ikke lige skrive det?!?
Avatar billede jsc Nybegynder
06. juni 2001 - 12:47 #7
f.eks:

1 59943 485873 3455 97 435436 455734

(altså en lang string)
Avatar billede jsc Nybegynder
06. juni 2001 - 12:50 #8
du kunne jo prøve og lave en kode uden koden kan se om tallet er brugt det er sikkert også fint nok...
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 12:50 #9
Jeg tror ikke at en string kan være så lang, men prøv med!

Dim strTal As String

Function MakeString()
  Randomize
  strTal = strTal & Int((1000000000 * Rnd) + 1) & \" \"
End Function

Den funktion bliver bare ved hele tiden..
Avatar billede jsc Nybegynder
06. juni 2001 - 12:52 #10
kunne du lave den sådan at den stopper eller også at jeg kan stoppe den manuelt?
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 12:57 #11
Dim strTal As String
Dim intCount As Integer

Function MakeString()
  For intCount = 1 To 100 Step 1
    Randomize
    strTal = strTal & Int((1000000000 * Rnd) + 1) & \" \"
  Next
End Function

Nu stopper den når den har lavet 100 tal..

Du skal selvfølgelig skrive Call MakeString for at starte den..
Avatar billede jsc Nybegynder
06. juni 2001 - 12:59 #12
så mangler jeg bare at den skriver til en txt-fil!
hvordan?
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:00 #13
Eller endnu bedre:

Function MakeString(intMax)
  For intCount = 1 To intMax Step 1
    Randomize
    strTal = strTal & Int((1000000000 * Rnd) + 1) & \" \"
  Next
End Function

Så kan du skrive Call MakeString(1000), så laver den det 1000 gange..
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:02 #14
Function MakeString(intMax)
  For intCount = 1 To intMax Step 1
    Randomize
    strTal = strTal & Int((1000000000 * Rnd) + 1) & \" \"
  Next
  Open \"c:\\minfil.txt\" FOR Output As #MyFile
    Write #MyFile, strTal
  Close #MyFile
End Function
Avatar billede jsc Nybegynder
06. juni 2001 - 13:09 #15
det ser godt ud... men hvorfor kommer der: \" i starten og i enden af stringen?
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:13 #16
Det ved jeg da godt nok ikke prøv med: strTal = strTal & Int((1000000000 * Rnd) + 1) & Space(1)
Avatar billede jsc Nybegynder
06. juni 2001 - 13:20 #17
det er der stadig... men der er fint nok...

jeg har et spørgsmål mere til dig og jeg vil gerne sætte flere point på hvis du er frisk...

jeg vil denne gang gerne have et program der står og skriver et tal mellem 0 og 9. Den skal skrive et tal hver 100 ms i textbox! Kan du klare det også?

/jsc
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:22 #18
Det kan jeg godt klare.
Skal tekstboxen
ryddes hver gang, eller skal det skrives ligesom før?
Avatar billede jsc Nybegynder
06. juni 2001 - 13:24 #19
der skal bare komme et nyt tal på stringen hver 100 ms...
Avatar billede jsc Nybegynder
06. juni 2001 - 13:26 #20
og så må man godt kunne stoppe denne proces med en knap!
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:28 #21
Du skal bruge:
Timer, Name=Timer, Interval=100, Enabled=False
Knap, Name=cmdStart, Caption=Start
Knap, Name=cmdStop, Caption=Stop

Sub Timer()  \'Jeg kan ikke lige huske hvilken event det er.
  text1.text = Int(10 * Rnd)
En Sub

Sub cmdStop_Click()
  Timer.Enabled = False  \'Tror jeg nok
End Sub

Sub cmdStart_Click()
  Timer.Enabled = True  \'Tror jeg nok
End Sub

Så skulle den vist være der..
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:34 #22
Ups, du skal selvfølgelig også bruge et textfelt, Name=text1.text, Text=(ingenting)
Avatar billede jsc Nybegynder
06. juni 2001 - 13:35 #23
det var vist ikke helt rigtigt, den skriver et tal også sletter det næste tal det første...
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:38 #24
Hovsa.. øøhh.
Uden mellemrum: text1.text = text1.text & Int(10 * Rnd)
Med mellemrum: text1.text = text1.text & Space(1) & Int(10 * Rnd)
Avatar billede jsc Nybegynder
06. juni 2001 - 13:41 #25
mange tak for hjælpen...

hvor mange point skal vi sige? Du får da ihvertfald 30 + ?

Hvad synes du er rimeligt?
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:43 #26
Jaa. Jeg ved ikke hvad der er rimmeligt, jeg har jo sådan set ikke lavet helt så meget, jeg kan sagtens nøjes med 30, men jeg synes da også at jper, skal have en sjat.. Det var hans svar jeg gik ud fra i starten..
Avatar billede jsc Nybegynder
06. juni 2001 - 13:45 #27
hmm - ok

jeg tror jeg vil give dig 40 og jper får 10

/jsc
Avatar billede minijensen1 Nybegynder
06. juni 2001 - 13:51 #28
hmmm. Hvad gik der galt??
Avatar billede jsc Nybegynder
06. juni 2001 - 14:12 #29
hmm je nu du siger det...
Avatar billede jsc Nybegynder
06. juni 2001 - 14:14 #30
jeg opretter et nyt spm. så kan du få din point...
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