Vous êtes sur la page 1sur 4

CONVERTIDOR DE UNIDADES

JAVASCRIPT

Hoy les mostrare un pequeo proyecto de desarrollo en JavaScript, el resultado ser un


convertidor de unidades que convierte distancia, masa, peso, distancia, y todas las
medidas que le demos. Usaremos un algoritmo lgico, que y l bastante rpido.
Lo primero que necesitamos es describir el algoritmo de conversin, podemos decir que
1 metro son 100 cm, y 1 metro son 1000 milmetros o 1 metro son .001 kilmetros de
esta manera si multiplicamos. Z (nmero de metros) x Y (equivalencia en kilmetros
obtendremos) X el resultado de la conversin usando una tabla similar a esta.

Metro

Centimentro

100

milimetro

1000

Kilometro

.0001

Empesamos poniendo nuestra tabla de converciones,


var property = new Array();
var unit = new Array();
var factor = new Array();

property[0] = "Distancia";
unit[0] = new
Array("metro","centimetro","milimetro","pie","pulgada","kilometro","milla");

Iremos aadiendo, a los arrays todas las conversiones que nosotros tenemos.
property[2] = "Area";
unit[2] = new Array("metro cuadrado","centimetro cuadrado","pie
cuadrado","pulgada cuadrada","kilometro cuadrado","milla cuadrado");
factor[2] = new Array(1,.0001,.09290304,.00064516,1000000,10000);
property[3] = "Volumen";
unit[3] = new Array("metro cubico","centimetro cubico","pie cubico","pulgada
cubica","litro","mililitro");
factor[3] = new Array(1,.000001,.028316387,.000016387,.001,.000001);
property[4] = "Tiempo";
unit[4] = new Array("segundo","minuto","dia","anio");
factor[4] = new Array(1,60,86400,31556925);
property[5] = "Velocidad";
unit[5] = new Array("m/s","cm/s","ft/s","km/s","m/s");
factor[5] = new Array(1,.01,.3048,.27778,.44704);
property[6] = "Peso";
unit[6] = new Array("Kilogramo","gramo","libra");
factor[6] = new Array(1,.001,.45359237);
property[7] = "fuerza";
unit[7] = new Array("newton","dina","kilogramo fuerza,libra fuerza");
factor[7] = new Array(1,.00001,9.80665,4.44822162);

Despus de esto usaremos este script que obtiene el valor de A que despus
especificaremos en el HTML y lo convertiremos a B unidades o viceversa si
seleccionamos b.
function UpdateUnitMenu(propMenu, unitMenu){
// Actualizar de acuerdo ala selecion
var i;
i = propMenu.selectedIndex;
FillMenuWithArray(unitMenu, unit[i]);
}
function FillMenuWithArray(myMenu, myArray){
// Reyenar forma
var i;
myMenu.length = myArray.length;
for(i = 0; i < myArray.length; i++){
myMenu.options[i].text = myArray[i];
}
}
function CalculateUnit(sourceForm, targetForm){

// Validar antes de continuar


var sourceValue = sourceForm.unit_input.value;
// Assegurarse que sea mayor que uno
sourceValue = parseFloat(sourceValue);
if ( !isNaN(sourceValue) || sourceValue == 0){
// si puede convertirse a un float
sourceForm.unit_input.value = sourceValue;
ConvertFromTo(sourceForm, targetForm);
} else {
alert("El numero agregado no se puede convertir o es 0!");
}
}
function ConvertFromTo(sourceForm, targetForm){
// Convierte el contenido al objetivo
var propIndex;
var sourceIndex;
var sourceFactor;
var targetIndex;
var targetFactor;
var result;
// idetificar la propiedad
propIndex = document.property_form.the_menu.selectedIndex;
// fuente
// fuentes de conversion rangos
sourceIndex = sourceForm.unit_menu.selectedIndex;
sourceFactor = factor[propIndex][sourceIndex];
// B a A
targetIndex = targetForm.unit_menu.selectedIndex;
targetFactor = factor[propIndex][targetIndex];
// EScribir el resultado
result = sourceForm.unit_input.value;
// temperatura
if (property[propIndex] == "Temperatura"){
result = parseFloat(result) + tempIncrement[sourceIndex];
}
result = result * sourceFactor;

result = result / targetFactor;


if (property[propIndex] == "Temperatura"){
result = parseFloat(result) - tempIncrement[targetIndex];
}
// actualizar

targetForm.unit_input.value = result;
}
function ClearForm(){
// Limpiar texto
document.form_A.unit_input.value = "";
document.form_B.unit_input.value = "";
}

Tambin agregaremos una validacin por si el nmero que especifica no es un nmero o


no selecciona el tipo de conversin. Ya noms nos quedara el HTML.

CONVERTIDOR DE
UNIDADES
Property:

Espero les haya gustado este pequeo tutorial.