Avatar billede boxer Nybegynder
02. september 2007 - 09:07 Der er 17 kommentarer og
1 løsning

Hjælp til at udbygge beregningsscript

Hej

Jeg har fået lavet et beregningsscript.
Det går ud på at beregne besparelsen på skift af brændselskedel.

Der bruges nuværende virkningsgrad, ny virkningsgrad og årligt forbrug i kr.

Jeg ønsker at udbygge scriptet således:
Pris nyt anlæg i kr (indtastes af brugeren)
Pris nuværende anlæg i kr (indtastes af brugeren)
Tilbagebetalingstid i år (beregnes)

Scriptet er ikke et jeg selv har lavet, jeg har forsøgt at ændre det men kan ikke få den ønskede beregning med.

Hvordan gøres det?

Scriptet der skal udbygges ser således ud:


<script>
function doberegn() {
var nu = document.forms["beregn"].elements["nu"];
var ny = document.forms["beregn"].elements["ny"];
var forbrug = document.forms["beregn"].elements["forbrug"];
var saved = document.forms["beregn"].elements["saved"];
var nuu = (forbrug.value / nu.value) * 100;
var nyy = (forbrug.value / ny.value) * 100;
var savedd = nuu - nyy;
saved.value = savedd;
}
</script>
<form name="beregn" id="beregn"><table
style="text-align: left; margin-left: auto; margin-right: auto;"
border="0"><tbody><tr><td>Nuværende
virkningsgrad</td><td><input name="nu" id="nu"
maxlength="10" type="text" /></td></tr>
<tr><td>Ny virkningsgrad</td><td><input
name="ny" id="ny" maxlength="10" type="text" /></td></tr>
<tr><td>Årligt forbrug i kr</td><td><input
name="forbrug" id="forbrug" maxlength="10"
type="text" /></td></tr>
<tr><td>Besparelse pr år i kr</td><td><input
name="saved" id="saved" readonly="readonly"
type="text" /></td></tr>
</tbody></table><center><input
onclick="java script:doberegn();" value="Beregn"
type="button" /></center></form>
Avatar billede olebole Juniormester
02. september 2007 - 16:00 #1
<ole>

"Tilbagebetalingstid i år (beregnes)" >> Hvordan? Vis os lige regnestykket  :)

I øvrigt virker det sært, du skriver XHTML-markup. Du kan slet ikke aflæse form-elementer under XHTML. Al din script-kode er ren HTML-kode, som du ikke kan bruge under XHTML.
Din kode parses med garanti i forvejen som HTML, så du kan ligeså godt bruge en HTML-DTD og skrive HTML 4.01-Strict. Det giver i det mindste mening  ;o)

/mvh
</bole>
Avatar billede psykochicken Nybegynder
02. september 2007 - 18:32 #2
Nu er jeg ikke den store beregningsnørd, men lidt købmandsregning hænger da ved.
Hvis det alene er et spørgsmål om besparelsen i forhold til virkningsgraden, er det vel blot at regne forholdet mellem den nye og den gamle virkningsgrad ud og så gange det med det årlige forbrug:
Noget ala:
var spar = nu.value/ny.value;
saved.value = forbrug.value*spar;

....eller skal jeg have skolepengene tilbage ;o)

/mvh psykochicken
Avatar billede jhe-ting Nybegynder
02. september 2007 - 23:23 #3
// Matematik for fodgængere:
// var nuu = (forbrug.value * nu.value) / 100; //  Værdi af Udnyttet  brændsel
// var nyy = (nuu / ny.value) * 100; //  Nyindkøb af brændsel
// var sav = forbrug.value - nyy; //  Besparelse
// Reduktion af udtryk giver

saved.value = forbrug.value * (1 - nu.value / ny.value);

