Foros del Web » Programando para Internet » Javascript »

desesperado con un ejercicio Ayuda!!!

Estas en el tema de desesperado con un ejercicio Ayuda!!! en el foro de Javascript en Foros del Web. No suelo pedir ayuda, y como veis si veis mi perfil me acabo de registrar. Este año he empezado el modulo de dai y mas ...
  #1 (permalink)  
Antiguo 20/01/2009, 15:25
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes
Puntos: 0
desesperado con un ejercicio Ayuda!!!

No suelo pedir ayuda, y como veis si veis mi perfil me acabo de registrar.

Este año he empezado el modulo de dai y mas o menos bien, y este mes en programacion web hemos empezado con javascript y soy novato muyyyy... novato,

me han mandado un ejercicio para clase y llevo tres dias intentandolo, era para haber si me podiais mirar en que fallo por que no lo entiendo no me sale,

el ejercicio es este:

Crear una función fcalcular que admita un signo de operación y dos numéro.
Si la operación es +, devolverá la suma.
Si la operación es -, devolverá la resta del primero menos el segundo.
Si la operación es *, devolverá la multiplicación.
Si la operación es /, devolverá la división del primero entre el segundo.
Si la operación es +%, devolverá el primero aumentado por el porcentaje del segundo.
Si la operación es -%, devolverá el primero disminuido por el porcentaje del segundo.

Ejemplo de ejecución: document.write(fcalcular('+',2,3);


y el ejercicio que llevo hecho es este ->

<html>
<head>
<title>signo de operacion</title>
<script text/class='javascript'>


function fcalcular(op,n1,n2)


{

while (opc != "7")



opc=prompt("introduce la opción que desees: (1)suma-</br>(2)resta-</br>(3)multiplicacion-</br>(4)division-</br>(5)primero aumentado por el porcentaje del segundo-</br>(6)devolverá el primero disminuido por el porcentaje del segundo-</br>(7)salir-","");

switch(op)
{
case 1:
resultado = n1 + n2;
alert("El resultado es " + resultado);
break;
case 2:
resultado = n1 - n2;
alert("El resultado es " + resultado);
break;
case 3:
resultado = n1 * n2;
alert("El resultado es " + resultado);
break;
case 4:
resultado = n1 / n2;
alert("El resultado es " + resultado);
break;
case 5:
resultado = n1 +% n2;
alert("El resultado es " + resultado);
break;
case 6:
resultado = n1 -% n2;
alert("El resultado es " + resultado);
break;

}
}

var d=prompt ('dame numero');
var d1=prompt ('dame numero');
fcalcular(d,d1)

fcalcular('+'d,d1);
fcalcular('-'d,d1);
fcalcular('*'d,d1);
fcalcular('/'d,d1);
fcalcular('+%'d,d1);
fcalcular('-%'d,d1);

</script>
</head>
</html>


Mirarmelo haber en que fallo por favor que estoy desesperado


GRACIAS y un saludo
  #2 (permalink)  
Antiguo 20/01/2009, 18:24
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 7 meses
Puntos: 23
Respuesta: desesperado con un ejercicio Ayuda!!!

Pues hasta donde yo conozco no existe esta operacion
resultado = n1 +% n2;
deberia de ser
resultado = n1 + n1*n2/100;

y el equivalente para resta

en el
while (opc != "7")

opc no esta definido asi que supongo marca errores

y por ultimo, al llamar a la funcion
fcalcular('+'d,d1);
mandas un caracter en op y en el switch solo validas contra numeros.
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #3 (permalink)  
Antiguo 21/01/2009, 03:25
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 4 meses
Puntos: 66
Respuesta: desesperado con un ejercicio Ayuda!!!

hola keypier,
Si quieres prueba esto a ver que te parece. No se parece mucho a tu idea pero funciona (lo cierto es que tu código no lo he probado, pero como decías que no te iba...)
<html>
<head></head>
<script type="text/javascript">
function fCalcular()
{
var val1 = new Number(document.getElementById('val1').value);
var val2 = new Number(document.getElementById('val2').value);
var signo = document.getElementById('signo').value;
switch(signo)
{
case 'mas':
alert(val1 + val2);
break;
case 'menos':
alert(val1 - val2);
break;
case 'por':
alert(val1 * val2);
break;
case 'entre':
alert(val1 / val2);
break;
case 'masPorc':
alert(val1 + (val1 * (val2 / 100)));
break;
case 'menosPorc':
alert(val1 - (val1 * (val2 / 100)));
break;
}
}
function modificarDiv(valor)
{
var elDiv = document.getElementById('el_texto');
var signo = document.getElementById('signo');

switch(valor)
{
case 'mas':
elDiv.innerHTML = 'sumar';
signo.value='mas';
break;
case 'menos':
elDiv.innerHTML = 'restar';
signo.value='menos';
break;
case 'por':
elDiv.innerHTML = 'multiplicar';
signo.value='por';
break;
case 'entre':
elDiv.innerHTML = 'division';
signo.value='entre';
break;
case 'masPorc':
elDiv.innerHTML = 'aumentar porcentaje';
signo.value='masPorc';
break;
case 'menosPorc':
elDiv.innerHTML = 'disminuir porcentaje';
signo.value='menosPorc';
break;
}
}
</script>


<body >

<form id="form1" runat="server">
<div>
<input type="text" id="val1" /><br />
<input type="button" id="b1" value="+" onclick="modificarDiv('mas');" />
<input type="button" id="b2" value="-" onclick="modificarDiv('menos');" />
<input type="button" id="b3" value="*" onclick="modificarDiv('por');" />
<input type="button" id="b4" value="/" onclick="modificarDiv('entre');" />
<input type="button" id="b5" value="+%" onclick="modificarDiv('masPorc');" />
<input type="button" id="b6" value="-%"onclick="modificarDiv('menosPorc');" /><div style="position:absolute" id="el_texto"></div><br />
<input type="text" id="val2" /><br />
<input type="hidden" id="signo" />
<input type="button" id="ejecutar" value="Ejecutar"onclick="fCalcular();" />
</div>
</form>

</body>
</html>
Este código debería de mejorarse, pero la función básica la hace. Espero que te sirva.

salu2
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 02:32.