Foros del Web » Programando para Internet » Javascript »

Desafios Javascript, ronda 2

Estas en el tema de Desafios Javascript, ronda 2 en el foro de Javascript en Foros del Web. Bueno, para seguir a tono, tres nuevos problemas para las mentes inquietas. Esta vez, la idea es que sean más lógica que los de la ...
  #1 (permalink)  
Antiguo 19/10/2011, 18:22
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Desafios Javascript, ronda 2

Bueno, para seguir a tono, tres nuevos problemas para las mentes inquietas.

Esta vez, la idea es que sean más lógica que los de la primera entrega.

Los enunciados completos se pueden encontrar en esta entrada (si, de mi blog ): Desafios en JavaScript, ronda 2.

LEER ANTES DE POSTEAR SOLUCIONES

Para hacerlo un poco más ordenado, en lugar de postear aquí mismo las soluciones, les diría que usen algún servicio como gist o JSFiddle (preferentemente este último, ya que permite ejecutar in situ).

Al igual que la vez anterior, si tienen alguna duda posteen aquí o en el mismo blog que no tengo problemas en responder.

Saludos!
__________________
blog | @aijoona

Última edición por Aijoona; 19/10/2011 a las 18:28
  #2 (permalink)  
Antiguo 20/10/2011, 07:59
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Desafios Javascript, ronda 2

Mi solución al problema 2: http://jsfiddle.net/a9XxD/
__________________
blog | @aijoona
  #3 (permalink)  
Antiguo 20/10/2011, 10:24
Avatar de Franz1628  
Fecha de Ingreso: marzo-2007
Ubicación: Lima - Perú
Mensajes: 145
Antigüedad: 17 años, 7 meses
Puntos: 26
Respuesta: Desafios Javascript, ronda 2

Yo también encontré una solución

http://jsfiddle.net/pTpcE/

No conocía esta página
__________________
En mi Blog puedes ver articulos javascript y más...
@Franz1628
  #4 (permalink)  
Antiguo 20/10/2011, 14:26
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Desafios Javascript, ronda 2

Mi solución al 2º problema
http://jsfiddle.net/B84at/
Saludos :D
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 21/10/2011, 06:47
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Desafios Javascript, ronda 2

Solución rápida al tercer problema (la reviso más tarde): http://jsfiddle.net/KjeJp/
__________________
blog | @aijoona
  #6 (permalink)  
Antiguo 21/10/2011, 16:47
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Desafios Javascript, ronda 2

Parece que los numeros romanos son un desafio
__________________
blog | @aijoona
  #7 (permalink)  
Antiguo 21/10/2011, 18:31
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Desafios Javascript, ronda 2

Estuve como 1h antes de comer y otra hora antes de cenar, veo varios caminos pero siempre hay algún número en el que falla D: Creo que me va a costar más de lo que pensaba
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #8 (permalink)  
Antiguo 22/10/2011, 03:32
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Desafios Javascript, ronda 2

Hola:

Sobre números romanos, yo los condiciono a que sean menores de 4000: Desafío javascript: números romanos

Código:
Number.prototype.romano = function()	{
	function Ms(n) {
		if (n > 1000) return "M" + Ms(n - 1000)
		else return "";
	}

	function Cs(n) {
		ciento = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"];
		return ciento[parseInt(n / 100)];
	}

	function Xs(n) {
		decena = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"];
		return decena[parseInt(n / 10)];
	}

	function Is(n) {
		unidad = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
		return unidad[parseInt(n)];
	}

	if (this < 4000) {
		return Ms(this) + Cs(this % 1000) + Xs(this % 100) + Is(this % 10);
	}
	else
		return "número no soportado...";

}
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 22/10/2011, 06:03
Avatar de Franz1628  
Fecha de Ingreso: marzo-2007
Ubicación: Lima - Perú
Mensajes: 145
Antigüedad: 17 años, 7 meses
Puntos: 26
Respuesta: Desafios Javascript, ronda 2

Caricatos es de otro nivel, ve más allá de lo evidente
__________________
En mi Blog puedes ver articulos javascript y más...
@Franz1628

