Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Salvadoruve2 en 11 de Diciembre 2016, 14:27
-
Hola aquí dejo mi solución para el ejercicio planteado en dicho apartado.
Es la segunda vez que hago el ejercicio, puesto que he retomado hace poco los cursos de aprendeaprogramar, y es curioso ver las diferentes formas de resolverlo antes y despues.
Espero que esté correcto. Gracias
Crea un script donde:
a) Se pida al usuario que introduzca un número superior a 10000000 y se muestre por pantalla ese número con tres dígitos significativos. Si el número introducido no cumple la condición, se volverá a solicitar que se introduzca.
b) Se pida al usuario que introzca un número con 4 decimales y se muestre por pantalla ese número redondeado a dos decimales. Si el número introducido no cumple la condición, se volverá a solicitar que se introduzca (para ello habrá que analizar que la cadena introducida cuente con cuatro dígitos después del carácter de punto decimal).
c) Se pida al usuario que introduzca una frase que comience por un número que puede ser entero o decimal. Para dicha frase, se devolverá el número entero que se pueda extraer, y el número decimal que se pueda extraer. Deberá analizarse la entrada con una expresión regular, de modo que si no cumple la condición, se vuelva a solicitar la introducción de la frase.
<!DOCTYPE html>
<html>
<head>
<title>Numerología</title>
<meta charset="utf-8">
<style type="text/css"></style>
<script type="text/javascript">
window.onload = function() {
var numeroUsuario = prompt ('Por favor introduzca un número igual o mayor a 10000000');
if (Number(numeroUsuario) && numeroUsuario.length >= 8) {
var numeroUsuario = Number (numeroUsuario);
var precision = (numeroUsuario).toPrecision(3);
alert('El número con tres dígitos significativos es: ' + precision);
}else{
alert('Ha cometido un error, asegúrese que el numero introducido cumple con los requisitos de la alerta');
window.location.reload();
}
var numeroUsuario2 = prompt ('Por favor introduzca ahora un número con cuatro decimales, ejm: "4.1416"');
var expReg = /\d+\.\d{4,4}$/;
if (expReg.test(numeroUsuario2)) {
numeroUsuario2 = Number (numeroUsuario2);
alert('El número redondeado a dos decimales es: ' +numeroUsuario2.toFixed(2));
}else{
do { alert('Ha comoetido algún error, asegúrese que ofrece la información requerida en la alerta y que ela separación de los decimales es el símbolo "."');
var numeroUsuario2 = prompt ('Por favor introduzca ahora un número con cuatro decimales, ejm: "4.1416"');
}
while (expReg.test(numeroUsuario2) == false);
numeroUsuario2 = Number (numeroUsuario2);
alert('El número redondeado a dos decimales es: ' + numeroUsuario2.toFixed(2));
}
var fraseUsuario = prompt ('Por favor introduzca ahora una frase que empiece por un número entero o decimal. Ejm: "25 dias tiene un mes ficticio" o "3,1416 veces te dije ayer que compraras mistol".');
var expReg2 = /^\d+\.{0,1}\d+\s*\w+/;
var expRegExtraer = /^\d+\.{0,1}\d+/;
var expRegDecimal = /\.\d+/;
if (expReg2.test(fraseUsuario)) {
var extraerNumero = Number(expRegExtraer.exec(fraseUsuario));
var numeroEntero = parseInt(extraerNumero);
var numeroDecimal = expRegDecimal.exec(extraerNumero);
alert('El primer número que podemos extraer es: ' + extraerNumero);
alert('El número entero es : ' + numeroEntero + '\nY el número decimal es: ' + numeroDecimal);
}else{
do {alert('Ha comoetido algún error, asegúrese que ofrece la información requerida en la alerta');
fraseUsuario = prompt ('Por favor introduzca una frase que empiece por un número entero o decimal. Ejm: "25 dias tiene un mes ficticio" o "3,1416 veces te dije ayer que compraras mistol".');
}
while (expReg2.test(fraseUsuario) == false);
var extraerNumero = Number(expRegExtraer.exec(fraseUsuario));
var numeroEntero = parseInt(extraerNumero);
var numeroDecimal = expRegDecimal.exec(extraerNumero);
alert('El primer número que podemos extraer es: ' + extraerNumero);
alert('El número entero es : ' + numeroEntero + '\nY el número decimal es: ' + numeroDecimal);
}
var nodoBody = document.getElementsByTagName('body')[0];
var despedida = '<h1>Buen trabajo!! has completado con éxito el recorrido. Si quieres volver a intentalo por favor recarga la página</h1>';
nodoBody.innerHTML = despedida;
}
</script>
</head>
<body>
</body>
</html>
-
En principio si introduces un numero que no cumple lo que se pide en la primera pregunta, no vuelve a preguntar otra vez el número.
Revisa un poco el código. ;)
-
Ok lo reviso y lo igualo a las otras sentencias para volver a preguntar el número. Gracias