Autor Tema: Ejercicio CU00630B curso Java diferencia entre procedimiento y función signatura  (Leído 3531 veces)

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Ahora si hago las cosas como son, y mil disculpas de nuevo!!

Demore un poco por la Universidad  :-\ .. aquí les dejo a ver si ando en lo correcto o no:

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.

Se trata de un método tipo función.

public double getDuracion()

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.

Se trata de un método tipo procedimiento. Por lo que veo con este método ingresas todos los elementos del disco, y el anterior que se vio lo que hace es pedir la duración de uno de los temas que inserto con este método.

public void setDuracion (double ingresoDuracion)

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

Es otra función consultora, al parecer devuelve el resultado de otro método procedimiento que sumara todas las canciones del disco.

public double getDuracionTotal()

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

Por ultimo, este sera un método tipo procedimiento, ya que al añadirle una canción mas, estamos haciendo una operación.. por añadirle otro tema mas y a consecuencia de eso, su duración aumentaría.

public void setCancion (String ingresoTitulo, Double ingresoDuracionCancion)

Gracias de nuevo, si estoy en lo incorrecto seria de mucha ayuda su corrección y explicación... y disculpen de nuevo, por la otra metida de pata que hice! jajaja.

(Y sip, no mas definiciones de metodos y clases en el main... tendre cautela de que no vuelva a pasar)
« Última modificación: 12 de Marzo 2015, 08:15 por Alex Rodríguez »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola Dan_SB

Tus respuestas tienen pequeñas deficiencias:
En la pregunta 1) se ha de aportar la canción de la que queremos saber la duracion. La signatura que has puesto:
    public double getDuracion()
deberia ser
    public double getDuracion(int numeroCancion)

En la pregunta 2) según el enunciado, no recibe parámetros. Este método de tipo prodecimiento. Bien.
Una vez en ejecución irá solicitando la duración de cada una de las canciones para almacenarlas (no sabemos como, no importa como lo haga el método).
Tu signatura:
    public void setDuracion (double ingresoDuracion)
podría ser
    public void setDuracionTotalDelDisco ()

En la pregunta 3) La signatura está bien.
Pero, es un método de tipo función pues devolverá un valor double (la duración total del disco)

Y en la pregunta 4) Está todo bien. Es un método de tipo procedimiento y tu signatura está perfecta.


Nota: Un pequeño truco para dilucidar si un método es de tipo procedimiento o función, es el siguiente:

Todo método devuelve algo. Si devuelve 'void' (nada, vacío) es de tipo procedimiento. Todo lo demás, es tipo función, Ya sea int, boolean, float, etc... Sin ninguna salvedad.

Ah. Metidas de pata cometemos todos. Y el que diga que no, miente.
Así que en caso de error. Enmienda y adelante.

Dan_SB
Este mensaje que estoy respondiendo correspondería a un hilo anterior
https://www.aprenderaprogramar.com/foros/index.php?topic=2090.msg10282#msg10282
Quiero pedirte que no abras un tema nuevo para continuar con el mismo asunto. Así no queda la información desperdigada.

Gracias

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Ok!! entonces las respuestas serian:

1) public double getDuracion(int numeroCancion) Función
2) public void setDuracionTotalDelDisco () Método procedimiento
3) public double getDuracionTotal() Función
4) public void setCancion (String ingresoTitulo, Double ingresoDuracionCancion) Método procedimiento


El tip para diferenciar es:

public void (Procedimiento)
public string, int, double... etc (funcion)

Funciones siempre darán return, copiado!

Mil gracias de nuevo por su valiosa ayuda!! esta pagina es oro!!
"Luchar por tus sueños y cumplirlos... eso es vivir.."

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Eso es Dan.
Y está bien 'copiar' algo de cuando en cuando.

En cuanto al oro, yo también ando buscando un tesoro. El primero que lo encuentre que avise y repartimos.

Suerte.

 

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