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: gterrasi.25 en 17 de Marzo 2020, 03:59
-
Buenas! les escribo ya que presento problemas para que la funcion CalculoImpuesto (nombre que le puse yo a la funcion) devuelva un valor al invocarla(me devuelve 'undefined') alguien me podria ayudar por favor? Yo no le encuentro errores a mi código, y el ejercicio lo extraje de la guia de javascript de esta dirección:
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=800:funciones-javascript-concepto-parametros-argumentos-y-tipos-paso-por-valor-return-ejemplo-cu01122e&catid=78&Itemid=206
<!DOCTYPE html> <!--PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--! si vas a crear javascript-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!--usa esta linea de codigo para resolver lo de los acentos (parece que tiene que ver con el valor utf-8 de charset)-->
<title>Gerlando Terrasi</title>
<link rel="stylesheet" type="text/css" href="portstyle.css"/>
<script src="https://npmcdn.com/vue/dist/vue.js"></script>
//Ahora: crear la funcion ObtenerImporteConImpuestos el cual te da el importe con Impuestos para cada tipo de producto (1,2 y 3)
do {
I = prompt('Introduzca el importe sin impuestos (valor numérico)','No digas 0');
if (I<=0){
alert('Valor inadmisible, debe ser positivo. Intenta con otro valor');
continue
}
a = prompt('Introduzca el tipo de producto (solo valores 1,2 ó 3)');
if (a!=1 && a!=2 && a!=3){
alert('Valor inadmisible, debe ser 1,2 ó 3. Intenta con otro valor');
}
} while (I<=0 && a!=1 && a!=2 && a!=3)
parseInt(a);
parseFloat(I);
//A continuación, creamos la función:
function CalculoImpuesto(I,a) {
var r;
switch (a) {
case 1:
r= I*1.21; break
case 2:
r=I*1.1; break
case 3:
r=I*1.05; break
}
return r
}
var r;
r=CalculoImpuesto(I,a);
alert(r);
-
Buenas, es importante que para crear hilos y escribir código sigas las indicaciones que se dan en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 Debes incluir en el título el código del ejercicio para poder localizarlo, y pegar el código como se indica.
En tu código incluyes un script a una url npmcdn... ¿con qué finalidad?
-
Ok de acuerdo. He aquí el código modificado según las instruccione. Ogramar, el script con la URL npmcdn lo retiré (No es necesario tenerla en el código)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Gerlando Terrasi</title>
<link rel="stylesheet" type="text/css" href="portstyle.css"/>
<script type="text/javascript">//Ahora: crear la funcion
ObtenerImporteConImpuestos el cual te da el importe con Impuestos para
cada tipo de producto (1,2,3)
do {
I = prompt('Introduzca el importe sin impuestos (valor
numérico)','No digas 0');
if (I<=0){
alert('Valor inadmisible, debe ser positivo. Intenta con otro
valor');
continue
}
a = prompt('Introduzca el tipo de producto (solo valores 1,2 ó
3)');
if (a!=1 && a!=2 && a!=3){
alert('Valor inadmisible, debe ser 1,2 ó 3. Intenta con otro
valor');
}
} while (I<=0 && a!=1 && a!=2 && a!=3)
parseInt(a);
parseFloat(I);
//A continuación, creamos la función:
function CalculoImpuesto(I,a) {
var r;
switch (a) {
case 1:
r= I*1.21; break
case 2:
r=I*1.1; break
case 3:
r=I*1.05; break
}
return r
}
var r;
r=CalculoImpuesto(I,a);
alert(r);
</script>
</head>
<body>
<p>Hola como estas?</p>
</body>
</html>
-
Buenas, en el código que has planteado has supuesto que parseInt(a); y parseFloat(I); modifican los valores de a y de I, pero en realidad no es así. Necesitas hacer a=parseInt(a); e I=parseFloat(I); para que los valores queden modificados. Con ese cambio parece que ya funciona. No obstante, deberías mejorar el orden en el código y la forma de nombrar variables. Estás usando una variable r tanto como resultado local de una función como para almacenar el resultado en el ámbito global. Esto no está prohibido pero resulta confuso. Pudiendo elegir cualquier nombre de variable distinto, ¿para qué elegir el mismo nombre? Revisa este hilo donde está el ejercicio resuelto con el código mejor ordenado y trata de comprender lo que ahí se hace, posiblemente te oriente para plantear soluciones más ordenadas: https://aprenderaprogramar.com/foros/index.php?topic=3259.0
Salu2