ok jeg skal lave en funktion der tager inputtet x og laver det om
til en værdi mellem FromPreset og TillPreset som også bliver
inputtet, funktionen virker bare virkeligt dårligt og virker
nogle gange og nogle gange ikke, tilsyneladende uden nogen form
for logik. kildekode nedenfor og eksempel i bunden:
Function ToPreset(x,FromPreset,TillPreset)
a=x
dif=Abs(TillPreset-FromPreset)
Do While a < FromPreset
a=(a+dif)
Loop
Do While a > TillPreset
a=(a-dif)
Loop
ToPreset=a
End Function
number = Request.Form("Number:")
fra = Request.Form("Fra:")
til = Request.Form("Til:")
response.write ToPreset(number,fra,til)
den fungerer således:
du inputter x, FromPreset og TillPreset
Hvis at x er mindre end FromPreset (mindste værdien den må være)
ligger den differensen mellem de to grænseværdier til x og
evaluerer det igen.
Hvis at x er større end TillPreset (max værdien den må være)
trækker den differensen mellem de to grænseværdier fra x og
evaluerer det igen.
efter de to løkker sætter den funktionsværdien til at være lig
med x
Hvis at x ikke er større eller mindre end grænseværdierne vil der
ikke blive gjort noget ved x da den ikke opfylder nogen af
betingelserne i løkkerne, og hvis at den opfylder en af løkkerne
vil løkken lave x om til et tal der ligger imelleM
grænseværdierne
eksempel:
x=10
FromPreset=50
TillPreset=100
a=10
dif=Abs(100-50) <=>
dif=50
Do While a < 50 (denne løkke eksekveres da 10 er mindre en 50)
a=(10+50) <=>
a=60
(da a nu ikke er mindre en 50 brydes løkken)
Loop
Do While a > 100 (Da 60 ikke er større end 100 eksekveres denne
løkke ikke)
a=(60-50)
Loop
( Funktionens værdi sættes til a som jo er 60)
ToPreset=a
End Function
Altså bør den skrive 60
Hvis man prøver scriptet kan man se at istedet for at skrive 60
sætter den sig fast i en eller anden løkke og fortsætter i al
uendelighed.
Jeg kan virkelig ikke se hvorfor. Er der nogle der kan forklare
det?
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials