Du laver et array eller collection af strings som indeholder navnene og så trækker du et tilfældigt heltal 0..antal-1 eller 1..antal og bruger det som index ind i listen.
Et program kan gøre noget nær hvadsomhelst. Og det kan programmører også.
MEN
Den der ønsker et program har det hårdt. Han skal nemlig fortælle præsist og udførligt hvad det program skal gøre. Og det er vi mennesker ikke vant til at skulle. Normalt giver vi blot vage og tvetydige retningsliner, og stoler så på at den person vi snakker med deler så meget af vores syn på verden, og forstår den på præcis samme måde som vi.
Det passer sjældent. Har du hørt om DORA ? Og 117 andre store dyre programmer der aldrig kom til at virke ordentligt ? Det er ikke så let at beskrive et program som det er at ønske et resultat. Slet ikke.
Nå men hvis jeg gætter en hel masse kunne det blive til nedenstående JavaScript program:
-------------- fil 1: Navnene. filen hedder "navne.js" ---------------- <!-- hvert navn skal stå på een linie. <- Forrest i linien skal der stå " (citationstegn) og bagerst i linien <- skal der også stå " efter fulgt af et komma. <- Den allerførste linie skal være: <- navneListe = new Array( <- Den allersidste line skal være: <- ""); <- Indimellem første og sidst linie skriver du så alle navnelinierne <- "Adam Godsson", <- "Eva Mansrib", <- "Jesper fårekylling", <- osv, osv, osv. --> var navneListe = new Array( "Adam Godsson", "Eva Mansrib", "Jesper fårekylling", "Ronny W. Bang", "Arne V.", "Jakob A.", ""); -------------- fil 1: slut ----------------
Hvis du cut&paster det der står under linien -------------- fil 1: Navnene. filen hedder "navne.js" ---------------- og ned til linien -------------- fil 1: slut ---------------- (Bemærk: de to ------... linier skal IKKE med.) over i din computers indbyggede .txt editor (den hedder notepad.exe, og kommer automatisk med alle versioner af windows. brug evt søg funktionen for at finde den) og så derefter vælger "gem som ..." i "file" menuen kan du gemme den på din computer. (husk at filen skal have navnet "navne.js")
Den anden fil du skal have lavet er en HTML side med et lille JavaScript program:
if (!navneListe) { alert( "der er noget galt med filen 'navne.js'.\r\nProgrammet afslutter uden resultat." ); } else { antalNavne = navneListe.length - 1; do { antalPuljer = prompt( "Hvor mange puljer skal der være ?" ); antalPuljer = parseInt( antalPuljer, 10 ); if (antal-puljer <= 1) { alert( "Der skal indtastes et tal større end 1\r\nPrøv igen" ); } while (antal-puljer <= 1); if (2*antalNavne < antalPuljer) { alert( "så mange puljer kan du ikke lave med kun " +antalNavne +"navne.\r\nProgrammet afslutter uden resultat." ); } else { var puljer = new Array(); for (i=0; i<antalPuljer; i++) { puljer[i] = new Array(); } i = 0; j = 0; while ( antalNavne>0 ) { puljer[i][j] = udtrekNavn() if ( ++i >= antalPuljer ) { i = 0; j++; } } for (i=1; i<=antalPuljer; i++) { document.writeln( "Pulje " +i +" består af:" ); for (j=1; j<=pulje[i-1].length; j++) { document.writeln( j +pulje[i-1][j-1] ); } document.writeln(); } } }
function udtrekNavn() { valgt = Math.floor( antalNavne * Math.random() ); var temp = navneListe[ valgt ]; navneListe[ valgt ] = navneListe[ --antalNavne ]; return temp; } //end udtrekNavn () -> string;
</script>
<p>Ovenfor skulle der nu stå den ønskede puljefordeling. cut&paste den over i Word eller en anden editor, så du kan udskrive den pænt. </body> </html> -------------- fil 2: slut ----------------
Ligesom før gemmer du alt efter første og før anden -----... linie. vigtigt! de to filer skal gemmes i samme mappe
og nu kan du så gå ind i den mappe og klikke på filen puljer.html, så åbner din browser og udskriver puljer dannet udfra din liste.
Ups. jeg glemte at HTML skriver alt i een lang linie hvs ikke man selv sørger for at skifte linie. Så den sidste for løkke i programmet skal ændres til
for (i=1; i<=antalPuljer; i++) { document.writeln( "Pulje " +i +" består af:<br>" ); for (j=1; j<=pulje[i-1].length; j++) { document.writeln( j +": " +pulje[i-1][j-1] +"<br>" ); } document.writeln(); }
jeg får kun denne linie : Ovenfor skulle der nu stå den ønskede puljefordeling. cut&paste den over i Word eller en anden editor, så du kan udskrive den pænt.
har det noget at gøre med den linie der skulle byttes ud at gøre , jeg syntes det ser rigtigt nok ud, det jeg har lavet ?
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.