Tak for svaret, men det giver mig ikke mere at arbejde med end det oprindelige spørgsmål, så lad mig stille et par spørgsmål:
Med grupper mener du da:
- at nogle af de 30 kunder skal samles i en gruppe og nogle i en anden og nogle i en tredie, o.s.v. på samme måde som når man f.eks. trækker lod. Forstået på den måde at hvis du angiver f.eks. 5 grupper skal systemet tage 6 tilfældige kunder og placere i den 1. gruppe, derefter 6 i næste o.s.v.
- Skal alle kunder trækkes ud ?
- Skal der være lige mange i hver gruppe (hvis der kan). Hvis du f.eks. laver 4 grupper kan der være 8 i 2 af grupperne og 7 i de andre 2, eller vil du have 8 i 3 og de sidste 6 i den 4. gruppe ?
Og endeligt: Med en gruppe mener du vi virkeligheden en text-boks går jeg ud fra. En liste over de navne der er trukke ud og placeret i den pågældende gruppe, ikke ?
For ikke at lave programmet for dig vil jeg forklare dig hvordan du gør:
definer ag (antal grupper) som integer definer an (max antal navne) som integer definer tn (tilfældigt nummer) som integer definer gr som areal af text fra 1 til ag definer na (navne) som areal af text fra 1 til an definer i som integer (som loopkontrol) definet au (antal udtrukne) som integer
spørg om antal grupper spørg om antal navne
indlæs alle navne fra DB i arealet na
skriv kommandoen "Ramdomize" der vil starte tilfældigheds generatoren. (NB! Der er måske endda et eller andet sted i VB mulighed for at sætte noget der hedder "Random Seed" der skulle betyde at kommandoen Ramdomize starter fra den værdi er indtastes, og jeg plejer at bruge millisekundtallet på de pågældende tidspunkt)
sæt ua til 0
sålænge (while) au (antal udtrukne) <= (er mindre end eller lig med) an (antal navne) så
loop i fra 1 til ag sæt fundet til 0 fortsæt sæt tn = random(an) (hvis tn ikke er større end 0) OG (hvis na(tn) ikke er tom) så sæt gr(i) = gr(i) + na(tn) sæt na(tn) tom sæt fundet til 1 sæt au (antal udtrukne) til au +1 indtil (fundet = 1) loop end
herefter har du alle navne udtrukket og overført til na arealet.
for i fra 1 til ag (antal grupper) flyt na(i) til textboks(i).text
(Denne sidste del er lidt tricky. Du skal overføre de navne du har i arealet na til de tekstbokse du har oprettet på skærmen, skal du i programmet skabe dem svarende til det antal grupper du vælger, istedet for at skabe dem når du laver programmet)
Bemærk: hver gang du findet et tilfældigt tal fjerner du navnet fra na. derfor skal du fortsætte med at finde et tilfældigt tal indtil dette er større end 0 OG na(tn) ikke er tomt. Derved sikrer du at du ikke har brugt navnet før. Fordi Random(na) giver dig et tilfældigt tal mellem 0 og an (antal navne) men sagtens kan finde på at give dig det samme nummer som tidligere. Tilfældigt er tilfældigt og derfor kan samme nummer godt komme flere gange. Ved at checke på at du allerede har brugt nummeret, og fortsætte med at få et til du får et du ikke har brugt før, sikrer du at du kun bruger samme navn i en gruppe og at du til sidst får alle navne med.
Jeg håber at du forstår mit forslag, ellers må du lige sige til
sjensen
Synes godt om
Slettet bruger
14. marts 2000 - 15:58#7
det blev jeg ikke meget klogere af
Synes godt om
Ny brugerNybegynder
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.