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: Dimitar Stefanov en 26 de Marzo 2016, 16:26
-
Buenas tardes.
Procedo a la exposición de una posible soluciones de los ejercicios de la entrega CU01163E del curso JavaScript desde cero.
Primer ejercicio:
EJERCICIO 1
Crea un script donde se calcule el tiempo en minutos entre que se formula primera petición al usuario y este responde, y entre una segunda petición al usuario y este responde. Ejemplo:
Introduzca su nombre: Alfredo >> Introduzca su país: Colombia >> Han pasado 0.122 minutos entre su primera y segunda respuesta.
Otro ejemplo: Introduzca su nombre: Juan >> Introduzca su país: Chile >> Han pasado 0.73 minutos entre su primera y segunda respuesta.
El codigo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
window.onload = function(){
var pregunta = confirm('Al pulsar aceptar comienza a contar el tiempo. Sabes cuál es la única palabra (en español) que contiene las 5 vocales"?');
if(pregunta==true){
var primeraToma = Date.now();
}else{};
var pista = ["M","u","r","c","i","e","l","a","g","o"];
var ayuda = ' ';
i = 0;
do{
var contestacion = prompt('Pon la respuesta aquí:');
contestacion = contestacion.toLowerCase();
if(contestacion!='murcielago' && i<pista.length-1){
ayuda = ayuda+pista[i];
alert('Respuesta Incorrecta!\nEmpieza por: '+ayuda);
i++;
}else if(contestacion!='murcielago'){
alert('La respuesta es: '+ayuda+pista[i]);
i++;
}
}while(contestacion!='murcielago' && i<pista.length);
if(contestacion){
var segundaToma = Date.now();
}
resultado = (segundaToma-primeraToma)/1000;
alert("Has contestado en: "+resultado+" segundos!!!");
if(resultado<10){
alert('Eres un crack!!!');
}else if(resultado>10 && resultado<20){
alert('Eres un poco lento');
}else{
alert('Muy lento');
}
}
</script>
</head>
<body>
</body>
</html>
El segundo ejercicio:
EJERCICIO 2
Crea un script donde pida al usuario que introduzca una primera fecha (fecha1) en formato dd-mm-yyyy, y una segunda fecha en el mismo formato y calcule los días que han pasado entre las dos fechas . Ejemplo: Introduzca la fecha 1: 05-09-2076 >> Introduzca la fecha 2: 09-09-2076 >> Entre las 00:00 horas del primer día a las 00:00 del segundo hay 4 días.
El código:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<style type="text/css">
#principal{
text-align: center;
padding: 100px;
font-size: 24px;
}
</style>
<script type="text/javascript">
var primeraEntrada = prompt('Entra una fecha en formato: aaaa-mm-dd');
primeraEntrada = primeraEntrada+'T00:00:00';
primeraEntrada = Date.parse(primeraEntrada);
var segundaEntrada = prompt('Entra una segunda fecha en formato: aaaa-mm-dd');
segundaEntrada = segundaEntrada+'T00:00:00';
segundaEntrada = Date.parse(segundaEntrada);
if(segundaEntrada<primeraEntrada){
var resultado = ((((primeraEntrada - segundaEntrada)/1000)/60)/60)/24;
}else{
var resultado = ((((segundaEntrada - primeraEntrada)/1000)/60)/60)/24;
}
if(resultado == 1){
resultado = 'Entra las dos fechas ha pasado: '+resultado+' día';
}else{
resultado = 'Entra las dos fechas han pasado: '+resultado+' días';
}
window.onload = function(){
principal.innerHTML = resultado;
}
</script>
</head>
<body>
<div id="principal"></div>
</body>
</html>
Gracias.
-
Hola!
El ejercicio 1 lo veo resuelto de una forma muy original
El ejercicio 2 también lo veo muy bien resuelto, aunque aquí no me ha gustado mucho la organización del código, me refiero a pedir las fechas y después dar la respuesta con el window.onload (veo preferible que se ejecute el código cuando se pulsa un botón por ejemplo como hace Pedro en https://www.aprenderaprogramar.com/foros/index.php?topic=3536.0)
También has cambiado el formato que tenía que ser dd-mm-yyyy por yyyy-mm-dd
De cualquier forma buen trabajo
Saludos!
-
Buenas tardes, César Krall.
Primero que nada, gracias por tu tiempo y por corregirme el ejercicio.
Tienes razón, debería de haberlo puesto como una ejecución de un botón. Reconzco que mis códigos son un poco "caóticos" a veces, jeje. Tendría que tener más cuidado y hacerlos más organizados.
Sobre la fecha, es verdad, no me había dado cuenta. Lo modificaré. También miraré el enlace de Pedro.
Saludos.
-
Visto el código de Pedro.
Debo reconocer que es un código mucho más organizado que el mío y más estilizado. Utiliza los métodos "substing()" de forma adecuada y, de este modo, ahorra la inclusión de variables innecesarias.
Saludos.
-
Hola dimiste,
sobre el ejecricio 1, indicarte dos cosas.
1.Al contestar la pregunta inicial hace lo mismo si le le das a Aceptar o a Cancelar.
2.Cuando tienes que introdicir la palabra, si no llegas a poner la palabra que tu pides, no marca los segundos que han pasado o indicar que no ha adivinado la palabra, el mensaje que sale en la ventana alert es un --> 'Has contestado en: Nan segundos!!!'
-
Buenas, bermartinv.
Gracias por la observación. Creo que nadie se había dado cuenta de ese fallo.
Con la modificación que hice pienso que ahora contempla esas dos circunstancias.
Pongo el código modificado, a continuación:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
window.onload = function(){
var pregunta = confirm('Sabes cuál es la única palabra (en español) que contiene las 5 vocales"?');
if(pregunta==true){
var primeraToma = Date.now();
}else{}
var pista = ["M","u","r","c","i","e","l","a","g","o"];
var ayuda = ' ';
i = 0;
if(pregunta){
do{
var contestacion = prompt('Pon la respuesta aquí:');
contestacion = contestacion.toLowerCase();
if(contestacion!='murcielago' && i<pista.length-1){
ayuda = ayuda+pista[i];
alert('Respuesta Incorrecta!\nEmpieza por: '+ayuda);
i++;
}else if(contestacion!='murcielago'){
alert('La respuesta es: '+ayuda+pista[i]);
i++;
}
}while(contestacion!='murcielago' && i<pista.length);
var segundaToma = Date.now();
resultado = (segundaToma-primeraToma)/1000;
if(contestacion == "murcielago"){
alert("Has contestado en: "+resultado+" segundos!!!");
if(resultado<10){
alert('Eres un crack!!!');
}else if(resultado>10 && resultado<20){
alert('Eres un poco lento');
}else{
alert('Muy lento');
}
}else{
alert("No has podido contestar correctamente!\nHan pasado: "+resultado+" segundos desde que has empezado");
}
}
}
</script>
</head>
<body>
</body>
</html>
Compruébalo.
Gracias
-
Ahora OK!!