Avatar billede christianem Nybegynder
22. april 2005 - 15:15 Der er 8 kommentarer og
1 løsning

Et simpelt script der ikke vil som jeg vil!

Hej, jeg er ved at lave et program til beregning af varmetabet på et hus. Der skal først laves en varmetabsramme, og denne giver det forkerte facit. Scriptet ser således ud:

<html>
<head>

<body>
<script type="text/javascript" language="JavaScript">

function varmetab(){
   
    var a = parseFloat(document.getElementById('A').value)
    var b = parseFloat(document.getElementById('B').value)
    var c = parseFloat(document.getElementById('C').value)
    var d = parseFloat(document.getElementById('D').value)

//varmetabsrammen beregninger findes, se i teori og skemaet hvordan

//væg

vrvag = 0.3 * a * 32

//gulv

vrgul = 0.2 * (b + c) * 12

//loft

vrlof = 0.15 * d * 37

//vindue + dør

vrvindor = 1.8 * (0,22 * vrgul) * 32

//varmetabsrammen

vr = vrvag + vrgul + vrlof + vrvindor

document.getElementById("out").value = "Det aktuelle varmetab: " + vr + " W";

}

function validate() {

    // Kontrol af vægarealet
    if (valider.A.value == "") {
        alert("Der skal indtastes et areal, se evt. hjælpeboxen");
        valider.A.focus();
        return false;
    }

    // Kontrol af trægulvarealet
    if (valider.B.value == "") {
        alert("Der skal indtastes et areal, se evt. hjælpeboxen");
        valider.B.focus();
        return false;
    }

    // kontrol af klinkearealet
    if (valider.C.value == 0) {
        alert("Der skal indtastes et areal, se evt. hjælpeboxen");
        valider.C.focus();
        return false;
    }

    // Kontrol af loftarealet
    if (valider.D.value == "") {
        alert("Der skal indtastes et areal, se evt. hjælpeboxen");
        valider.D.focus();
        return false;
    }

return true;

}

function popup(tekst)    {
   
    var popup = open("", "_blank", "width=150, height=100, valign=center, align=center");
    popup.document.write(tekst);
}

function lukpop()    {   
    popup.window.close();   
    popup = null;
   
}

function printpage() {
window.print(); 
}

</script>

<form name="valider" Onsubmit="return validate()";>

<p>Indtast vægareal</p>
<input  tabindex="1" type="text" id="A" >
<a href="#" onClick="popup('kjb');" >Hjælp</a>

<p>Indtast gulvareal, trægulv</p>
<input tabindex="2" type="text" Id="B" >
<a href="#" onClick="popup('pik');" >Hjælp</a>

<p>Indtast gulvareal, klinker</p>
<input tabindex="3" type="text" Id="C" >
<a href="#" onClick="popup();" >Hjælp</a>

<p>Indtast loftareal</p>
<input tabindex="4" type="text" Id="D" >
<a href="#" onClick="popup();" >Hjælp</a>

<p>

<input tabindex="8" type="button" value="Beregn varmetab" onclick = "if (validate()) varmetab()";>

<input tabindex="9" type="button" value="Printvarmetabet" onclick = printpage();>

<input type="reset" value="Reset">

<p></p>

<input type="text" id="out" size="50">
<span id="output"></span>

</form>

</body>
</head>
</html>

Hvis man eks indtaster 10 i hver input box siger en udregning på lommeregneren at vr skal give 807.756

I dette script giver det 61025.1 :(

Håber der er nogle der kan hjælpe mig.
Avatar billede roenving Novice
22. april 2005 - 15:28 #1
Hov, der kom du vist til at lave en fejl, for det fremgår helt klart af Ekspertens regler, at du ikke må stille samme spørgsmål to gange !-)

-- så svar selv her, markér dit navn i boksen til venstre og tryk på Acceptér ...
Avatar billede roenving Novice
22. april 2005 - 15:29 #2
Avatar billede jpvj Nybegynder
22. april 2005 - 15:34 #3
Jeg får nu 479,628 hvis jeg følger dine formler i Excel.
Avatar billede roenving Novice
22. april 2005 - 15:43 #4
Følg spørgsmålet i det oprindelige: http://www.eksperten.dk/spm/612044
Avatar billede themepark Nybegynder
22. april 2005 - 18:21 #5
roenving, det skal nu siges, at han ikke har gjort det med vilje. På det tidspunkt laggede Eksperten, jeg fik da også selv lavet det samme spørgsmål to gange pga det :) Og så har jeg for øvrigt svaret ham på fejlen i den anden tråd :)
Avatar billede stefanfuglsang Juniormester
22. april 2005 - 20:39 #6
det er linien
vrvindor = 1.8 * (0,22 * vrgul) * 32
skal være
vrvindor = 1.8 * (0.22 * vrgul) * 32

(javascript er vist ikke så sikkert...)
Avatar billede stefanfuglsang Juniormester
22. april 2005 - 20:39 #7
Jeg har også svaret i det andet spørgsmål - det skal du blot ignorere, og give dig selv pointene
Avatar billede jpvj Nybegynder
23. april 2005 - 09:57 #8
Hej igen,

Beklager min forkerte kommentar - din lommeregner virker :-)

Enig med stefanfuglesangs svar :-)
Avatar billede themepark Nybegynder
23. april 2005 - 11:18 #9
Det er nu den anden tråd, han bruger, ikke denne :) Desuden havde jeg allerede svaret det med komma fejlen, og fået det rigtige resultat, men han har sagt, det ikke var fejlen???
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester