Autor Tema: PHP Funciones que reciben arrays como parámetros procedimientos Ejemplo CU0827B  (Leído 3114 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola, dejo la solución del ejercicio CU0827B del tutorial php desde cero.

Citar
EJERCICIO
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.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Ejercicio. CU00827B</title>
<meta charset="utf-8">
</head>
<body>
<h1>Apartado a</h1>
<?php 
function sumaNumeros($numero){
$msg 'El resultado de sumar: ';
$resultado 0;
for($i 0$i count($numero); $i++) {
$resultado += $numero[$i];
if($i < (count($numero)-1)){
$msg $msg $numero[$i] . ' + ';
} else {
$msg $msg $numero[$i] . ' = ' $resultado;
}
}
echo ($msg);
}
sumaNumeros([371142]);
?>

<hr>
<h1>Apartado b</h1>
<?php
function returnSumaNumeros($numero){
$msg 'El resultado de sumar: ';
$resultado 0;
for($i 0$i count($numero); $i++) {
$resultado += $numero[$i];
if($i < (count($numero)-1)){
$msg $msg $numero[$i] . ' + ';
} else {
$msg $msg $numero[$i] . ' = ' $resultado;
}
}
return $msg;
}
$tmp returnSumaNumeros([251810]);
echo ($tmp);
?>

<hr>
<h1>Apartado c</h1>
<?php
function volumenCilindro($radio$altura) {
return 'El volumen del cilindro con radio=' $radio ' y altura=' $altura ' es ' . (3.1416 $radio $radio $altura);
}
echo (volumenCilindro(24));
?>

</body>
</html>

http://aprendehtml.byethost3.com/CU00827B/ejercicioCU00827B.php

Saludos.
« Última modificación: 09 de Marzo 2016, 17:42 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola Pedro con este ejercicio me ocurre lo mismo que con uno anterior, me sale un error

Parse error: syntax error, unexpected '[', expecting ')' in

Situado en la línea:

sumaNumeros([3, 7, 11, 4, 2]);

o también en

$tmp = returnSumaNumeros([2, 5, 1, 8, 10]);

Se puede corregir haciendo:

sumaNumeros(array(3, 7, 11, 4, 2));

O también de esta manera:

$tmp = returnSumaNumeros($dato);
echo ($tmp);

Como ya hemos comentado en unos casos (en algunos servidores) da error y en otros no, depende de la versión php que estemos usando.

En el apartado a) haz hecho que los cinco números se envíen en un array. Realmente el ejercicio no indica expresamente que se use un array y quizás la solución más normal es tener cinco parámetros como se comenta en https://www.aprenderaprogramar.com/foros/index.php?topic=1372.0 aunque enviarlos en un array también está bien

En el apartado b) si se trata de una función es más normal que una función devuelva un valor, en este caso un valor numérico, en lugar de una cadena. Puedes verlo en el hilo que te he citado antes

Con el apartado c) ocurre lo mismo: una función normalmente devolvería el volumen como valor numérico, no una cadena informando del volumen del cilindro. El motivo para ello es que el valor numérico te permitirá operar, mostrar mensajes, etc. mientras que una cadena no te da esa funcionalidad.

Saludos

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola Alex.

Los arrays a partir de ahora los creare de distinta forma para que no haya problemas con las versiones.

Lo de la función lo tendré en cuenta para próximas entregas, quise dejar claro el mensaje y podría haberlo hecho desde fuera de la función.

El código corregido quedaría de la siguiente forma:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Ejercicio. CU00827B</title>
<meta charset="utf-8">
</head>
<body>
<h1>Apartado a</h1>
<?php 
$numeros = array(251810);
sumaNumeros($numeros);
function sumaNumeros($numero){
$msg 'El resultado de sumar: ';
$resultado 0;
for($i 0$i count($numero); $i++) {
$resultado += $numero[$i];
if($i < (count($numero)-1)){
$msg $msg $numero[$i] . ' + ';
} else {
$msg $msg $numero[$i] . ' = ' $resultado;
}
}
echo ($msg);
}
?>

<hr>
<h1>Apartado b</h1>
<?php
$numeros = array(251810);
$tmp returnSumaNumeros($numeros);
$msg 'El resultado de sumar: ';
for($i 0$i count($numeros); $i++) {
if($i < (count($numeros)-1)){
$msg $msg $numeros[$i] . ' + ';
} else {
$msg $msg $numeros[$i] . ' = ';
}
}
echo ($msg $tmp);
function returnSumaNumeros($numero){
$resultado 0;
for($i 0$i count($numero); $i++) {
$resultado += $numero[$i];
}
return $resultado;
}
?>

<hr>
<h1>Apartado c</h1>
<?php
function volumenCilindro($radio$altura) {
return 3.1416 $radio $radio $altura;
}
echo ('El volumen del cilindro es = ' .  volumenCilindro(24));
?>

</body>
</html>

Gracias por corregir.

Saludos.
« Última modificación: 10 de Marzo 2016, 19:38 por Alex Rodríguez »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".