<%@language="vbscript"%>
<%
Set sID = Server.CreateObject("Scripting.Dictionary") 'initiera "kolla-om-numret-finns-funktion"
dim tal(20) 'skapa array innehållandes XX strängar
dim upperbound, lowerbound,exist
lowerbound = 1 'ange nedre slumpgräns
upperbound = 50 'ange övre slumpgräns
'skriver ut slumpspecifikationen
response.write "Slumpspecifikationer:
"
response.write "Antal tal i array: " & UBound(tal) & "
"
response.write "Nedre gräns: " & lowerbound & "
"
response.write "Övre gräns: " & upperbound & "
"
randomize 'initiera slumpningen
response.write "Presentera resultat av slumpning:
"
for a = 0 to (UBound(tal) - 1)
exist=true 'ta för givet att talet redan finns
tal(a) = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 'slumpa tal enl spec
str = "" & tal(a) 'anger hashsträng
response.write tal(a) 'skriv ut det utslumpade numret
do until exist=false 'loppa tills det säkerthetsställs att numret inte redan används
If sID.exists(str) Then 'kolla om numret redan finns - finns det, gör om random-proceduren
response.write " finns redan - slumpar nytt: "
tal(a) = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 'slumpa nytt tal enl spec
str = "" & tal(a) 'anger hashsträng
response.write tal(a) 'skriv ut det utslumpade numret
else 'om det inte finns
sID.add str, "bla" 'lägg till i hashmappen på de utslumpade
exist=false 'ange variabel för att kunna lämna loopen
end if
loop
response.write "
"
next
response.write "
"
'Sortera numrerna...
response.write "Presentera resultat efter sortering:"
dim i, j, aux ' skapa variablar för sortering
For i = 0 To UBound(tal)
For j = 0 To UBound(tal)
If (tal(i) < tal(j)) Then
aux = tal(j)
tal(j) = tal(i)
tal(i) = aux
End If
Next
Next
'...och skriv ut de färdigsorterade numrerna
for a = 0 to (UBound(tal))
response.write tal(a)
response.write "
"
next
'slut!
%>