Avatar billede Slettet bruger
10. januar 2000 - 09:01 Der er 6 kommentarer og
1 løsning

Tilfældige grupper fra DB

Hej..

Jeg har en database hvor der er et felt ID og et felt Navn.

Hvordan laver jeg et program som kan lave gruppeindeling ud fra disse. Det skal være random

Det skal være sådan man selv kan bestemme hvor mange grupper der skal være...

På forhånd tak..

-Anders T. Pedersen
Avatar billede sjensen Nybegynder
10. januar 2000 - 09:57 #1
Hvad er det for nogle grupper du tænker på ?

sjensen
Avatar billede ahl Nybegynder
10. januar 2000 - 15:09 #2
?
Avatar billede Slettet bruger
10. januar 2000 - 20:31 #3
Jeg har en database hvor der står 30 navne...

Så skal jeg lave en funktion som trækker den ud i tilfældige grupper...

Jeg skal selv kunne indtaste hvor mange.....

De skal skrives ud i text-boxe..

-BackSlash
Avatar billede sjensen Nybegynder
11. januar 2000 - 09:10 #4
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 ?

sjensen
Avatar billede Slettet bruger
11. januar 2000 - 21:15 #5
Spg 1.... yeps
Spg 2... ja
Spg 3 ligemange
Spg 4..Øhh... jeps...

Det er min klasseliste, som skal kunne deles op i tilfældige grupper...

til projektarbejde.. fx...

-backSlash
Avatar billede sjensen Nybegynder
12. januar 2000 - 11:47 #6
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

Avatar billede Slettet bruger
14. marts 2000 - 15:58 #7
det blev jeg ikke meget klogere af
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester