Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

slucajni izbor brojeva uz uslov

[es] :: Visual Basic 6 :: slucajni izbor brojeva uz uslov

[ Pregleda: 5479 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zormar

Član broj: 129240
Poruke: 176
*.adsl.static.sezampro.yu.



Profil

icon slucajni izbor brojeva uz uslov07.05.2007. u 19:57 - pre 206 meseci
Kako napraviti slucajan izbor brojeva
Code:
for i=1 to 5
A(i)=int(rnd*10)+1 
next i
uz uslov da je zbir izabranih brojeva jednak broju upisanom u Textbox.
 
Odgovor na temu

dennycd2

Član broj: 127351
Poruke: 57
*.dynamic.sbb.co.yu.



Profil

icon Re: slucajni izbor brojeva uz uslov08.05.2007. u 17:30 - pre 206 meseci
Ne znam da li si ovo tražio, ali pogledaj može ti pomoći.

Code:

Option Explicit

Private Sub Command1_Click()
    
    Dim a(5) As Integer
    Dim i As Integer
    Dim b As Integer
    Dim x As Long

    x = 0
    
    If Val(Text1.Text) < 5 Or Val(Text1.Text) > 50 Then
        MsgBox "Izabrao si prevelik ili premali broj!", vbCritical
        Text1.Text = ""
        Text1.SetFocus
        Exit Sub
    End If
    
    Do
        Randomize
        b = 0
        x = x + 1
        For i = 1 To 5
            a(i) = Int(Rnd * 10) + 1
            b = b + a(i)
        Next i
        DoEvents
    Loop Until Val(Text1.Text) = b
    
    MsgBox "Zbir " & a(1) & "+" & a(2) & "+" & a(3) & "+" & a(4) & "+" & a(5) & " = " & b & " jednak je trazenom!" & vbCrLf & "Broj pokusaja: " & x, vbInformation
    Text1.Text = ""
    Text1.SetFocus
    
End Sub
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon Re: slucajni izbor brojeva uz uslov08.05.2007. u 20:17 - pre 206 meseci
@dennycd2, zahvaljujem ti za ovaj kod.
Nadam se da cu uspeti da ovo prilagodim svojim potrebama.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: slucajni izbor brojeva uz uslov08.05.2007. u 21:43 - pre 206 meseci
mozda ovako nekako (pisem kod iz glave, tako da su mozda potrebne neke modifikacije da bi proradio):
Code:

Function RandomZbir(sabiraka As Long, zbir As Long) As Long()
  
   Dim sabirak() As Long, i As Long, z As Long, max As Long

   ReDim sabirak(1 to sabiraka)
  
   z = 0
   max = zbir \ 2

   For i = 1 To sabiraka - 1
       sabirak(i) = Int(Rnd * (max - 1)) + 1
       z = z + sabirak(i)
       max = (zbir - z) \ 2
   Next

   sabirak(sabiraka) = zbir - z

   RandomZbir = sabirak

End Function

' ovako koristis funkciju:
Private Sub Command1_Click()
   
   Dim sabirak() As Long, i As Long, s As String

   sabirak = RandomZbir(5, Val(Text1.Text))

   s = CStr(Val(Text1.Text)) & " = "
  
   for i = 1 to 5
     s = s & CStr(Sabirak(i))
     If i < 5 Then s = s & " + "
   Next

  MsgBox s

End Sub

Private Sub Form_Load()
   Randomize Timer ' ovo obavezno pozovi prilikom startovanja programa
End Sub

 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon Re: slucajni izbor brojeva uz uslov08.05.2007. u 22:47 - pre 206 meseci
Resio sam problem, jos jednom zahvaljujem obojici na pomoci.
Ako ne trazim previse zanima me kako bi ovo islo sa rasponom brojeva?
Znaci, da izbaci brojeve ciji je raspon izmedju najveceg i najmanjeg broja upisan u textboxu.
 
Odgovor na temu

dennycd2

Član broj: 127351
Poruke: 57
*.dynamic.sbb.co.yu.



Profil

icon Re: slucajni izbor brojeva uz uslov08.05.2007. u 23:06 - pre 206 meseci
@Aleksandar,Veoma mi se dopada tvoje resenje, ali pokusaj sa brojem 6 napr.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: slucajni izbor brojeva uz uslov10.05.2007. u 22:26 - pre 206 meseci
@dennycd2: u pravu si, nisam mislio na takve slucajeve. mada bi uz malo izmena i to moglo da se sredi, taj kod sam rekoh kucao iz glave, tj nisam ga testirao pre, ali vidi se ideja pa moze lako da se doradi da radi i u takvim situacijama...

@zormar:
za broj u rasponu od min do max koristi sledecu "formulu":
Code:

a = Int(Rnd * (max - min)) + min

 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl.sezampro.yu.



Profil

icon Re: slucajni izbor brojeva uz uslov15.05.2007. u 13:09 - pre 206 meseci
Na koji nacin iz niza 5,10,15,20,25,30,35,40,45,50 slucajnim izborom izdvojiti 3 broja?
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Re: slucajni izbor brojeva uz uslov15.05.2007. u 13:43 - pre 206 meseci
Pa slucajan broj od 1 do 10, pa to posle pomnozi sa 5.

slbroj = Int(Rnd * 10 + 1)*5
rgdrajko
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl.sezampro.yu.



Profil

icon Re: slucajni izbor brojeva uz uslov15.05.2007. u 18:13 - pre 206 meseci
@rgdrajko, hvala ti za ovo.
A kako se radi s nizom 1,6,11,16,21,26...?
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
89.216.220.*

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: slucajni izbor brojeva uz uslov15.05.2007. u 19:34 - pre 206 meseci
Slučajani broj od 0 do 10, pa pomnoži sa 5, pa dodaj 1
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: slucajni izbor brojeva uz uslov15.05.2007. u 20:42 - pre 206 meseci
A evo i opste resenje, za bilo koji niz i bilo koji broj slucajnih clanova tog niza. Za demonstraciju je potreban nov projekat sa jednom formom i jednim CommandButtonom pod imenom "Command1"
Code:

Option Explicit

Private Sub Command1_Click()
   Dim varTestNiz As Variant
   Dim bytBrojClanova As Byte
   Dim strOdgovor As String
   Dim strRezultat As String
   
   'Iniciranje niza (moze se naravno i preuzeti postojeci)
   varTestNiz = Array(1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56)
   
   'Trazi se od korisnika da upise broj clanova koji mu treba
   strOdgovor = InputBox("Upisite koliko zelite slucajnih brojeva:", "Upis broja", "3")
   
   'Proverava se da li je upisan broj izmedju 1 i 255, zbog byte tipa
   If Val(strOdgovor) < 1 Or Val(strOdgovor) > 255 Then
      MsgBox "Morate upisati broj izmedju 1 i 255", vbCritical, "Greska"
      Exit Sub
   End If
   
   'Konverzija upisanog teksta u byte tip
   bytBrojClanova = CByte(strOdgovor)
   
   'Poziv funkcije i spajanje clanova odvojenih zarezom u string
   strRezultat = Join(NizSlucajnihBrojeva(varTestNiz, bytBrojClanova), ", ")
   
   'Prikaz rezultata
   MsgBox "Dobili ste niz slucajnih brojeva: " & strRezultat, vbInformation, "Resenje"
   
End Sub

Public Function NizSlucajnihBrojeva(ByVal varPolazniNiz As Variant, ByVal bytTrazeniBrojClanova As Byte) As Variant
   Dim bytCounter As Byte
   Dim varRezultat As Variant
   Dim intUkupnoClanova As Integer
   
   'Dimenzionisanje niza brojeva koji ce biti rezultat funkcije (u trazenom primeru niz od 3 clana)
   ReDim varRezultat(bytTrazeniBrojClanova - 1)
   
   'Aktiviranje generatora slucajnih brojeva
   Randomize
   
   'Odredjivanje broja clanova niza iz kog se uzimaju brojevi po slucajnom izboru
   intUkupnoClanova = UBound(varPolazniNiz) + 1
   
   'Formiranje rezultujuceg niza u petlji trazeni broj puta
   For bytCounter = 0 To bytTrazeniBrojClanova - 1
      varRezultat(bytCounter) = varPolazniNiz(Int(Rnd * intUkupnoClanova))
   Next
   
   'Prosledjivanje konacnog rezultata funkciji
   NizSlucajnihBrojeva = varRezultat
   
End Function



[Ovu poruku je menjao goranvuc dana 15.05.2007. u 23:31 GMT+1]
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: slucajni izbor brojeva uz uslov16.05.2007. u 10:15 - pre 206 meseci
@Goran: sa ovakvim resenjem:
Code:

varRezultat(bytCounter) = varPolazniNiz(Int(Rnd * intUkupnoClanova))

moze da se dogodi da se jedan isti clan niza pojavi vise puta ( > 1) u rezultatu, ukoliko to nije pozeljno (znaci, ako treba samo jedanput da se pojavi bilo koji clan niza u rezultatu) onda bi funkcija trebala da se napise ovako:
Code:

Public Function NizSlucajnihBrojeva(ByVal varPolazniNiz As Variant, ByVal bytTrazeniBrojClanova As Byte) As Variant
   Dim lngCounter As Long
   Dim varRezultat As Variant
   Dim lngLBound As Long
   Dim lngUBound As Long
   Dim lngTemp As Long
   Dim varTemp As Variant
   
   'Dimenzionisanje niza brojeva koji ce biti rezultat funkcije (u trazenom primeru niz od 3 clana)
   ReDim varRezultat(bytTrazeniBrojClanova - 1)
   
   'Aktiviranje generatora slucajnih brojeva
   Randomize Timer  
   ' mada je moj savet da se Randomize pozove samo prilikom startovanja programa jer ako se
   ' poziva svaki put kada se pozove funkcija veca je mogucnost da se slucajni brojevi ponove
  
   ' zapamtimo donju i gornju granicu niza:
   lngLBound = LBound(varPolazniNiz)
   lngUBound = UBound(varPolazniNiz)

   ' "promesamo" polazni niz:
   For lngCounter = lngLBound To lngUBound
        lngTemp = Int(Rnd * (lngUBound - lngLBound)) + lngLBound
        varTemp = varPolazniNiz(lngCounter)
        varPolazniNiz(lngCounter) = varPolazniNiz(lngTemp)
        varPolazniNiz(lngTemp) = varTemp
   Next
   
   'Formiranje rezultujuceg niza u petlji trazeni broj puta
   For lngCounter = lngLBound To lngLBound + bytTrazeniBrojClanova - 1
      varRezultat(lngCounter) = varPolazniNiz(lngLBound + lngCounter)
   Next
   
   'Prosledjivanje konacnog rezultata funkciji
   NizSlucajnihBrojeva = varRezultat
   
End Function

 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
212.200.223.*



Profil

icon Re: slucajni izbor brojeva uz uslov16.05.2007. u 13:49 - pre 206 meseci
Zahvaljujem svima na pomoci, to je ono sto mi je trebalo.
 
Odgovor na temu

[es] :: Visual Basic 6 :: slucajni izbor brojeva uz uslov

[ Pregleda: 5479 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.