Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jonathan en 18 de Abril 2014, 15:38

Título: Problemas con Signatura [Java desde cero]
Publicado por: jonathan en 18 de Abril 2014, 15:38
Hola, estoy tratando de hacer los ejercicios de:
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=453:concepto-de-signatura-de-metodos-en-java-primera-definicion-de-interfaz-o-interface-ejercicios-cu00630b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

y segun mi parecer es lo siguiente:

1.funcion
2.procedimiento
3.funcion
4.procedimiento

y aqui van mis signaturas:

1. float expresarduracionenminutos (int numerocancion)

2. float pedirduracion ()

3. double duraciondisco ()

4. String floatañadircancion ()

Porfavor corrijanme!!!....Mil Gracias!!!!....
Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: Alex Rodríguez en 18 de Abril 2014, 18:12
Hola, respecto a lo que has planteado, 2. float pedirduracion () no sería correcto porque aquí estás indicando que el método devuelve un valor float, y este método no estaría concebido para devolver un valor, sino para ejecutar ciertos procesos.

Tampoco sería correcto 4. String floatañadircancion () por el mismo motivo, el método no tiene que devolver un resultado, sino realizar ciertos procesos.

Para 1. lo recomendable es que el nombre del método lleve la palabra obtener ó get en lugar de expresar.

Las soluciones que podrían ser correctas son:


float obtenerDuracionCancionMinutos (int numeroDeCancion) { } ó getDurancionCancionMinutos(int numeroDeCancion) { }  (Es tipo función).

void pedirDuraciones() { } (Es tipo procedimiento)

float obtenerDuracionDiscoMinutos() { } ó getDuracionDiscoMinutos { }(Es tipo función)

void añadirCancion (String cancion, float duracion) { }  (Es tipo procedimiento)

Saludos.
Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: Libélula en 25 de Abril 2014, 11:36
Hola a todos, soy nuevo en esto de programar, pero me está enganchando.
Una pregunta respecto a este ejercicio:

En la signatura del método en el que se pide obtener la duración del disco completo, ¿se podría introducir un parámetro duracionCancion? (Ya que para obtener la duración del disco completo necesitamos la duración de las canciones). Algo así:

public float obtenerDuracionDisco(float duracionCancion)

Muchas gracias.

Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: Ogramar en 25 de Abril 2014, 19:47
Hola! En el enunciado del ejercicio dice lo siguiente: la duración de todas las canciones se almacenarán como información del objeto (es decir, dicha información existe en el objeto).

Si la información existe en forma de atributos del objeto, no será necesario en principio pasarle la información puesto que ésta ya está disponible. Por otro lado, si se decidiera pasarle un parámetro no bastaría con pasarle la duración de una canción, sino que tendrías que pasarle public float obtenerDuracionDisco(float duracionCancion1, float duracionCancion2, float duracionCancion3, float duracionCancion4, float duracionCancion5, float duracionCancion6 ) si por ejemplo el disco tuviera seis canciones, para poder calcular la duración del disco completo. Esto que he puesto es solo un ejemplo para entender el concepto, en realidad no se haría así sino usando arrays u objetos pero esto es algo más avanzado de lo que se está explicando en esa entrega del curso. Saludos

Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: Libélula en 25 de Abril 2014, 20:58
Entendido, muchas gracias.
Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: heseos en 26 de Abril 2014, 08:31
Hola, Hola Soy nuevo siguiendo el curso y me esta ayudando bastante, Gracias por el gran esfuerzo para con nosotros.

Aquí adjunto mi ejercicio realizado corregir si algo esta mal por favor.
Código: [Seleccionar]
public class miPrueba{
    float duraciondecancionminutos (int numerodecancion){}
    void pedirduraciones (){}
    getduraciondedisco (){}
    void añadircancioin (String cancion,int duracioin){}
Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: César Krall en 26 de Abril 2014, 08:53
Hola, todo método debe llevar en su signatura o bien un tipo (int, double, float, boolean, etc.) o bien void. Por tanto esto que declaras no es correcto:

getduraciondedisco (){}

¿Por qué? Porque no se indica ni tipo ni void.
Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: heseos en 26 de Abril 2014, 09:25
Hola, todo método debe llevar en su signatura o bien un tipo (int, double, float, boolean, etc.) o bien void. Por tanto esto que declaras no es correcto:

getduraciondedisco (){}

¿Por qué? Porque no se indica ni tipo ni void.

En esa se que es de tipo entero, Pero en el ejercicio indica que hay que obtener la duración del disco con la suma de todas las canciones del disco entonces tuve la duda de si seria algo como esto getduracionDeDisco (int 1, 2, 3, 4, 5, 6, 7) {} o getduracionDeDisco (int 1,int 2, int 3,int 4, int 5) pero imaginemos que es un disco de 15 canciones seria algo tedioso meter tal cantidad de datos cada vez que se quiera obtener el resulta así que pensé en dejarlo vació y esperar que alguien me corrija de la manera en que se hacia y comprobar si tenia razón o como es el método correcto.

Gracias de antemano.
Título: Re:Problemas con Signatura [Java desde cero]
Publicado por: Alex Rodríguez en 26 de Abril 2014, 19:38
Hola, la respuesta a esta cuestión ya ha sido indicada por Ogramar más arriba:

Citar
Si la información existe en forma de atributos del objeto, no será necesario en principio pasarle la información puesto que ésta ya está disponible. Por otro lado, si se decidiera pasarle un parámetro no bastaría con pasarle la duración de una canción, sino que tendrías que pasarle public float obtenerDuracionDisco(float duracionCancion1, float duracionCancion2, float duracionCancion3, float duracionCancion4, float duracionCancion5, float duracionCancion6 ) si por ejemplo el disco tuviera seis canciones, para poder calcular la duración del disco completo. Esto que he puesto es solo un ejemplo para entender el concepto, en realidad no se haría así sino usando arrays u objetos pero esto es algo más avanzado de lo que se está explicando en esa entrega del curso. Saludos

La información de la duración de cada canción del disco estará almacenada en el propio disco, por tanto lo que hay que hacer es preguntarle al disco cuál es la duración total (sin pasarle ningún parámetro puesto que el propio disco ya tiene esa información).

Las soluciones que podrían ser correctas son las ya indicadas también anteriormente en este mismo hilo:


float obtenerDuracionCancionMinutos (int numeroDeCancion) { } ó getDurancionCancionMinutos(int numeroDeCancion) { }  (Es tipo función).

void pedirDuraciones() { } (Es tipo procedimiento)

float obtenerDuracionDiscoMinutos() { } ó getDuracionDiscoMinutos { }(Es tipo función)

void añadirCancion (String cancion, float duracion) { }  (Es tipo procedimiento)