webForumDet fria alternativet

Procent

14 svar · 510 visningar · startad av jonas76

jonas76Medlem sedan mars 200278 inlägg
#1

Hej

Skulle behöva lite hjälp med följande kod , den fungerar som så om alla frågor (20 st) är besvarade med tex 2:an så blir procenten ca 67 är all besvarade med 3:an 100 är alla besvarade med 1:an 33 och 0:an 0 procent och dett funkar jätte bra men nu skull jag vilja ha det så att om all frågor besvaras med 2:an skall procentsatsen bli 85% , kan någon vänlig själ hjälpa mig med detta så vore jag väldigt tacksam.

for num = 1 to 2
vtemp = request.form("nr" & num)
select case vtemp
case "0", "1", "2", "3"
antal = antal + 1
summa1 = summa1 + CInt(vtemp)
end select

   next  

for num = 3 to 8
vtemp2 = request.form("nr" & num)
select case vtemp2
case "0", "1", "2", "3"
antal2 = antal2 + 1
summa2 = summa2 + CInt(vtemp2)
end select

next

for num = 9 to 11
   vtemp3 = request.form("nr" & num) 
   select case vtemp3 
   case "0", "1", "2", "3" 
       antal3 = antal3 + 1 
       summa3 = summa3 + CInt(vtemp3) 
   end select 

next

for num = 12 to 20
vtemp4 = request.form("nr" & num)
select case vtemp4
case "0", "1", "2", "3"
antal4 = antal4 + 1
summa4 = summa4 + CInt(vtemp4)
end select

next

proc1 = Round((summa1 * 100 / 3)/antal, 2)
proc2 = Round((summa2 * 100 / 3)/antal2, 2)
proc3 = Round((summa3 * 100 / 3)/antal3, 2)
proc4 = Round((summa4 * 100 / 3)/antal4, 2)
totalproc = Round ((proc1 -- proc2 -- proc3 -- proc4) / 4)

solbulleMedlem sedan mars 20015 287 inlägg
#2

En smula offtopic, men varför vill du få det till 85% ???

jonas76Medlem sedan mars 200278 inlägg
#3

Hej

Det är mest en utsende/statestik sak , vi jobbar efter en standar som skall ligga på 85% och alla 2:or skall motsvara det värdet, för 67 låter helt enkelt för dåligt.

jonas76Medlem sedan mars 200278 inlägg
#4

Hej

Finns det ingen som har någon idé , fråga gärna om det är något som är oklart , är i stort behov av hjälp.
Det jag vill är alltså att ändra det som ger värdet 67% till att det ger 85% istället.

solbulleMedlem sedan mars 20015 287 inlägg
#5

Du kan banne mig inte kalla det för 85% då! Kalla det vad du vill men inte procent, eftersom det blir ju direkt felaktigt. (Om jag inte missuppfattar det hela.)

Hur som helst kanske du kan lösa det med en riktig fullösning genom att kolla värdet du får fram och om det är runt 65 så ändrar du till 85.

If totalproc > 60 AND totalproc < 70 then totalproc = 85

Fast det tar iofs inte hänsyn till om man bara svarat med 2:or...

jonas76Medlem sedan mars 200278 inlägg
#6

Tack för att du tar dig tid , jag fick en idé utav ditt inlägg men jag vet inte om det fukat i "verklighete" men skulle man kunna modifiera följande :

select case vtemp
case "0", "1", "2", "3"
till:
select case vtemp
case "0", "1", "2", "3" If "2" > 60 AND totalproc < 70 then 2 = 85

Kodningen kanske inte blev så lyckad men du kankse förstår ändå hur jag tänker.

Kan man göra något liknande ?

solbulleMedlem sedan mars 20015 287 inlägg
#7
select case vtemp 
case "0", "1", "3" 
antal = antal + 1 
summa1 = summa1 + CInt(vtemp)
case "2"
'gör vad du vill om det är två som är valt
end select
solbulleMedlem sedan mars 20015 287 inlägg
#8

Använder du dig av alla procentresultaten? (proc1, proc2 osv.) eller bara totalproc?

jonas76Medlem sedan mars 200278 inlägg
#9

jo jag använder dom oxå, jag postar lite mer av min kod så kankse det hjläper till mer idér:

dim ar, manad, dag, vecka, anstnr, fnamn, enamn, konto, land, mentor, nr1, nr2, nr3, nr4, nr5, nr6, nr7, nr8, nr9, nr10, nr11, nr12, nr13, nr14, nr15, nr16, nr17, nr18, nr19, nr20, kommentar, proc1, proc2, proc3, proc4, antal, antal2, antal3, antal4, summa1, summa2, summa3, summa4, vtemp, vtemp2, vtemp3, vtemp4, totalproc

ar = request.form("ar")
manad = request.form("manad")
dag = request.form("dag")
vecka = request.form("vecka")
anstnr = request.form("anstnr")
fnamn = request.form("fnamn")
enamn = request.form("enamn")
konto = request.form("konto")
land = request.form("land")
mentor = request.form("mentor")
nr1 = request.form("nr1")
nr2 = request.form("nr2")
nr3 = request.form("nr3")
nr4 = request.form("nr4")
nr5 = request.form("nr5")
nr6 = request.form("nr6")
nr7 = request.form("nr7")
nr8 = request.form("nr8")
nr9 = request.form("nr9")
nr10 = request.form("nr10")
nr11 = request.form("nr11")
nr12 = request.form("nr12")
nr13 = request.form("nr13")
nr14 = request.form("nr14")
nr15 = request.form("nr15")
nr16 = request.form("nr16")
nr17 = request.form("nr17")
nr18 = request.form("nr18")
nr19 = request.form("nr19")
nr20 = request.form("nr20")
kommentar = request.form("kommentar")