Última edición por Franz1628; 22/10/2011 a las 08:16
  #10 (permalink)  
Antiguo 22/10/2011, 14:18
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Desafios Javascript, ronda 2

Ya terminé! Sólo me faltaba el else y meter el string vacío, después de 2 días peleándome con él
Como la solución de @caricatos, mi script también está supeditado a que el número sea menor que 4000, pero creo que servirá para el aprobado XD
Saludos (:
Edit: Elemental, el link http://jsfiddle.net/58wx7/
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #11 (permalink)  
Antiguo 22/10/2011, 23:13
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: Desafios Javascript, ronda 2

Estuve un poco complicado estos días, pero ahí va mi solución para el desafío de los romanos:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script type="text/javascript">
function arabigo2Romano(n){
	var _replace=['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'],
	_search=[1000,900,500,400,100,90,50,40,10,9,5,4,1],
	tmp='';
	for(var i=0,len=_replace.length;i<len;i++)
		while(n>=_search[i]){
			tmp+=_replace[i];
			n-=_search[i];
		}
	return tmp;
}
onload=function(){
	for(var i=0;i<100;i++){
		var n=Math.round(Math.random()*9999);
		document.getElementById('log').innerHTML+=n+': '+arabigo2Romano(n)+'<br>';	
	}
}
</script>
</head>

<body>
<div id="log"></div>
</body>
</html>
http://jsfiddle.net/panino/UuQ7m/

Última edición por Panino5001; 22/10/2011 a las 23:37
  #12 (permalink)  
Antiguo 23/10/2011, 01:14
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: Desafios Javascript, ronda 2

Esta es mi implementación del ejercicio de ordenamiento (ajusté el quicksort clásico a los requerimientos del ejecicio):
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script type="text/javascript">
function quicksort(arr){
 	while(arr.length){
		var opts=[[],[]],
		piv = arr[0],
		tmp=[].concat(arr.slice(1));
		while(tmp.length){
			var o=tmp.shift();
			opts[+Boolean((o-piv).toString().indexOf('-'))].push(o);
		}
		return quicksort(opts[0]).concat(piv, quicksort(opts[1]));
	}
	return [];
}
onload=function(){
	var a=[],i=0;
	for(;i<10;i++)
		a.push(Math.round(Math.random()*100));
	document.getElementById('log').innerHTML=a+'-->'+quicksort(a);
}
</script>
</head>

<body>
<div id="log"></div>
</body>
</html>
http://jsfiddle.net/panino/msBhE/
  #13 (permalink)  
Antiguo 23/10/2011, 15:34
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Desafios Javascript, ronda 2

Epa, ahi está mas interesante :)
__________________
blog | @aijoona
  #14 (permalink)  
Antiguo 25/10/2011, 06:11
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Desafios Javascript, ronda 2

Gracias por las soluciones, cuando me haga un poco de tiempo actualizo en el blog. :)
__________________
blog | @aijoona
  #15 (permalink)  
Antiguo 28/10/2011, 19:40
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Desafios Javascript, ronda 2

Gracias a los que participaron, ya actualice el blog con algunas de las soluciones propuestas. :)
__________________
blog | @aijoona
  #16 (permalink)  
Antiguo 29/10/2011, 00:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Desafios Javascript, ronda 2

Hola:

Cita:
Iniciado por Aijoona Ver Mensaje
Como mi solución no es lo suficientemente elegante, procedo a adjuntar la solución propuesta por...
¡Ja, ja!... Un modo elegante de salirse por la tangente

... y te guardas tu solución...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #17 (permalink)  
Antiguo 29/10/2011, 07:10
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Desafios Javascript, ronda 2

Siendo que tiene más del doble de líneas de código tengo que confesar que hasta me da vergüenza :D
__________________
blog | @aijoona
  #18 (permalink)  
Antiguo 04/11/2011, 21:58
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años
Puntos: 56
Respuesta: Desafios Javascript, ronda 2

Hola :). Esta es mi solución para los romanos,
http://jsfiddle.net/wZVanG/yjX8J/
PD: Es útil jsfiddle
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */

Etiquetas: desafios, quiz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 16:46.