//
// Tilbagebetalingstid er nemt hvis man lige 'glemmer' renten.
// Uanset om man skal låne pengene eller betaler kontant
// kommer renten ind i billedet, med mindre man bruger hovedpuden som bank.
// Er der nogen økonomer tilstede... ?
Avatar billede olebole Juniormester
02. september 2007 - 23:50 #4
- nogen er økonomer med slidte fødder - vi andre er bare programmører på cykel  ;o)
Avatar billede boxer Nybegynder
03. september 2007 - 00:26 #5
Hovsa - jeg skrev et indlæg tidligere som åbenbart ikke er kommet med.

jhe-thing -> Der er ikke tale om en forbrugsberegner.
Det script der står i mit spørgsmål er et script det udregner besparelsen ved at skifte sin brændselskedel ud med en mere effektiv brændselskedel.
Virkningsgrad på brændselskedler angives altid i procent.

Lad os sige at min nuværende kedel har en virkningsgrad på 83,4 % og jeg ønsker at kende den årlige besparelse på min brændselsudgift hvis jeg skifter kedlen ud med en der har 92,1% i virkningsgrad.
Så indtaster jeg jeg først min nuværende virkningsgrad.
Dernæst virkningsgraden på den nye kedel.
Sidst mit årlige forbrug i kroner.

Så regner scriptet ud hvor meget jeg sparer om året. Er det årlige forbrug f.eks 20.000,- vil den årlige besparelse være ca 2.265,-

Kort sagt skal jeg have puttet følgende ind
Indkøbspris på ny kedel - indkøbspris på gammel kedel / den årlige besparelse (2.265,-)


Men i flere tilfælde er indkøbspris på gammel kedel irrelevant da den er betalt, derfor vil der komme til at stå 0 og så er regnestykket jo nemt.
Igen men, hvis "det nye" tilføres formlen, vil den kunne bruges som hjælp til at beslutte hvilken kedel man skal købe hvis man skal have en ny.

Det er næsten indlysende. Kedler med høj virkningsgrad er næsten altid dyrere end dem med lavere virkningsgrad.
Ligesom med elsparepæren, dyrere i indkøb men billigere i længden.
Ganske relevant.

Nej, renten skal ikke med. Det kan ikke gøres nøjagtigt alligevel.


