Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Slumpgenerator

Postades av 2005-12-08 18:54:57 - Joakim Månsson, i forum visual basic - allmänt, Tråden har 9 Kommentarer och lästs av 4944 personer

Hej.
Efter ett lååångt uppehåll (5 år) från programering är jag ringrostigt på G igen. Skönt.
Mitt problem:
Jobbar med att bygga in en slumpgenerator i ett VB projekt. Jag vill att den ska slumpa 15 olika tal som bara ska representeras en gång var.
Någon som har något tips?
Vidare undrar jag:
Om jag namnger t.ex. några label till lbl1, lbl2, lbl3, lbl4, osv..., är det då möjligt att "ropa" på en specifik label genom att ange lbl och sedan en varabel med värdet, t.ex. 2. Alltså lbl(varabelvärdet).

/Joakim


Svara

Sv: Slumpgenerator

Postades av 2005-12-08 19:49:18 - Thomas Roman

För att komma åt dina labels via ett nummer så skapar du först en som heter lbl. Sen kopierar du upp den i valfritt antal och kommer ihåg att svara ja på frågan om ett index ska skapas. Då heter den första lbl(0), den andra lbl(1), den tredje lbl(2) osv.


Thomas


Svara

Sv:Slumpgenerator

Postades av 2005-12-09 09:33:45 - Lennart Danielsson

Som Thomas säger ovan
här kommer ett litet förslag

Dim i As Long, num As Long, n As Long
Dim LottoArray(35) As Long
' du kan byta namn på detta till vad du vill

'************************ slumpar nummer 7 - 12
i = 1
Do Until i > NumSize '7
Label14.Visible = True
num = Int(Rnd * 35) + 1'till vilket antal du vill
If LottoArray(num) = False Then
LottoArray(num) = True

DoEvents
i = i + 1
Sleep 1000
End If

Loop
n = 1
For i = 1 To 35
If LottoArray(i) <> 0 Then
Text2(n).Text = CStr(i)' byt ut text2 till ditt val
n = n + 1
End If
Next

denna rutinen använder jag och det sorterar dragna nummer i fallande ordning

danlenn


Svara

Sv: Slumpgenerator

Postades av 2005-12-09 09:53:24 - Joakim Månsson

Tack ska ni ha. Då har jag lite att jobba med.
/Joakim


Svara

Sv:Slumpgenerator

Postades av 2005-12-09 16:56:36 - Sven Åke Persson

Lär dig skriva på Pelle:s vis med kode och /kode i början och slutet.
Det är så apptitligt att läsa när man använder Pelles
<code>
Dim i As Long, num As Long, n As Long
Dim LottoArray(35) As Long
' du kan byta namn på detta till vad du vill

'************************ slumpar nummer 7 - 12
i = 1
Do Until i > NumSize '7
Label14.Visible = True
num = Int(Rnd * 35) + 1'till vilket antal du vill
If LottoArray(num) = False Then
LottoArray(num) = True

DoEvents
i = i + 1
Sleep 1000
End If

Loop
n = 1
For i = 1 To 35
If LottoArray(i) <> 0 Then
Text2(n).Text = CStr(i)' byt ut text2 till ditt val
n = n + 1
End If
Next
End Sub
</code>
Fö var det snygg kod.


Svara

Sv: Slumpgenerator

Postades av 2005-12-11 02:43:33 - Johan Forsberg

Om jag har förstått frågan rätt så vill du slumpa n antal unika nummer?
Om det är detta du vill finns en metod jag brukar använda.

Skapa en array där element i = i (Alltså typ {1,2,3,4,5} et.c.
Slumpa mellan 1 och intMax (I detta exempel 5).
Ersätt element[intMax] med slumptalet och element[slumptalet] med intMax. (Temporär variabel).
Dekrementera intMax.
Upprepa processen tills intMax = 1.

Jag började funera hur jag löste ett sånt problem du har förut och så började jag skriva.
Det är kul att komma på gamla metoder man en gång använt!

Koden är i C, men bör inte vara så svår att översätta. Om du vill kan säkert någon som orkar "översätta" den, annars gör jag det:

<code>
#include <stdio.h>
#include <stdlib.h>

void main()
{
int i, slump[9] = {1,2,3,4,5,6,7,8,9};

for(i = 8; i > -1; i--)
{
int index, temp;

index = rand()%(i+1); //Detta är en slö-metod (men man slipper i alla fall divisionsspill)

temp = slump[i];
slump[i] = slump[index];
slump[index] = temp;
}

for(i=0; i < 9; i++)
printf("%d ",slump[i]);

getchar();
main();
}
</code>


Svara

Sv:Slumpgenerator

Postades av 2005-12-11 02:47:14 - Johan Forsberg

Koden är inte direkt snygg, och inte speciellt funktionell eftersom man inte kan avsluta programmet.
Men det är ju bara att lägga in ett villkor så.
Någon kanske vill skriva om den...?

Men algoritmen verkar i alla fall vara stabil.


Svara

Sv: Slumpgenerator

Postades av 2005-12-11 12:25:39 - Andreas Hillqvist

Public Function RandomNumbers(Min As Long, Max As Long, Count As Long) As Long()
Dim I As Long
Dim J As Long
Dim Numbers As Collection
ReDim Result(1 To Count) As Long
    Set Numbers = New Collection
    For I = Min To Max
        Numbers.Add I
    Next
    For I = 1 To Count
        J = Int(Rnd * Numbers.Count) + 1
        Result(I) = Numbers.Item(J)
        Numbers.Remove J
    Next
    RandomNumbers = Result
End Function

Sub TestRandom()
Dim I As Long
Dim Result() As Long
    Result = RandomNumbers(1, 35, 9)
    For I = 1 To 9
        Debug.Print Result(I)
    Next
End Sub


Svara

Sv: Slumpgenerator

Postades av 2005-12-13 14:40:43 - Joakim Månsson

Tack ska ni ha för all hjälp. Har nu tagit fram en prototyp till ett litet utbildningsprogram för mitt jobb.
Ta det lugnt i julstressen.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 722
27 958
271 751
416
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies