Program na výpočet hladiny alkoholu v krvi.
Pro jednoduché výpočty matematických případů nám bohatě vystačí JavaScript. Není třeba mít nainstalován WWW server (jako v případě PHP) a tyto programy si můžeme vytvářet i v Poznámkovém bloku.
Aplikace se skládá ze dvou částí. První částí je tabulka, která shromažďuje a předává programu data, a druhou je program samotný. Tabulkami se nebudu moc zabývat, předpokládám základní znalosti o tabulkách, respektive HTML. Upozornil bych však na nějaké vylepšení. Podrobněji se budu zabývat programem.
<script language="JavaScript">
function Vypocet()
{
objem=document.form.objem.value;
procenta=document.form.proc.value;
hmotnost=document.form.hmot.value;
pohlavi=document.form.gend;
alert('Výsledek je '+parseFloat((objem*procenta*0.8)/(pohlavi.options[pohlavi.selectedIndex].value*hmotnost))+'
‰ alkoholu.');
}
</script>
Aplikace začíná pojmenováním funkce Vypocet. Založíme proměnné, které budeme používat. Vysvětlíme si způsob získávání proměnných z formuláře. Příkladem může být toto: document.form.objem.value.
- document - toto musíme uvést vždy, neboť toto odkazuje na dokument
- form - pojmenování celého formuláře, je definován v hlavičce formuláře (hodnota atributu name u HTML tagu form).
- objem - pojmenování vstupního pole, do kterého vpisujeme data. Je to hodnota atributu name u HTML tagu input.
- value - česky hodnota. Přiřazuje obsah definovaného prvku.
Po přiřazení do proměnných (tím si vlastně ukládáme data do kratšího tvaru) zobrazíme výsledek pomocí metody alert. Čísla převedeme na reálná čísla (typ float) pomocí funkce ParseFloat().
Proměnné, resp. jejich hodnoty násobíme pomocí operátoru násobení * a dělíme znakem /. Násobíme-li číselnou konstantu, v tomto případě 0,8, musíme si dát pozor na odlišné zapisování. Desetinná čárka se musí nahradit tečkou.
Podívejme se na pohlavi.options[pohlavi.selectedIndex] (pokud bych nepoužil proměnnou pohlavi, musel bych napsat tento dlouhý tvar: document.form.gend.options[document.form.gend.selectedIndex]).Tato konstrukce slouží pro předání hodnoty z roletky. Muži a ženy mají rozdílný obsah vody v těle. Proto přiřadíme poměrné hodnoty jako hodnoty value prvku option ve formuláři. Metoda selectedIndex zabezpečí, aby se vybrala dotyčná proměnná, kterou jsme vybrali z roletky.
A nakonec samotná tabulka.
<form name="form">
<table border="0">
<tr>
<td><strong>Pohlaví:</strong></td>
<td><select name="gend" size="1">
<option selected value="0.68">muž</option>
<option value="0.55">žena</option>
</select></td>
<td> </td>
</tr>
<tr>
<td><strong>Hmotnost:</strong></td>
<td><input type="text" size="6"
maxlength="3" name="hmot"></td>
<td><strong>kg</strong></td>
</tr>
<tr>
<td><strong>Objem: </strong></td>
<td><input type="text" size="6" name="objem"></td>
<td><strong>dl</strong></td>
</tr>
<tr>
<td><strong>Obsah alkoholu:</strong></td>
<td><input type="text" size="6" name="proc"
maxlength="4"></td>
<td><strong>%</strong></td>
</tr>
<tr>
<td><input type="button" name="tlac"
value="Počítej" onclick="Vypocet()"></td>
</tr>
</table>
Komentář k tabulce: u některých políček jsem omezil počet vkládaných čísel pomocí atributu maxlength. Program je aktivován správcem událostí JavaScriptu onclick, jehož hodnota je název funkce Vypocet().
Poznámka: Zde uvedený výpočet objemu alkoholu v krvi je ilustrativní. Možné příčiny spočívají v odlišné tělesné konstituci každého člověka, není zde zohledněno, kolik člověk před konzumací alkoholu snědl či vypil nealkoholických nápojů. Individuální odchylka zavodnění člověka je až 25 %! Za hodinu se odbourá 0,1 - 0,2 promile alkoholu.
Literatura: Velký domácí právník, Bakeš a kol., Reader's Digest Výběr