Avatar billede ravnborg Nybegynder
06. august 2007 - 00:16 Der er 6 kommentarer og
1 løsning

lav forskellige tal

Jeg har brug for et script, der kan udtrække forskellige tal indenfor et interval.

F.eks. 5 forskellige tal mellem 0 og 200.

Da det er et script jeg kommet til at bruge flere gange, vil jeg gerne have det sådan, at man kan ændre antallet af tal samt intervallet.

Er der en der kan hjælpe.

mvh
Ravnborg
Avatar billede w13 Novice
06. august 2007 - 00:29 #1
Mener bare, det er:

intInterval=200
Response.Write Rnd()*intInterval

Og for at sikre tilfældige tal, bør du i toppen af din side skrive:
  Randomize

Men kun én gang på hver side, da tallene ellers, mærkeligt nok, bliver forudsigelige..
Avatar billede ravnborg Nybegynder
06. august 2007 - 01:01 #2
Det er ikke helt det jeg søger.

Der skal Laves 5 forskellige tal. Dvs hvis det første tal er 45, skal scriptet sikre at dette tal ikke kommer ud som et af de 4 andre.
Avatar billede thesurfer Nybegynder
06. august 2007 - 01:59 #3
<%
option explicit


function henttal(antal, minimum, maksimum, kun_heltal)

' Funktionen kaldes sådan her:
'
' returværdi = helttal(antal, minimumsværdi, maximumsværdi, kun_helttal)
'
' hvor:
'
'antal = antal af tal der skal returneres
'minimum = minimums værdi på de returnerede tal
'maksimum = maksimum værdi på de returnerede tal
'kun_heltal = angiver om den KUN må returere heltal, eller decimaltal/kommatal også er tilladt
'
' Husk:
' - at antallet af værdier der skal returneres, skal være større end "maksimum - minimum"
' - at maksimum skal være større end minimum
' - at funktionen altid returnerer et helttal, med mindre at man sender "false" med

dim samling
if antal <= maksimum - minimum and maksimum > minimum then

    dim i, tal
    randomize

    tal = ""
    samling = "#"
    do while i < antal
        tal = rnd * maksimum + minimum
        if kun_heltal <> false then tal = CInt(tal)
        if instr(samling, "#" & tal & "#") = 0 then
            i = i + 1
            samling = samling & tal & "#"
        end if
    loop
    if samling <> "#" then samling = mid(samling, 2, len(samling) -2 )
else
    samling = "FEJL i parameterene!<br>Antal skal være større end intervallet og maksimum skal være større end minimum!"
end if

henttal = samling
end function

' Eksempler på håndtering af returværdien:

' Udskriv strengen:
response.write "En enkel streng: " & henttal(5, 0, 200, true) & "<br><br>"

' Split værdierne op, og brug dem i en array med en loop
dim streng, arr, i

streng = henttal(5,0,200,true)

arr = split(streng, "#")

response.write "Fra en array:<br>"

for i = 0 to ubound(arr)
    response.write "Tal/plads " & i & ": " & arr(i) & "<br>"
next
%>
Avatar billede spradebassen Nybegynder
07. august 2007 - 01:38 #4
http://support.microsoft.com/kb/276494
Kort og godt kan det også gøres sådan.

<%@LANGUAGE=Python%>
<html>
<%
import random
def udtraek( Antal=5, Pulje=200 )
    Pose = [ x for x in range( 1, Pulje) ]
    random.shuffle( Pose ) # Ryst posen
    Response.write( ",".join( Pose[ : Antal ] )
    Response.write("<br />")

udtraek()
udtraek( Pulje=12 )
udtraek( Antal=25 )
udtraek( Antal=10 , Pulje=500 )
%>
</html>
Avatar billede spradebassen Nybegynder
07. august 2007 - 01:50 #5
Undskyld var lidt hurtig.
<%@LANGUAGE=Python%>
<html>
<%
import random
from pprint import pprint
def udtraek( Antal=5, Pulje=200 ):
    Pose = [ x for x in range( 1, Pulje) ]
    random.shuffle( Pose ) # Ryst posen
    Response.write( ",".join( map(str,Pose[ : Antal ] ) ) )
    Response.write("<br />")

udtraek()
udtraek( Pulje=12 )
udtraek( Antal=25 )
udtraek( Antal=10 , Pulje=500 )
%>
</html>
Output :
<html>
28,167,170,64,110
<br />
5,3,10,4,1
<br />
154,133,148,63,34,196,149,166,59,181,105,57,171,106,184,77,78,186,180,116,25,29,94,64,33
<br />468,176,149,10,223,362,484,71,327,294
<br />
</html>
Avatar billede thesurfer Nybegynder
07. august 2007 - 21:32 #6
Jeg var noget overrasket over kompressionen af Python koden, i forhold til VBScript-ASP koden..

Så jeg besluttede mig for at installere Python (fandt version 2.5.1 til Windows), for at kigge nærmere på det..

Da jeg fik gang i Python, kunne jeg få det til at virke, hvis det var en .py fil. Den accepterede ikke "<%@LANGUAGE=Python%>", og gav fejlen:

Fejltype:
Active Server Pages, ASP 0129 (0x80004005)
Scriptsproget 'Python' blev ikke fundet på serveren.
/python/test.asp, line 1

Koden til test.asp er den nedereste kode på http://support.microsoft.com/kb/276494


Da jeg kunne få Python koden fra 07/08-2007 01:50:51 til at virke, direkte i .py filen, besluttede jeg mig for at kigge nærmere på koden..

Når man ser på det, ser det lidt magisk ud.. få linier, masser af funktionalitet.. her bliver jeg så mistænksom, og nægter at tro det..

Så jeg kigger lidt på import-delen, som jo typisk importerer et eller andet namespace og funktionalitet..


Det viser sig, at magien ikke er magi, men almindelig programmering.. nemlig funktioner som returnerer typer/værdier..

Med andre ord:
Hvis man smider funktionen "henttal" i en separat fil, og inkluderer den (f.eks. <!-- #include file="navnet.asp" -->), og tilsidst bruger koden

Response.Write henttal(5,0,200,true)

vil man få samme funktionalitet/resultat som koden i 07/08-2007 01:50:51..



Efter at have "afsløret" tricket, kan jeg sige:

' VBScript i ASP er nemt, VBScript i ASP er sjovt

:-)


(Hvis man ikke forstod det sidste, plejer bauerdata at skriver "# python er nemt, python er sjovt.")

PS:
Hvis man ikke har forstået dette indlæg:

Python-koden gør bare brug af funktioner, som andre har programmeret og gjort tilgængeligt.
Funktionerne er delt op i filer, hvor filnavnet fortæller hvad filen indeholder.
Dvs., når man skriver "import random", så importerer den al indholdet af filen "random.py", som er på ialt 863 linier.
Jeg kan se, at spradebassen også importerer funktionen "pprint" fra filen "pprint.py".

Når jeg kigger på import og koden, vil jeg mene at Python koden vil bruge flere ressourcer end VBScript koden.

Jeg har dog ikke testet det, og har heller ikke værktøjerne til at teste det.

Så det må bare blive min påstand, baseret på de data jeg har fundet frem til, ved at se hvordan Python fungerer.
Avatar billede arne_v Ekspert
12. august 2007 - 01:22 #7
thesurfer>

Hvis du vil bruge Python i ASP sider og du installerer en standard Python skal
du lige smide http://python.net/crew/mhammond/win32/Downloads.html på først.

Og så forstår jeg ikke helt dine betragtninger omkring import. Funktionalitet kommer
jo aldrig ud af ingenting. Hvis ikke selv man skal kode noget så er det fordi nogle
andre har kodet det for en. Hvis ASP/Python har en et bedre random bibliotek end
ASP/VBScript, så er det vel en fordel.
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