Harmonisch gemiddelde berekenen
Auteur: Jero3n - 23 april 2008 - 09:27 - Gekeurd door: marten - Hits: 8527 - Aantal punten: 5.00 (1 stem)
Hoi sima's
Ik weet dat dit script een beetje nutteloos is, maar ik heb het vooral gemaakt om te leren.
Hopelijk kunnen jullie me dus ook wat tips geven.
Negatief kritiek is ok, maar alleen als je daar commentaar bij geeft
|
Code: |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
html, body {
margin: 0;
font-family: Arial;
}
h3 {
border-bottom: 2px solid #000;
line-height: 20px;
}
h4 {
font-weight: bold;
font-size: 13pt;
}
#linkerbar {
position: absolute;
left: 5px;
top: 0px;
padding: 10px;
width: 50%;
border-right: 2px solid #000;
}
#rechterbar {
margin-left: 53%;
padding: 0px;
margin-right: 15px;
}
</style>
<script type="text/javascript">
var aantal = 1;
function bereken() {
document.getElementById("bezig").style.display = "block";
//Defineer wat variabelen
alfabet = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
getalleninput = document.form.getallen.value;
getallen = getalleninput.split(",");
aantal_getallen = getallen.length;
uitwerking = "<br /><h4>Invoer " + aantal + "</h4>";
aantal++;
uitwerking += "<tt>Ingevoerde getallen</tt><br />" + getalleninput;
//Formule teller
formule_teller = aantal_getallen;
var x = 0;
while (x<aantal_getallen) {
formule_teller = formule_teller + "*" + alfabet[x];
x++;
}
//Formule noemer
formule_noemer = "";
for(x = 0; x<aantal_getallen; x++) {
for(y = 0; y<aantal_getallen; y++) {
if(alfabet[y] == alfabet[x]) {
continue;
}
if(y!=aantal_getallen-1)
{
formule_noemer = formule_noemer + alfabet[y] + "*";
}
else {
formule_noemer = formule_noemer + alfabet[y];
}
}
if(x!=aantal_getallen-1)
{
formule_noemer = formule_noemer + "+";
}
}
formule_noemer = formule_noemer.substr(0,formule_noemer.length-1);
uitwerking += "<br /><br /><tt>Formule maken</tt><br />" + formule_teller + "<br /><hr noshade=noshade color=black width=100 align=left>" + formule_noemer;
//Formule->Som teller
teller = formule_teller;
noemer = formule_noemer;
for(x = 0; x<aantal_getallen; x++)
{
teller = teller.replace(alfabet[x],getallen[x]);
}
//Formule->Som noemer
noemer = formule_noemer;
for(x = 0; x<=aantal_getallen; x++)
{
for(y = 0; y<aantal_getallen; y++)
{
if (getallen[y] == getallen[x]) {
continue;
}
noemer = noemer.replace(alfabet[y],getallen[y]);
}
}
//Schrijf sommen op
uitwerking += "<br /><br /><tt>Getallen invullen</tt><br />" + teller + "<br /><hr noshade=noshade color=black width=100 align=left>" + noemer;
//Bereken teller en noemer en schrijf op
teller = eval(teller);
noemer = eval(noemer);
//Schrijf uitkomsten op
uitwerking += "<br /><br /><tt>Teller & noemer berekenen</tt><br />" + teller + "<br /><hr noshade=noshade color=black width=100 align=left>" + noemer;
//Bereken antwoord
antwoord = eval(teller / noemer);
uitwerking += "<br /><br /><tt>Antwoord</tt><br />" + antwoord;
document.getElementById("bezig").style.display = "none";
//Schrijf antwoord op
content = document.getElementById("uitkomst").innerHTML;
document.getElementById("uitkomst").innerHTML = uitwerking + content;
}
function numbersonly(myfield, e, dec)
{
var key;
var keychar;
if (window.event)
key = window.event.keyCode;
else if (e)
key = e.which;
else
return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) ||
(key==9) || (key==13) || (key==27) )
return true;
// numbers
else if ((("0123456789,").indexOf(keychar) > -1))
return true;
// decimal point jump
else if (dec && (keychar == "."))
{
myfield.form.elements[dec].focus();
return false;
}
else
return false;
}
//-->
</script>
</script>
</head>
<body>
<div id="linkerbar">
<h1>Bereken harmonisch gemiddelde</h1><br />
<h3>Inleiding</h3>
Dit is een script om het harmonisch gemiddelde van een aantal getallen te berekenen.
Op het moment werkt dit voor maximaal 2 getallen, omdat ik het nog niet werkend krijg met meer getallen
Dit ben ik wel aan het uitproberen dus.
<h3>Wat is het harmonisch gemiddelde</h3>
Het harmonisch gemiddelde wordt gebruikt als men het gemiddelde moet berekenen van niet eensluidende waarnemingen.
Vooral op het gebied van (sportieve) prestaties en snelheden komt men dit tegen.
Bijvoorbeeld een auto rijdt van Amsterdam naar Rotterdam en terug.
Men moet dan eerst de gemiddelde snelheid voor de heenreis berekenen
en vervolgens de gemiddelde snelheid voor de terugreis. Daaropvolgend moet men
het gemiddelde van deze twee gemiddelde snelheden nemen.
<h3>Je getallen</h3>
<form name="form">
Getallen gescheiden door komma's:<br />
<textarea rows="3" cols="45%" name="getallen" id="getallen" onkeypress="return numbersonly(this, event)">6,7</textarea><br />
<input type="button" onclick="javascript:bereken()" value="Bereken" />
</form>
</div>
<div id="rechterbar">
<br />
<h3>Antwoord(en)</h3>
<div id="bezig" style="display: none;">
<i>Bezig met berekenen...</i>
</div>
<div id="uitkomst">
</div>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> html, body { margin: 0; font-family: Arial; } h3 { border-bottom: 2px solid #000; line-height: 20px; } h4 { font-weight: bold; font-size: 13pt; } #linkerbar { position: absolute; left: 5px; top: 0px; padding: 10px; width: 50%; border-right: 2px solid #000; } #rechterbar { margin-left: 53%; padding: 0px; margin-right: 15px; } <script type="text/javascript"> var aantal = 1; function bereken() { document.getElementById("bezig").style.display = "block"; //Defineer wat variabelen alfabet = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"); getalleninput = document.form.getallen.value; getallen = getalleninput.split(","); aantal_getallen = getallen.length; uitwerking = " <br /><h4>Invoer " + aantal + " </h4>"; aantal++; uitwerking += " <tt>Ingevoerde getallen </tt><br />" + getalleninput; //Formule teller formule_teller = aantal_getallen; var x = 0; while (x<aantal_getallen) { formule_teller = formule_teller + "*" + alfabet[x]; x++; } //Formule noemer formule_noemer = ""; for(x = 0; x<aantal_getallen; x++) { for(y = 0; y<aantal_getallen; y++) { if(alfabet[y] == alfabet[x]) { continue; } if(y!=aantal_getallen-1) { formule_noemer = formule_noemer + alfabet[y] + "*"; } else { formule_noemer = formule_noemer + alfabet[y]; } } if(x!=aantal_getallen-1) { formule_noemer = formule_noemer + "+"; } } formule_noemer = formule_noemer.substr(0,formule_noemer.length-1); uitwerking += "<br /><br /><tt>Formule maken </tt><br />" + formule_teller + " <br /><hr noshade=noshade color=black width=100 align=left>" + formule_noemer; //Formule->Som teller teller = formule_teller; noemer = formule_noemer; for(x = 0; x<aantal_getallen; x++) { teller = teller.replace(alfabet[x],getallen[x]); } //Formule->Som noemer noemer = formule_noemer; for(x = 0; x<=aantal_getallen; x++) { for(y = 0; y<aantal_getallen; y++) { if (getallen[y] == getallen[x]) { continue; } noemer = noemer.replace(alfabet[y],getallen[y]); } } //Schrijf sommen op uitwerking += "<br /><br /><tt>Getallen invullen </tt><br />" + teller + " <br /><hr noshade=noshade color=black width=100 align=left>" + noemer; //Bereken teller en noemer en schrijf op teller = eval(teller); noemer = eval(noemer); //Schrijf uitkomsten op uitwerking += " <br /><br /><tt>Teller & noemer berekenen</tt><br />" + teller + "<br /><hr noshade=noshade color=black width=100 align=left>" + noemer; //Bereken antwoord antwoord = eval(teller / noemer); uitwerking += " <br /><br /><tt>Antwoord </tt><br />" + antwoord; document.getElementById("bezig").style.display = "none"; //Schrijf antwoord op content = document.getElementById("uitkomst").innerHTML; document.getElementById("uitkomst").innerHTML = uitwerking + content; } function numbersonly(myfield, e, dec) { var key; var keychar; if (window.event) key = window.event.keyCode; else if (e) key = e.which; else return true; keychar = String.fromCharCode(key); // control keys if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) return true; // numbers else if ((("0123456789,").indexOf(keychar) > -1)) return true; // decimal point jump else if (dec && (keychar == ".")) { myfield.form.elements[dec].focus(); return false; } else return false; } //--> <h1>Bereken harmonisch gemiddelde </h1><br /> Dit is een script om het harmonisch gemiddelde van een aantal getallen te berekenen. Op het moment werkt dit voor maximaal 2 getallen, omdat ik het nog niet werkend krijg met meer getallen Dit ben ik wel aan het uitproberen dus. <h3>Wat is het harmonisch gemiddelde </h3> Het harmonisch gemiddelde wordt gebruikt als men het gemiddelde moet berekenen van niet eensluidende waarnemingen. Vooral op het gebied van (sportieve) prestaties en snelheden komt men dit tegen. Bijvoorbeeld een auto rijdt van Amsterdam naar Rotterdam en terug. Men moet dan eerst de gemiddelde snelheid voor de heenreis berekenen en vervolgens de gemiddelde snelheid voor de terugreis. Daaropvolgend moet men het gemiddelde van deze twee gemiddelde snelheden nemen. Getallen gescheiden door komma's: <br /> <textarea rows="3" cols="45%" name="getallen" id="getallen" onkeypress="return numbersonly(this, event)">6,7 </textarea><br /> <input type="button" onclick="javascript:bereken()" value="Bereken" /> <div id="bezig" style="display: none;"> <i>Bezig met berekenen... </i>
Download code (.txt)
|
|
|
Stemmen |
Niet ingelogd. |
|