Autor Tema: Java diferencia entre procedimientos y funciones (métodos devuelven) CU00630B  (Leído 5734 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas tardes,

aquí dejo la solución del ejercicio CU00630B del curso Java desde cero.

Citar
EJERCICIO

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo DiscoMusical. Define las signaturas para métodos dentro dicha clase e indica si deberán ser procedimientos o funciones para los siguientes objetivos planteados:

1) Obtener la duración de una canción expresada como un número decimal en minutos (por ejemplo podría ser 3,22 minutos) recibiendo como dato el número de canción dentro del disco.

2) Pedir a un administrador de una compañía discográfica que introduzca la duración de todas las canciones (dichas duraciones se almacenarán como información del objeto). Es decir, el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones.

3) Obtener la duración del disco completo (suma de las duraciones de cada una de las canciones).

4) Añadir una canción al disco recibiendo como información para ello el título de la canción y su duración (se añadirá como última canción en el disco. Si el disco tenía por ejemplo 10 canciones, al añadirse una canción pasará a tener 11).

1) public float getDuracionCancion(int numeroCancion){...} - es tipo función

2) public void setDuracionCanciones(int duracionCancion[]){...} - es tipo procedimiento

3) public getDuracionDisco(){...} - es tipo función

4) public void setDisco(String titulo, int duracionCancion){...} - es tipo procedimiento

Gracias.
« Última modificación: 29 de Febrero 2016, 13:39 por César Krall »

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU00630B
« Respuesta #1 en: 27 de Febrero 2016, 13:19 »
corrigo:

3) public ing getDuracionDisco(){...} - es tipo procedimiento

   o

3) public float getDuracionDisco(){...} - es tipo procedimiento.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!


1) public float getDuracionCancion(int numeroCancion){...} - es tipo función, CORRECTO

2) public void setDuracionCanciones(int duracionCancion[]){...} - es tipo procedimiento, NO CORRECTO. El enunciado no dice que haya de pasarse como parámetro nada. La respuesta sería algo como saludaAndSolicitaCancionesConSuDuracion ( ) - es tipo procedimiento.

3) public getDuracionDisco(){...} - es tipo función, CORRECTO

4) public void setDisco(String titulo, int duracionCancion){...} - es tipo procedimiento, NO CORRECTO. La duración de la canción puede ser un número decimal, por ello debería usarse  public void addCancionDisco(String titulo, float duracionCancion){...}

El nombre de método setDisco tampoco es correcto, set se usa para establecer el valor de un atributo, setDisco no sería un nombre adecuado.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas, César.

Gracias por corregir el ejercicio. Entendía sobre la diferencia de "int" y "float".

Lo que no entiendo es sobre el punto b) del ejercicio. ¿Cómo se interpretaría eso?:

Citar
2) Pedir a un administrador de una compañía discográfica que introduzca la duración de todas las canciones (dichas duraciones se almacenarán como información del objeto). Es decir, el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones.

¿No significa que el administrador tiene que introducir las variables (de tipo int, o mejor dicho, float) ?

Gracias, antemano.

Saludos

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Tienes que diferenciar los parámetros que recibe el método ("información que viene desde fuera") respecto de la información que puede manejar el método (que puede ser tanto información que venga desde fuera como información propia de la clase, información local del método, etc.)

En este caso que el método pida datos al administrador no significa que esa información tenga que venir en forma de parámetros cuando se invoca el método. Simplemente significa que el método realizará esa tarea.

Esto es quizás no demasiado sencillo de entender a estas alturas del curso, pero continúa avanzando y a medida que avances lo irás comprendiendo mejor.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

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".