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

Slucajno biranje brojeva

[es] :: Visual Basic 6 :: Slucajno biranje brojeva

[ Pregleda: 2782 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dacex
ucenik

Član broj: 171043
Poruke: 65
*.eunet.yu.



Profil

icon Slucajno biranje brojeva08.04.2008. u 17:46 - pre 195 meseci
Pozdrav svima!!

Naime pravim jedan test iz informatike i u njemu ima ~50 pitanja i sad nasao sam ovde na forumu ovo
Code:
elect Case Int(Rnd * 100) + 1
za slucajno biranje pitanja. Ali ovaj kod ima nedostatak sto cesto ponavlja pitanja koja su vec bila . Dali postoji neko drugo resenje da se ovo uradi??

Hvala unapred!
 
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: Slucajno biranje brojeva08.04.2008. u 18:23 - pre 195 meseci
postoji naravno, ovako nesto:
Code:

Dim question(1 to 500) As Long   '  500 ti je broj pitanja, ti upisi koji tebi treba
Dim currentQuestion As Long

Sub InitQuestions
  Dim i As Long
  
  Randomize Timer
  
  For i = lBound(question) to UBound(question)
     question(i) = i
  Next
  
End Sub

Function Random(min As Long, max As Long) As Long
  Random = Int(Rnd * (max - min + 1)) + min
End Function

Sub RandomizeQuestions
 
  Dim i As Long
  Dim k As Long
  dim t As Long

  For i = lBound(question) To UBound(question)
    k = Random(LBound(question), UBound(question))
    t = question(k)
    question(k) = question(i)
    question(i) = t
  Next

End Sub

Sub Form_Load
    
    InitQuestions  ' ovo pozoves na pocetku programa

    ' a ovo tamo gde hoces da promesas pitanja (moze u Form_Load)
    RandomizeQuestions
    currentQuestion = 1  ' prvo pitanje
  
End Sub

Sub Command1_Click  ' recimo da ti se klikom na COmmand1 dugme prelazi na sledece pitanje

   If currentQuestion = UBound(question) Then ' nema vise pitanje
      ' ovde mozes da kazes da je dosao do kraja (posto nema vise pitanja) a mozes da krenes ispocetka (kao sto sam ja uradio)
      RandomizeQuestions ' ponovo mesas pitanja
      currentQuestion = 1 
   Else
      currentQuestion = currentQuestion + 1
   End If

End Sub


i tamo gde ucitavas pitanja, tj tamo gde ih prikazujes umesto
Code:

Select Case Int(Rnd * 100) + 1


koristi
Code:

Select Case currentQuestion


na ovaj nacin ti se pitanja nece ponavljati uopste, tek kad se sva "istrose"
 
Odgovor na temu

Dacex
ucenik

Član broj: 171043
Poruke: 65
*.eunet.yu.



Profil

icon Re: Slucajno biranje brojeva08.04.2008. u 22:40 - pre 195 meseci
Hvala ovo radi :-) ali je problem sto sada pitanja idu redom neidu "spontano" jel bi se to dalo nekako urediti?
 
Odgovor na temu

rgdrajko
Beograd

Član broj: 117734
Poruke: 710
80.93.249.*



+3 Profil

icon Re: Slucajno biranje brojeva09.04.2008. u 00:28 - pre 195 meseci
Kako. Pa program odlicno radi.
Ako se doda kod:
Code:
Private Sub Command1_Click()
    Dim n As Integer
    Open "Redni brojevi pitanja.txt" For Output As #1
        For n = 1 To UBound(question)
            List1.AddItem question(n)
            Print #1, question(n) & ",";
        Next n
    Close #1
End Sub


Dobija se:
Code:
376,268,29,200,374,174,71,97,18,112,23,357,8,51,419,161,348,283,202,339,101,117,37,108,276,182,402,432,190,201,485,9,150,86,248,257,199,351,58,197,128,294,17,492,437,68,362,312,160,151,366,132,332,7,124,183,217,346,238,256,78,482,91,367,424,247,195,393,498,179,119,386,301,299,102,253,6,334,404,388,94,264,421,434,244,105,110,489,3,136,192,223,145,457,221,316,87,290,481,319,278,379,340,54,55,76,449,111,127,327,133,154,298,343,203,292,410,240,465,159,370,363,267,88,460,381,134,269,11,286,375,305,466,441,280,147,279,226,67,186,302,155,406,34,488,143,403,181,191,236,65,265,85,141,164,273,241,25,361,114,148,75,89,50,289,138,113,232,444,237,417,171,349,230,352,313,284,323,21,139,5,281,416,167,239,272,208,333,397,1,63,49,408,79,474,175,57,430,358,53,198,330,443,435,394,218,59,219,66,314,166,461,493,254,398,216,14,156,123,365,405,2,40,271,213,225,384,46,304,120,266,36,325,483,116,467,445,329,347,287,336,107,296,73,131,372,261,24,255,390,72,383,322,378,163,451,262,212,389,99,308,297,206,204,359,415,345,309,429,438,291,380,234,344,439,475,486,411,100,246,82,173,413,95,295,26,214,448,495,185,220,69,28,433,252,20,355,30,472,115,409,178,162,293,354,74,153,480,500,47,142,391,326,196,98,61,342,331,106,442,458,130,45,395,188,456,414,56,496,243,31,77,35,484,129,84,157,446,440,490,364,125,251,109,250,83,149,321,193,13,422,317,356,452,324,338,104,270,16,103,353,425,224,431,222,259,499,311,275,118,369,4,320,318,205,52,462,274,350,12,282,450,476,412,471,373,140,468,165,177,81,401,310,187,426,144,494,33,459,158,92,245,454,39,335,377,328,189,62,64,235,146,41,43,303,420,277,487,306,227,497,93,371,38,176,479,172,263,399,418,135,27,341,169,469,285,464,455,231,436,307,121,385,126,60,382,137,463,447,407,428,392,210,207,96,260,368,288,209,15,19,32,70,152,337,228,423,470,211,360,400,229,90,427,478,10,44,242,315,48,453,473,22,396,300,184,387,194,168,491,122,233,80,249,42,180,258,170,215,477,


Kako ne idu pitanja "spontano"? Objasni.
rgdrajko
 
Odgovor na temu

Dacex
ucenik

Član broj: 171043
Poruke: 65
*.eunet.yu.



Profil

icon Re: Slucajno biranje brojeva09.04.2008. u 22:28 - pre 195 meseci
Radi :-) ma ja nisam nesto bio dobro upisao, hvala svima!!
 
Odgovor na temu

[es] :: Visual Basic 6 :: Slucajno biranje brojeva

[ Pregleda: 2782 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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