webForumDet fria alternativet

array

ASP

7 svar · 259 visningar · startad av firstchoice

Medlem sedan okt. 2001615 inlägg
Frågan#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??

Medlem sedan aug. 20021 752 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

Medlem sedan okt. 2001615 inlägg
#3

detta fel fick jag

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

Medlem sedan dec. 2000557 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. :)

Medlem sedan aug. 20021 752 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

Medlem sedan okt. 2001615 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?

Medlem sedan aug. 20021 752 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

Medlem sedan okt. 2001615 inlägg
#8

jaa!! :)

tack för hjälpen

så simpelt vad det, tydligen *ler*

ibland blir man blind!

/felix

311 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
169 ms — hämta tråd, inlägg och bilagor (db)
139 ms — ändringar (db)