Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Dan_SB en 12 de Marzo 2015, 01:23

Título: Ejercicio CU00630B curso Java diferencia entre procedimiento y función signatura
Publicado por: Dan_SB en 12 de Marzo 2015, 01:23
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)
Título: Re:Ejercicio CU00630B curso Java diferencia entre procedimiento y función signatura
Publicado por: toni_apr en 12 de Marzo 2015, 23:39
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
Título: Re:Ejercicio CU00630B curso Java diferencia entre procedimiento y función signatura
Publicado por: Dan_SB en 13 de Marzo 2015, 00:12
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!!
Título: Re:Ejercicio CU00630B curso Java diferencia entre procedimiento y función signatura
Publicado por: toni_apr en 13 de Marzo 2015, 20:23
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.