10. marts 2003 - 16:04
Der er
4 kommentarer og 1 løsning
Gennemsnit
Jeg har 5 tal som skal ligges sammen også udregne et gennemsnit. problemet er bare at hvis der står 0 i en af dem bliver gennemsnittet forkert. Dette virker: tal1 = 20 tal1 = 15 tal1 = 35 tal1 = 41 tal1 = 50 tal4=tal1+tal2+tal3+tal4+tal5 total = tal4/5 Dette virker ikke: tal1 = 0 tal1 = 15 tal1 = 35 tal1 = 41 tal1 = 50 tal4=tal1+tal2+tal3+tal4+tal5 total = tal4/5 Hvordan får man det lige til at virker uden at skulle skrive en bunke If sætninger ?
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
10. marts 2003 - 16:08
#1
Du tildeler en værdi 5 gange til tal1??! Regner med, at det er en copy/paste fejl :-) Hvilken fejl får du? Der er intet matematisk til hinder for det du laver, så det burde virker.
11. marts 2003 - 07:06
#2
Ups ja det var jo meningen at der skulle stå tal1,tal2,tal3 osv. Hvis du tager gennemsnittet på 20+15+35+41+50 og divider dette med 5 får du det rigtige resultat, men så snart der er et 0 med får du ikke det rigtige gennemsnit !
11. marts 2003 - 08:00
#3
Oki dette her virker hvis der er tastet 3 tal ind men ikke hvis der er 2 eller 1 tal <% response.buffer = true set connect = server.createobject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("db1.mdb") set rs = connect.Execute("Select * FROM gen ") if not rs.EOF then Do until rs.EOF dive = 0 if rs("nr1")=0 then tal1 = 1 dive = dive+1 else tal1 = rs("nr1") end if if rs("nr2")=0 then tal2 = 1 dive = dive+1 else tal2 = rs("nr2") end if if rs("nr3")=0 then tal3 = 1 dive = dive+1 else tal3 = rs("nr3") end if if rs("nr4")=0 then tal4 = 1 dive = dive+1 else tal4 = rs("nr4") end if if rs("nr5")=0 then tal5 = 1 dive = dive+1 else tal5 = rs("nr5") end if temp = 5-dive total = tal1+tal2+tal3+tal4+tal5 total1 = total/temp response.write "Div "& temp %> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100"><%=rs("ID")%></td> <td width="100"> <% if tal1 = 1 then response.write "*" else response.write tal1 end if %> </td> <td width="100"> <% if tal2 = 1 then response.write "*" else response.write tal2 end if %> </td> <td width="100"> <% if tal3 = 1 then response.write "*" else response.write tal3 end if %> </td> <td width="100"> <% if tal4 = 1 then response.write "*" else response.write tal4 end if %> </td> <td width="100"> <% if tal5 = 1 then response.write "*" else response.write tal5 end if %> </td> <td width="100"><%=Round(total1,2)%></td> </tr> </table> <% rs.MoveNext Loop else response.write "ingen felter" end if %>
11. marts 2003 - 15:39
#4
Så virker det: <html> <head> <title>Score</title> <style type="text/css"> <!-- .font { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #000000; } --> </style> </head> <body> <% response.buffer = true set connect = server.createobject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("db1.mdb") set rs = connect.Execute("Select * FROM gen ") if not rs.EOF then Do until rs.EOF dive = 0 if rs("nr1")=0 then tal1 = 1 dive = dive+1 x = 0 else tal1 = rs("nr1") x = rs("nr1") end if if rs("nr2")=0 then tal2 = 1 dive = dive+1 else tal2 = rs("nr2") x = x + rs("nr2") end if if rs("nr3")=0 then tal3 = 1 dive = dive+1 else tal3 = rs("nr3") x = x + rs("nr3") end if if rs("nr4")=0 then tal4 = 1 dive = dive+1 else tal4 = rs("nr4") x = x + rs("nr4") end if if rs("nr5")=0 then tal5 = 1 dive = dive+1 else tal5 = rs("nr5") x = x + rs("nr5") end if temp = 5-dive If x = 0 then total1 = 0 else total = x total1 = total/temp end if NyTotal = Round(total1,1) NyTotal = replace(NyTotal,",",".") SQL = "Update gen set Total= " & NyTotal & " " SQL = SQL & " WHERE ID= "& rs("ID") Connect.Execute(SQL) rs.MoveNext Loop else response.write "Der er ingen ting i databasen!!" end if '================UDSKRIV TIL SKÆRM %> <table width="450" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" bgcolor="#CCCCCC" class="font">Rank</td> <td bgcolor="#CCCCCC" class="font">Navn</td> <td align="center" bgcolor="#CCCCCC" class="font">No.1</td> <td align="center" bgcolor="#CCCCCC" class="font">No.2</td> <td align="center" bgcolor="#CCCCCC" class="font">No.3</td> <td align="center" bgcolor="#CCCCCC" class="font">No.4</td> <td align="center" bgcolor="#CCCCCC" class="font">No.5</td> <td align="center" bgcolor="#CCCCCC" class="font">Total</td> </tr> <tr> <td height="2" colspan="8" align="center" bgcolor="#000000"></td> </tr> <% i = 1 session("start")="ok" set rs = connect.Execute("Select * FROM gen order by Total ASC") if not rs.EOF then Do until rs.EOF if rs("Total")=0 then else %> <tr> <td width="50" align="center" class="font"><%=i%></td> <td width="150" bgcolor="#F2F2F2" class="font"><b><%=rs("navn")%></b></td> <td width="50" align="center" class="font"><%=rs("nr1")%></td> <td width="50" align="center" bgcolor="#F2F2F2" class="font"><%=rs("nr2")%></td> <td width="50" align="center" class="font"><%=rs("nr3")%></td> <td width="50" align="center" bgcolor="#F2F2F2" class="font"><%=rs("nr4")%></td> <td width="50" align="center" class="font"><%=rs("nr5")%></td> <td width="50" align="center" bgcolor="#F2F2F2" class="font"><font color="#FF0000"><%=rs("Total")%></font></td> </tr> <tr> <td height="1" colspan="8" bgcolor="#CCCCCC"></td> </tr> <% If session("start")="ok" then session("Score") = rs("Total") i=i+1 x=0 session("start")=" " else If session("Score") = rs("Total") then i = i x=x+1 session("Score") = rs("Total") else i=i+1+x x=0 session("Score") = rs("Total") end if end if end if rs.MoveNext Loop %> </table> <% else response.write "Der er ingen ting i databasen!!" end if %> </body> </html>
12. marts 2003 - 06:17
#5
Bubledude> Så er der altså noget andet galt. Vi er enige om, at (a1+a2+...+an)/n aldrig kan være nul, med mindre summen af alle a'erne er nul. Right? Det kan godt være, at enten spm. er skrevet forkert eller jeg har misforstået det, men hvis jeg tester <% tal1 = 0 tal2 = 15 tal3 = 35 tal4 = 41 tal5 = 50 sum = tal1+tal2+tal3+tal4+tal5 gns = sum/5 Response.Write("Sum: " & sum & " Gns: " & gns) %> Så får jeg Sum: 141 Gns: 28,2 Hvad havde du forventet?
Kurser inden for grundlæggende programmering