Drachmar Skrevet 25. november 2009 Del Skrevet 25. november 2009 Hei. Har fått en case i programmering (i Visual Basic), hvor vi skal lage en glosetest, som inneholder 20 gloser og 4 språk. Vi har gått for radiobuttons, men videre i oppgaven står det at vi ikke skal la samme glose brukes om igjen, verken i spørsmål eller som svar alternativ. Læreren fortalte meg at jeg måtte lage en tabell med boolsk verdi for de glosene som var brukt, med en do løkke, og en if test som tilsa om det var nok ubrukte gloser til å fortsette prøven. Problemet er at den samme glosen dukker opp igjen på senere tester, og det hender og at det dukker opp doble svar alternativer. Hvordan skal løkken settes opp og unngå at samme glose kommer igjen, og dobbelt opp? Funksjonen for tabellen brukte gloser: Private Function finnledig() As Integer Dim tilfeldig As Integer Do tilfeldig = (Int(Rnd() * maxgloser)) + 1 Loop Until Not brukt(tilfeldig) finnledig = tilfeldig End Function Og her er prosedyren for glosen som kommer i spørsmålteksten: Private Sub startglose() Dim tilfeldig As Integer If ledigegloser > 5 Then tilfeldig = finnledig() glose1 = glose(tilfeldig, spraak1) radioButtonTabell(1) = glose(tilfeldig, spraak2) Else MsgBox("Brukt opp glosene") End If finnledig() End Sub Lenke til kommentar
Cerwell Skrevet 25. november 2009 Del Skrevet 25. november 2009 Har du en funksjon for å markere en glose som brukt? Lenke til kommentar
Drachmar Skrevet 25. november 2009 Forfatter Del Skrevet 25. november 2009 Vel, har egentlig kun de, og dimmet tabellen "brukt" som boolean. Er egentlig den biten som jeg sliter med, å få laget en funksjon for det, slik at programmet klarer å se at glosen er brukt. Skulle gjerne hatt noen tips for oppbygging, uten at jeg nødvendigvis får fasiten, vil jo helst prøve å lære meg dette også =) Lenke til kommentar
GeirGrusom Skrevet 25. november 2009 Del Skrevet 25. november 2009 Går det ikke an å ha en List med spørsmål/svar tuplet, og deretter ta ut verdiene etterhvert som er blir brukt? Da slipper du bool arrayet, og det blir en smal sak å velge tilfeldig (Random.Next(liste.Count)) Lenke til kommentar
MikkelRev Skrevet 26. november 2009 Del Skrevet 26. november 2009 Kan du ikke bare sette glosen til brukt rett etter at du har lagt den ut på formen? Brukt(tilfeldig) = true. Brukt() er fyllt opp med false'r fra før. Lenke til kommentar
Drachmar Skrevet 26. november 2009 Forfatter Del Skrevet 26. november 2009 Til geir, tenker du på en listeboks? For finner ikke liste funksjonen i Vb. Mikkel, hvor skal den brukt(tilfeldig)=true legges? For selv om legger den etter i funksjonen, eller på de andre plasseringene, så vises fortsatt glosen som har blitt brukt om igjen. Lenke til kommentar
Drachmar Skrevet 26. november 2009 Forfatter Del Skrevet 26. november 2009 Takker for hjelpen, en av de andre i gruppen hadde fått det til =). Lenke til kommentar
brgr Skrevet 26. november 2009 Del Skrevet 26. november 2009 Er greit om du poster løsningen du kom til slik at andre som støter på lignende problem kan få vite hvilken løsning du kom til. Lenke til kommentar
GeirGrusom Skrevet 26. november 2009 Del Skrevet 26. november 2009 (endret) Til geir, tenker du på en listeboks? For finner ikke liste funksjonen i Vb. Dim MyList As List(Of KeyValuePair(Of String, String)) for eksempel. Endret 26. november 2009 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå