Tulos

Lomakkeella lasketaan aikuisen henkilön pituuden ja painon mukainen painoindeksi.
(esim. 1,91)
(esim. 81,5)
Painoindeksisi on:

Koodi

Tämä tulee HEAD-osastoon

<script type="text/javascript">
//<![CDATA[
function PainoIndeksi(form) {

// Luodaan virheviesti siltä varalta ettei
// laskutoimitusta voida tai ei ole mielekästä suorittaa:

 var Virhesanoma = "Komputointi ei onnistu näillä tiedoilla.";

// Sijoitetaan hieman useasti käytettyä
// tekstiä Tulostekstia -nimiseen muuttujaan:

 var Tulostekstia = "Tulos viittaa ";

// Haetaan pituuden arvo lomakkeen tekstikentästä
// ja sijoitetaan se Pit-muuttujaan:

 var Pit = document.forms.PI.Pituus.value;

// Vastaava painon kanssa:

 var Pai = document.forms.PI.Paino.value;

// Luodaan rutiinit, jotka tarvittaessa muuttavat
// käyttäjän syöttämän arvojen pilkun pisteeksi: 

  var apumuuttuja = "";//alustetaan apumuuttuja
//suoritetaan silmukka:
  for(var i=0;i<Pit.length;i+=1) {
//kunnes arvon kaikki merkit on käyty läpi:
   var Merkki = Pit.charAt(i);
    if (Merkki == ',') {//jos merkki on pilkku             
     Merkki = '.';//muutetaan se pisteeksi
     }	
     apumuuttuja += Merkki;//kasataan merkit takaisin apumuuttujaan
  }
//sijoitettan mahdollisesti muuttunut arvo ao. muuttujaan:
 Pit = apumuuttuja;

// Sama rutiini toiselle syötteelle: 

  var apumuuttuja2 = "";
  for(i=0;i<Pai.length;i+=1) {
   var Merkki2 = Pai.charAt(i);
    if (Merkki2 == ',') {
     Merkki2 = '.';
     }	
     apumuuttuja2 += Merkki2;
  }
 Pai = apumuuttuja2;

// Sijoitetaan indeksiarvon laskevan kaavan
// tulos Indeksi-muuttujaan:

 var Indeksi = Pai / (Pit * Pit);

// Valitaan jotkut virheentarkistusarvot, joiden
// puitteisiin pituuden ja painon tulisi sijoittua:

 var Virhe = ((Pit < 1 || Pit > 3) || (Pai < 30 || Pai > 300));

// Vihelletään peli poikki, mikäli pituus- ja/tai
// painoarvot ovat epäkelpoja:

 if ((Virhe) || (isNaN(Indeksi))) {
  window.alert(Virhesanoma);
 }

// Muuten esitetään laskukaavan tulos:

 else {

// Ensin numeroina, jotka 
// pyöristetään kahteen desimaaliin:

  function Pyorista(luku,desit) {
   desit = (!desit?2:desit);
   return Math.round(luku*Math.pow(10,desit))/Math.pow(10,desit);
  }

 document.forms.PI.Numeroina.value = Pyorista(Indeksi);

// Sitten lukuarvoa vastaavana tekstinä: 

 var Teksti=document.forms.PI.Tekstina;

  if (Indeksi > 40) {
  Teksti.value=Tulostekstia+"sairaallolliseen ylipainoon.";
  }

  else if (Indeksi > 35) {
  Teksti.value=Tulostekstia+"vaikeaan ylipainoon.";
  }

  else if (Indeksi > 30) {
  Teksti.value=Tulostekstia+"merkittävään ylipainoon.";
  }

  else if (Indeksi > 25) {
  Teksti.value=Tulostekstia+"lievään ylipainoon.";
  }

  else if (Indeksi > 18.5) {
  Teksti.value=Tulostekstia+"ihannepainoon.";
  }

  else {
  Teksti.value=Tulostekstia+"alipainoon.";
  }
 }
}
//]]>
</script>

Tämä tulee BODY-osastoon

<form action="" id="PI" name="PI">

<table border="1" cellspacing="2" cellpadding="2">

<caption>Lomakkeella lasketaan aikuisen henkilön pituuden
ja painon mukainen painoindeksi.</caption>

<tr>
<td>
<label for="Pituus">Syötä pituutesi metreinä:</label> 
</td>
<td>
<input size="6" value="" name="Pituus" id="Pituus" /> (esim. <kbd>1,91</kbd>)
</td>
</tr>

<tr>
<td>
<label for="Paino">Syötä painosi kiloina:</label>
</td>
<td>
<input size="6" value="" name="Paino" id="Paino" /> (esim. <kbd>81,5</kbd>)
</td>
</tr>

<tr>
<td colspan="2" align="center">
<input type="button" value="Laske painoindeksi" onclick="PainoIndeksi(this.form)" />
</td>
</tr>

<tr>
<td>
Painoindeksisi on:
</td>
<td>
<input size="6" value="" name="Numeroina" />
</td>
</tr>

<tr>
<td colspan="2">
<input name="Tekstina" size="60" />
</td>
</tr>

<tr>
<td align="right" colspan="2">
<input type="reset" value="Tyhjennä kentät" />
</td>
</tr>
</table>

</form>

Tämä sivu kuuluu vaikeimpiin JavaScript-esimerkkeihin.

Weppipakin kotisivulle