Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] recursividad

Estas en el tema de recursividad en el foro de Javascript en Foros del Web. perdon que los moleste pero miren, tengo un par de problemas en javascript : - el primero, Cree una página HTML que, mediante función recursiva, ...
  #1 (permalink)  
Antiguo 08/04/2013, 07:54
 
Fecha de Ingreso: marzo-2013
Mensajes: 7
Antigüedad: 11 años, 8 meses
Puntos: 1
Sonrisa recursividad

perdon que los moleste pero miren, tengo un par de problemas en javascript:
- el primero, Cree una página HTML que, mediante función recursiva, calcule el valor de x^n siendo "x" un numero real, y "n" un numero entero positivo.
- segundo problema Cree una página HTML que reciba un número entero positivo y mediante un afuncion recursiva, devuelva dicho numero sin su primer digito.
Por favor ayudenme a resolverlos, mi intentos, junto al .js, estan aqui: http://www.4shared.com/rar/w2_wuz1G/ayuda.html, las carpetas estan ordenadas, por favor ayudenme, pasa que no entiendo muy bien el concepto de recursisvidad, s muy confuso algunos conceptos los entiendo bien, peor no puede con estos dos, el primero me da error, me dice que los datos no son vectores, y co el segundo no pude sacar el razonamiento
gracias

Última edición por chamo_latoso18; 08/04/2013 a las 07:59
  #2 (permalink)  
Antiguo 08/04/2013, 08:47
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: recursividad

Hola:

La recursión en una potencia no merece enlazar a terceras páginas... serán menos de 10 líneas de código, así que bien podrías insertarlas en un mensaje... Si llevan más líneas, deberías buscar info... de todos modos, con números algo elevados, podrías tener problemas ya que la precisión en operaciones matemáticas es realmente mala (en javascript)... de todos modos existen primitivas para no necesitar soluciones recursivas...


Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 08/04/2013, 09:01
 
Fecha de Ingreso: marzo-2013
Mensajes: 7
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: recursividad

la verda si eso de elevar x a la n y alo hice, el codigo esta bien, y lo revise varias vecea, y tambien me lo revisaron, pero al momento de validad los datos en mi pagina html, es que me lanza un error, la funcion me quedo asi:
function poter(x,n){
if (n!=0) return pote(pow(x,n-1))*x;
return 1;
}
por que solo se trata de numeros enteros positivos, y como te digo el problema esta en la validasion ,el codigo completo que hice es este :
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo 4</title>
<script src="sis101.js"></script>
<script>
//Calculo recursivo del numero de digitos
function poter(x,n){
if (n!=0) return pote(pow(x,n-1))*x;
return 1;
}
//Validacion del numero y llamada a la funcion recursiva
function pote(x,n){
if (isNaN(n))
throw new Error("fact: Los datos deben ser numericos.");
if (frac(n)==0)
throw new Error("fact: El exponencial debe ser entero.");
if (n<0)
throw new Error("fact: El exponcial debe ser positivo.");
return poter(x,n);
}
//Calculo y presentacion del numero de digitos
function calcular(){
try{
var n=parseInt(document.getElementById("num").value);
var x=parseInt(document.getElementById("num1").value);
document.getElementById("res").value=pote(n);
document.getElementById("num").focus();
document.getElementById("num").select();
} catch(e){
alert("factorial: "+e.message);
}
}
//Valida el dato escrito en el input "num"
function vDato(){
var n=document.getElementById("num").value;
var x=document.getElementById("num1").value;
try{
if((isNaN(n)) && (isNaN(x))) throw new Error("Los datos deben numeros");
if(frac(n)!=0) throw new Error("El exponecial debe ser entero");
if(n<0) throw new Error("El exponecial debe ser positivo");
return true;
} catch(e){
alert(e.message);
document.getElementById("num").select();
document.getElementById("num").focus();
return false;
}
}
//valida la escritura de numeros naturales (enteros positivos)
function vNatural(event){
//tecla pulsada
var key=event.which;
//si la tecla pulsada esta entre 0 y 9
if (key>=48 && key<=57) return true;
//si la tecla es retroceso(8), tab(9), fin(35), inicio(36),
//cursor izquierdo (37), cursor derecho(39) o suprimir(46)
if (key==8 || key==9 || key==35 || key==36 || key==37 ||
key==39 || key==46) return true;
//si la tecla pulsada es Enter y el valor escrito es un numerp
if (key==13 && vDato()){
document.getElementById("btn1").onclick();
return true;
}
return false;
}
//Selecciona el input "num" al cargar la pagina
function iniciar(){
document.getElementById("num").focus();
document.getElementById("num").select();
}
</script>
</head>
<body onload="iniciar()">
<h3>potencia x^n</h3>
<label for="num">Introducir x :<br>
<input type="text" id="num" value="0" size="6"
onkeydown="return vNatural(event)"><br>
<label for="num">Introducir n :<br>
<input type="text" id="num1" value="0" size="6"
onkeydown="return vNatural(event)"><br>
<label for="res">Resultado:<br>
<input type="text" id="res" value="1" size="20" readonly><br>
<button type="button" id="btn1" onclick="calcular()"> Calcular
</button>
</body>
</html>

Etiquetas: programacion
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




La zona horaria es GMT -6. Ahora son las 18:23.