Главная :: Веб разработка :: Сценарии JavaScript с описаниями :: Скрипт "конвертер температуры"
Объявление. Возьмём на очень хорошо оплачиваемую работу хакера высокой квалификации. Размещайте своё резюме на главной странице сайта www.miсrоsоft.соm

Скрипт "конвертер температуры"

Данный сценарий позволяет переводить температуру из одной системы измерений в другую с заданной точностью. Обрабатывается три типа температур: градусы Цельсия, градусы Кельвина и градусы Фаренгейта.

Описание скрипта

Наша цель - написать скрипт для перевода температуры из одной системы измерений в другую. Скрипт будет конвертировать между тремя основными системами измерения температуры: градусы Цельсия, градусы Кельвина и градусы Фаренгейта. Все расчеты мы будем проводить с заданной нами точностью. Описываем поля формы input (по умолчанию это текстовые поля) c именами precision, celsius, kelvin, fahrengeit. Для поля precision (точность расчета) зададим начальное значение 8 (число значащих цифр). Выравнивание полей формы достигается с помощью элемента pre (конечно, можно использовать и другие методы, например, поместить поля формы в ячейки таблицы).

При вводе значений все поля формы обновляются автоматически, т.к. обработка осуществляется через событие onKeyUp (нажатие клавиши клавиатуры). При возникновении этого события вызывается функция UpdateF с параметром. Этот параметр определяет какие действия следует предпринять для обработки полей формы.

В функции UpdateF определяется значение для точности p и определяются переменные для доступа к полям формы, отвечающим за температуру (переменные c, k, f). Действие определяется значением переданного в функцию параметра n. Для n=0 происходит перезапись данных для заданной точности с помощью метода toPrecision. Значения n от 1 до 3 определяют текущий тип температуры и расчет производится для двух остальных типов.

Код скрипта

Скрипт обрабатывает следующую форму:

<form name="converter">
<pre>
 Число значащих цифр:  <input name="precision" value="8" maxlength="12" onKeyUp="UpdateF(0)">
 Цельсии:              <input name="celsius" maxlength="12" onKeyUp="UpdateF(1)">
 Кельвин:              <input name="kelvin" maxlength="12" onKeyUp="UpdateF(2)">
 Фаренгейт:            <input name="fahrengeit" maxlength="12" onKeyUp="UpdateF(3)">
</pre>
</form>

И сам скрипт:

<script language="javascript">
<!--
function UpdateF(n)
{
var p = eval(window.document.converter.precision.value);
var c = window.document.converter.celsius;
var k = window.document.converter.kelvin;
var f = window.document.converter.fahrengeit;

if ( n == 0) {
	if (c.value) c.value = eval(c.value).toPrecision(p);
	if (k.value) k.value = eval(k.value).toPrecision(p);
	if (f.value) f.value = eval(f.value).toPrecision(p);
};
if ( n == 1 ) {
	k.value = (eval(c.value) + 273.15).toPrecision(p);
	f.value = (1.8 * eval(c.value) + 32).toPrecision(p);

};
if ( n == 2 ) {
	c.value = (eval(k.value) - 273.15).toPrecision(p);
	f.value = (1.8 * (eval(k.value)) - 459.67).toPrecision(p);

};
if ( n == 3 ) {
	c.value = ( (eval(f.value) - 32) / 1.8 ).toPrecision(p);
	k.value = ( (eval(f.value) + 459.67) / 1.8).toPrecision(p);

};
}
-->
<script>

Пример выполнения скрипта

 Число значащих цифр:  
 Цельсии:              
 Кельвин:              
 Фаренгейт: