Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: erniker en 27 de Septiembre 2014, 15:35
-
Tengo que crear una función que reciba cinco números enteros como parámetros y muestre por pantalla el resultado de sumar los cinco números (tipo procedimiento, no hay valor devuelto).
Lo que yo he escrito es esto:
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
//Funcion procedimiento
function sumacincosin($resultado) {
echo $resultado;
}
$n1 = 1;
$n2 = 2;
$n3 = 3;
$n4 = 4;
$n5 = 5;
sumacincosin(n1 + n2 + n3 + n4 + n5);
echo "</br>";
?>
</body>
</html>
Pero me muestra un 0 por pantalla... no se muy bien donde esta el fallo
Gracias
-
vale, ya funciona :)
-
¿Puedes poner el código corregido? Puede servirle de ayuda a otras personas...
-
El enunciado es este (Entrega 23 del curso de PHP)
Crear las siguientes funciones en PHP y código para comprobar su funcionamiento:
a) Una función que reciba cinco números enteros como parámetros y muestre por pantalla el resultado de sumar los cinco números (tipo procedimiento, no hay valor devuelto).
b) Una función que reciba cinco números enteros como parámetros y devuelva el resultado de sumar los cinco números (tipo función, hay un valor devuelto). Asigna el resultado de una invocación a la función con los números 2, 5, 1, 8, 10 a una variable de nombre $tmp y muestra por pantalla el valor de la variable.
c) Una función que reciba como parámetros el valor del radio de la base y la altura de un cilindro y devuelva el volumen del cilindro, teniendo en cuenta que el volumen de un cilindro se calcula como Volumen = númeroPi * radio * radio * Altura siendo númeroPi = 3.1416 aproximadamente.
El codigo completo para este ejercicio creo que este (espero no estar muy equivocado :P):
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
//Funcion procedimiento
function sumacincosin($resultado) {
echo $resultado;
}
$n1 = 1;
$n2 = 2;
$n3 = 3;
$n4 = 4;
$n5 = 5;
sumacincosin($n1 + $n2 + $n3 + $n4 + $n5);
echo "</br>";
//Funcion con valor devuelto
function sumacinco($n1, $n2, $n3, $n4, $n5) {
$tmp = $n1 + $n2 + $n3 + $n4 + $n5;
return $tmp;
}
echo sumacinco(2, 5, 1, 8, 10);
echo "</br>";
//Función volumen cilindro
function volumencilindro($radiobase, $altura) {
$numeroPI = 3.1416;
$volmen = $numeroPI * $radiobase * $radiobase *$altura;
echo "El volumen del cilindro es: ";
return $volmen;
}
echo volumencilindro(2, 4);
echo "</br>";
?>
</body>
</html>
Espero que sirva :)
-
Te comento:
a) Una función que reciba cinco números enteros como parámetros y muestre por pantalla el resultado de sumar los cinco números (tipo procedimiento, no hay valor devuelto).
Tu código no es correcto. ¿Por qué? Porque la función sumacincosin que tú has definido no recibe 5 números como parámetros.
Este código:
function sumacincosin($resultado) {
echo $resultado;
}
no recibe 5 parámetros y calcula la suma. Simplemente recibe algo y lo muestra por pantalla con la instrucción echo. Pero da igual que le pases la cadena "camilla" a que le pases la suma de 3 números a que le pases la suma de 5, lo único que hace es aplicar la función echo sobre lo que recibe. El resto del código que has escrito está fuera de function (...) { ... } por lo que no pertenece a la función.
La solución correcta sería algo así:
function sumacincosin($n1, $n2, $n3, $n4, $n5) {
$tmp = $n1 + $n2 + $n3 + $n4 + $n5;
echo 'El resultado de sumar los cinco números recibidos es'.$tmp;}
Esta función es tipo procedimiento porque no existen una sentencia return que devuelva un resultado.
b) Una función que reciba cinco números enteros como parámetros y devuelva el resultado de sumar los cinco números (tipo función, hay un valor devuelto).
Tu código es correcto.
c) Una función que reciba como parámetros el valor del radio de la base y la altura de un cilindro y devuelva el volumen del cilindro.
Tu código digamos que está bien planteado pero sería mejor que fuera así:
function volumencilindro($radiobase, $altura) {
$numeroPI = 3.1416;
$volmen = $numeroPI * $radiobase * $radiobase *$altura;
return $volmen;
}
¿Por qué? Porque el enunciado no dice que la función deba mostrar ningún mensaje, sino simplemente que debe devolver el volumen del cilindro. Y porque es la forma habitual de trabajar en programación: una función devuelve un resultado sin mensajes.
Supón que quisieras mostrar un mensaje. Para ello debes llamar a la función desde fuera de ella, por ejemplo en este código lo puedes ver:
<?php
function volumencilindro($radiobase, $altura) {
$numeroPI = 3.1416;
$volmen = $numeroPI * $radiobase * $radiobase *$altura;
return $volmen;
}
//La función ya terminó, estamos fuera de ella
echo 'El volumen del cilindro de base 2 metros y altura 3 metros es '.volumencilindro(2,3).' metros';
Hay otra cosa que debes intentar hacer, que es usar sintaxis camelCase para el nombre de funciones. Esto significa que se empieza con minúsculas y cada vez que viene una nueva palabra se intercala una minúsculas. Por ejemplo volumenCilindro ó sumaCincoNumeros en lugar de volumencilindro o sumacinconumeros.
Saludos
-
Por cierto que es el ejercicio CU00827B y no el 23B si no me equivoco :-X
-
Vale, entones el codigo correcto de este ejercicio completo seria algo asi:
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
//Funcion procedimiento
function sumaCincoSin($n1, $n2, $n3, $n4, $n5) {
$tmp = $n1 + $n2 + $n3 + $n4 + $n5;
echo 'El resultado de sumar los cinco números recibidos es '.$tmp;
}
sumacincosin(1, 2, 3, 4, 5);
echo "</br>";
//Funcion con valor devuelto
function sumaCinco($n1, $n2, $n3, $n4, $n5) {
$tmp = $n1 + $n2 + $n3 + $n4 + $n5;
return $tmp;
}
echo 'El resultado de sumar los cinco números recibidos es ' .sumaCinco(2, 5, 1, 8, 10);
echo "</br>";
//Función volumen cilindro
function volumenCilindro($radiobase, $altura) {
$numeroPI = 3.1416;
$volmen = $numeroPI * $radiobase * $radiobase *$altura;
return $volmen;
}
echo 'El volumen del cilindro de base 2 metros y altura 3 metros es '.volumencilindro(2,3).' metros';
echo "</br>";
?>
</body>
</html>
-
Sí, ahora está bien. Lo que te recomendaría es que separes por un lado las funciones y por otro lado el código para una mejor organización. Quedaría así:
<?php
//FUNCIONES
//Función tipo procedimiento
function sumaCincoSin($n1, $n2, $n3, $n4, $n5) {
$tmp = $n1 + $n2 + $n3 + $n4 + $n5;
echo 'El resultado de sumar los cinco números recibidos es '.$tmp;
}
//Funcion con valor devuelto
function sumaCinco($n1, $n2, $n3, $n4, $n5) {
$tmp = $n1 + $n2 + $n3 + $n4 + $n5;
return $tmp;
}
//Función volumen cilindro
function volumenCilindro($radiobase, $altura) {
$numeroPI = 3.1416;
$volmen = $numeroPI * $radiobase * $radiobase *$altura;
return $volmen;
}
//FIN FUNCIONES
?>
<html>
<head><title>Ejemplo aprenderaprogramar.com</title></head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
<?php
echo "Pruebas de la funcion sumaCincosin: <br/>";
sumacincosin(1, 2, 3, 4, 5);
echo "<br/>";
sumacincosin(2, 4, 6, 8, 10);
echo "<br/><br/>";
echo "Pruebas de la funcion sumaCinco: <br/>";
echo 'El resultado de sumar los cinco números recibidos es ' .sumaCinco(2, 5, 1, 8, 10);
echo "</br>";
echo 'El resultado de sumar los cinco números recibidos es ' .sumaCinco(5, 10, 19, 18, 10);
echo "<br/><br/>";
echo "Pruebas de la funcion volumenCilindro: <br/>";
echo 'El volumen del cilindro de base 2 metros y altura 3 metros es '.volumencilindro(2,3).' metros';
echo "<br/>";
echo 'El volumen del cilindro de base 5 metros y altura 3 metros es '.volumencilindro(5,3).' metros';
echo "<br/>";
?>
</body>
</html>