for num = 1 to 2
vtemp = request.form("nr" & num)
select case vtemp
case "0", "1", "2", "3"
antal = antal + 1
summa1 = summa1 + CInt(vtemp)
end select

   next  

for num = 3 to 8
vtemp2 = request.form("nr" & num)
select case vtemp2
case "0", "1", "2", "3"
antal2 = antal2 + 1
summa2 = summa2 + CInt(vtemp2)
end select

next

for num = 9 to 11
   vtemp3 = request.form("nr" & num) 
   select case vtemp3 
   case "0", "1", "2", "3" 
       antal3 = antal3 + 1 
       summa3 = summa3 + CInt(vtemp3) 
   end select 

next

for num = 12 to 19
vtemp4 = request.form("nr" & num)
select case vtemp4
case "0", "1", "2", "3"
antal4 = antal4 + 1
summa4 = summa4 + CInt(vtemp4)
end select

next

proc1 = Round((summa1 * 100 / 3)/antal, 2)
proc2 = Round((summa2 * 100 / 3)/antal2, 2)
proc3 = Round((summa3 * 100 / 3)/antal3, 2)
proc4 = Round((summa4 * 100 / 3)/antal4, 2)
totalproc = Round ((proc1 -- proc2 -- proc3 -- proc4) / 4)

set connection = server.createobject("adodb.connection")
connection.open "dsn=cmt1"

stm = "insert into cm1 (ar,manad,dag,vecka,anstnr,fnamn,enamn,konto,land,mentor,nr1,nr2,nr3,nr4,nr5,nr6,nr7,nr8,nr9,nr10,nr11,nr12,nr13,nr14,nr15,nr16,nr17,nr18,nr19,nr20,kommentar,proc1,proc2,proc3,proc4,totalproc)"
stm = stm& "values('"&ar&"','"&manad&"','"&dag&"','"&vecka&"','"&anstnr&"','"&fnamn&"','"&enamn&"','"&konto&"','"&land&"','"&mentor&"','"&nr1&"','"&nr2&"','"&nr3&"','"&nr4&"','"&nr5&"','"&nr6&"','"&nr7&"','"&nr8&"','"&nr9&"','"&nr10&"','"&nr11&"','"&nr12&"','"&nr13&"','"&nr14&"','"&nr15&"','"&nr16&"','"&nr17&"','"&nr18&"','"&nr19&"','"&nr20&"','"&kommentar&"','"&proc1&"','"&proc2&"','"&proc3&"','"&proc4&"','"&totalproc&"')"
jonas76Medlem sedan mars 200278 inlägg
#10

Men kan jag göra som så att jag ädrar koden på den sidan som jag postar i så att svaren får"value" med 0, 33, 85, 100 istället för 0,1,2,3 och sedan göra om den koden som jag postat tidigare i inlägget, skulle det funka/ funka bättre?

solbulleMedlem sedan mars 20015 287 inlägg
#11

En liten funktion kanske:

Function fusk(variabel)
If variabel> 60 AND variabel< 70 then
fusk = 85
Else
fusk = variabel
End if
End Function

Samt att du ändrar de rader du vill fixa till:

proc1 = fusk(Round((summa1 * 100 / 3)/antal, 2))
proc2 = fusk(Round((summa2 * 100 / 3)/antal2, 2))
jonas76Medlem sedan mars 200278 inlägg
#12

det funkar till viss del, har jag alla 2 or så får jag 85, men om jag tex i först gruppen (proc1) som bara har 2 frågor väljer en 3:a och en 2:a så blir värdet där 83.3, och det är väl troligt vis bara för att då räknar han med 2:an som 67 skulle jag tro.

jonas76Medlem sedan mars 200278 inlägg
#13

Men hur verkar det om jag har "procenten" i value när jag skickar till denna sidan, kan jag inte då bara räkna ihop värdena och sedan dela med antalet frågor, eller är jag helt ute och cyklar nu?
hur skulle koden i sådana fall se ut där jag summerar och delar med antalet frågor?

ToonsterMedlem sedan feb. 20001 590 inlägg
#14

Om det ändå inte verkar vara så viktigt med rätt procentsats...
Slumpa den istället... ;)

jonas76Medlem sedan mars 200278 inlägg
#15

Hej

tack för alla idér och förslag , jag har nu löst det med att jag skickar svaren direkt i procent tex: <input type="RADIO" name="nr1" value="0">1:<input type="RADIO" name="nr1" value="33">2:<input type="RADIO" name="nr1" value="85" checked>3:<input type="RADIO" name="nr1" value="100" >

där respektive "value" har sin "procent sedan gör jag så här:

for num = 1 to 2
vtemp = request.form("nr" & num)
select case vtemp
case "0", "33", "85", "100"
antal = antal + 1
summa1 = summa1 + CInt(vtemp)
end select

och sedan:
proc1 = Round((summa1)/antal, 2)

då funkar det :)

Tack igen!

133 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)