Jeg skal helst have det ind med skeer :o)
Avatar billede jhe-ting Nybegynder
03. september 2007 - 00:36 #6
Ok - jeg vender straks til bage med `noget på en ske' ;)
Avatar billede jhe-ting Nybegynder
03. september 2007 - 00:42 #7
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" >
<title>Ekselpel til spm/794452</title>
<script type="text/javascript"><!--
function doberegn() {
var nu = document.forms["beregn"].elements["nu"];
var ny = document.forms["beregn"].elements["ny"];
var nua = document.forms["beregn"].elements["nua"];
var nya = document.forms["beregn"].elements["nya"];
var forbrug = document.forms["beregn"].elements["forbrug"];
var saved = document.forms["beregn"].elements["saved"];
var breakeven = document.forms["beregn"].elements["breakeven"];

// Matematik for fodgængere:
// var nuu = (forbrug.value * nu.value) / 100; //  Værdi af Udnyttet  brændsel
// var nyy = (nuu / ny.value) * 100; //  Nyindkøb af brændsel
// var sav = forbrug.value - nyy; //  Besparelse
// Reduktion af udtryk giver

var sav = forbrug.value *(1 - nu.value / ny.value)
saved.value = sav;


breakeven.value = (nya.value-nua.value)/sav;
}
//--></script>
</head><body>
<form name="beregn" id="beregn" action="get"><table
style="text-align: left; margin-left: auto; margin-right: auto;"
border="0"><tbody>
  <tr>
    <td>Nuværende virkningsgrad</td>
    <td><input name="nu" id="nu" maxlength="10" type="text"></td>
    <td>Nuværende anlægsværdi</td>
    <td><input name="nua" id="nua" maxlength="10" type="text"></td>
  </tr>
  <tr>
    <td>Ny virkningsgrad</td>
    <td><input name="ny" id="ny" maxlength="10" type="text"></td>
    <td>Ny anlægsværdi</td>
    <td><input name="nya" id="na" maxlength="10" type="text"></td>
  </tr>
  <tr>
    <td>Årligt forbrug i kr</td>
    <td><input name="forbrug" id="forbrug" maxlength="10" type="text"></td>
    <td>&nbsp;</td><td>&nbsp;</td>
  </tr>
  <tr>
    <td>Besparelse pr år i kr</td>
    <td><input name="saved" id="saved" readonly="readonly" type="text"></td>
    <td>Tilbagebetalingstid</td>
    <td><input name="breakeven" id="breakeven" readonly="readonly" type="text"></td>
  </tr>
</tbody></table>
<center><input onclick="java script:doberegn();" value="Beregn" type="button" ></center>
</form>
</body></html>
Avatar billede jhe-ting Nybegynder
03. september 2007 - 00:43 #8
OBS: Beregninger på dit taleksempel giver kr. 1889.2508143322461 i besparelse pr. år
Avatar billede boxer Nybegynder
03. september 2007 - 00:52 #9
Kommentar: jhe-ting
03/09-2007 00:43:32

Så har du ikke taget udgangspunkt i det script jeg postede?

Jeg er godt klar over at det måske ikke er noget logik i det, men der er så mange andre faktorer der spiller ind at det er det der er mest nøjagtigt.

Kan du nemt skrive det så det passer med det jeg postede?
Så er jeg fri for at bruge flere timer på at gennemskue det :o)
Avatar billede jhe-ting Nybegynder
03. september 2007 - 01:26 #10
Jeg HAR faktisk taget udgangspunkt i det script du postede, men da det regner forkert har jeg rettet det, så det regner rigtigt i første omgang, inden tilbagebetalingstiden beregnes.
Avatar billede jhe-ting Nybegynder
03. september 2007 - 01:31 #11
For at se at det originale script regner forkert, så prøv med disse tal:

Nuværende effektivitet 50% (meget dårligt),
ny effektivitet 100% (utopisk godt)

Man kan vel ikke få gratis varme på den måde - vel? ;)
Avatar billede boxer Nybegynder
03. september 2007 - 08:47 #12
Det var så anden gang at mit indlæg forsvandt i det blå.....

Men du har ret, den holder ikke :o)

På baggrund af en lang og indviklet udregning som jeg ikke selv kender er fakta:

Med et forbrug på 16000
Nuværende vikrningsgrad på 80%
Ny virkningsgrad på 90%
Vil besparelsen være ca 2390

Med et forbrug på 16000
Nuværende vikrningsgrad på 90%
Ny virkningsgrad på 100%
Vil besparelsen være ca 3300

Jo højere virkningsgrader vi regner med, jo højere vil besparelsen være. Selvom forskellen på virkningsgraderne er den samme. I dette eksempel er den 10%

Kan dette på nogen måde fikses ind i scriptet?
Avatar billede jhe-ting Nybegynder
03. september 2007 - 14:28 #13
Hvor har du de tal fra?
Avatar billede boxer Nybegynder
03. september 2007 - 15:18 #14
Dem har jeg fra en specialist der arbejder med diverse udregninger inden for området.
Der er mange faktorer der spiller ind, jeg kender dem ikke og kan ikke selv lave udregningen.
Men jeg vil gerne tage udgangspunkt i den, da det er min opfattelse at den er korrekt.

Kan det lade sig gøre?
Avatar billede jhe-ting Nybegynder
03. september 2007 - 17:05 #15
Hvilken formel har du brugt til at regne de tal ud fra 03/09-2007 08:47:31 ???

Hvis jeg sætter dem ind i den _forkerte_ formel får jeg andre tal:

Kr. 16000,- fra 80% til  90%  giver Kr. 2222.2222 sparet
Kr. 16000,- fra 90% til 100%  giver Kr. 1777.7777 sparet.

Hvis jeg sætter dem ind i den  R I G T I G E  formel får jeg disse tal:

Kr. 16000,- fra 80% til  90%  giver Kr. 1777.7777 sparet
Kr. 16000,- fra 90% til 100%  giver Kr. 1600 sparet.

Jeg vil foreslå at du alligevel sætter dig ind i betingelserne for denne beregning.

Hos eksperten vil jeg ikke give hjælp til fejlberegning.

Når du kan fremlægge forståelige argumenter for en formel der giver 2390 og 3300 i eksemplerne vil jeg gerne fortsætte.

Her er mit sidste arbejdseksempel:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" >
<title>Ekselpel til spm/794452</title>
<script type="text/javascript"><!--
function doberegn() {
var nu = document.forms["beregn"].elements["nu"];
var ny = document.forms["beregn"].elements["ny"];
var nua = document.forms["beregn"].elements["nua"];
var nya = document.forms["beregn"].elements["nya"];
var forbrug = document.forms["beregn"].elements["forbrug"];
var saved = document.forms["beregn"].elements["saved"];
var breakeven = document.forms["beregn"].elements["breakeven"];

var forkert = document.forms["beregn"].elements["forkert"];

var nuu = (forbrug.value / nu.value) * 100;
var nyy = (forbrug.value / ny.value) * 100;
var savedd = nuu - nyy;
forkert.value = savedd;
// Matematik for fodgængere:
// var nuu = (forbrug.value * nu.value) / 100; //  Værdi af Udnyttet  brændsel
// var nyy = (nuu / ny.value) * 100; //  Nyindkøb af brændsel
// var sav = forbrug.value - nyy; //  Besparelse
// Reduktion af udtryk giver

var sav = forbrug.value *(1 - nu.value / ny.value)
saved.value = sav;


breakeven.value = (nya.value-nua.value)/sav;
}
//--></script>
</head><body>
<form name="beregn" id="beregn" action="get"><table
style="text-align: left; margin-left: auto; margin-right: auto;"
border="0"><tbody>
  <tr>
    <td>Nuværende virkningsgrad</td>
    <td><input name="nu" id="nu" maxlength="10" type="text"></td>
    <td>Nuværende anlægsværdi</td>
    <td><input name="nua" id="nua" maxlength="10" type="text"></td>
  </tr>
  <tr>
    <td>Ny virkningsgrad</td>
    <td><input name="ny" id="ny" maxlength="10" type="text"></td>
    <td>Ny anlægsværdi</td>
    <td><input name="nya" id="na" maxlength="10" type="text"></td>
  </tr>
  <tr>
    <td>Årligt forbrug i kr</td>
    <td><input name="forbrug" id="forbrug" maxlength="10" type="text"></td>
    <td>forkert beregning</td>
    <td><input name="forkert" id="forkert" maxlength="10" type="text"></td>
  </tr>
  <tr>
    <td>Besparelse pr år i kr</td>
    <td><input name="saved" id="saved" readonly="readonly" type="text"></td>
    <td>Tilbagebetalingstid</td>
    <td><input name="breakeven" id="breakeven" readonly="readonly" type="text"></td>
  </tr>
</tbody></table>
<center><input onclick="java script:doberegn();" value="Beregn" type="button" ></center>
</form>
</body></html>
Avatar billede boxer Nybegynder
03. september 2007 - 17:32 #16
Hejsa

Jeg arbejder på at få en formel på udregningen.
Avatar billede boxer Nybegynder
05. september 2007 - 22:53 #17
Tak for hjælpen.

Jeg vender tilbage i et andet spørgsmål hvis jeg finder en formular der kan bruges.
Det viste sig desværre at det jeg havde i forvejen ikke var brugbart.
Det passede kun inden for en vis grænse.
Avatar billede jhe-ting Nybegynder
06. september 2007 - 02:10 #18
Selv tak :)

Jeg mener den beregning jeg har lavet passer til din anvendelse, og det du har fået fra varme-eksperten handler om kalorier. Hvis forbruget angives i reelt kaloriebehov, vil det script, du kom med som oplæg, kunne beregne sparet kalorieforbrug. Med reelt kalorieforbrug forstås mængden af varme der er brug for på kedlens fremløb.

Hvis du fjerner det der er "forkert" i mit eksempel så har du det du har brug for.
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