Transcript

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.Metro1

Centimentro100

milimetro1000

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 UNIDADESPrincipio del formularioProperty:Final del formulario

Principio del formularioAFinal del formularioPrincipio del formularioBFinal del formulario

Espero les haya gustado este pequeo tutorial.