webForumDet fria alternativet

array

7 svar · 257 visningar · startad av firstchoice

firstchoiceMedlem sedan okt. 2001605 inlägg
#1

vad är fel?

<%

antal = 0
sum = 1

antal = cint(request.form("tal"))

for i = 0 to antal
falt(i) = array(i+1)
i = i + 1
next

i = 0
do while i < antal

sum = falt(i) * sum

loop

%>

<%
response.write sum
%>

------------------------------
vi antar att talet som kommer från formuläret är 5
då skall scriptet göra förljande uträkning:
1*2*3*4*5 och räkna ut det
skulle man skriva in 3
1*2*3

vad är fel i mitt script??

ViktorMedlem sedan aug. 20021 710 inlägg
#2

Ett fel är att du har "i=i+1" i din for loop, i en for loop så räknas i upp automatiskt.

Vad får du för felmedelande/vad är det som blir fel.

/Viktor

firstchoiceMedlem sedan okt. 2001605 inlägg
#3

detta fel fick jag

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'falt'
/skolan/do/uppgift1_rakna.asp

PallemanMedlem sedan dec. 2000465 inlägg
#4

Får man fråga vad det är du vill göra?

Gällande din do while-loop så ser det riktigt farligt ut... ;)
Du sätter först i=0, sedan kör du en loop som håller på tills antal är mindre än noll, men då värdet antal aldrig minskar i den loopen kommer den hålla på i all evighet, inte bra.

Utveckla lite om vad du vill göra så ska vi se om vi kan hjälpa dig. :)

ViktorMedlem sedan aug. 20021 710 inlägg
#5

Som Palleman säger så måste du flytta ner "i=i+1" till din "do while loop".
Har du deklarerat vad falt är för något i programmet? När du kör med Arrayer så tror jag att du måste deklarera dem och hur stora de ska vara.
Typ,

dim falt(1 to antal) as variant

(är ingen VB expert så det kan vara fel på koden!)

/Viktor

firstchoiceMedlem sedan okt. 2001605 inlägg
#6

så här

användaren skall kunna skriva in ett tal i ett formulär

sen skall programmet räkna ut fakuliteten av det talet
alltså om man skriver in 5

skall programmet ta
1*2*3*4*5 och räkna ihop det

skulle man skriva in 8 så skall programmet räkna ihop
1*2*3*4*5*6*7*8

och skriva ut talet

går det fixa?

ViktorMedlem sedan aug. 20021 710 inlägg
#7

Såhär kan man lösa det

<%
antal = 0
sum = 1
i = 0
antal = cint(request.form("tal"))
do while i < antal
  i=i+1
  sum = i * sum
loop
%>
<%
response.write sum
%>

/Viktor

firstchoiceMedlem sedan okt. 2001605 inlägg
#8

jaa!! :)

tack för hjälpen

så simpelt vad det, tydligen *ler*

ibland blir man blind!

/felix

Genererad på 382 ms · cache AV · v20260730165559-full.f96bc7eb