Autor Tema: Problemas con Signatura [Java desde cero]  (Leído 6580 veces)

jonathan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 13
    • Ver Perfil
Problemas con Signatura [Java desde cero]
« 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!!!!....

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Problemas con Signatura [Java desde cero]
« Respuesta #1 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.

Libélula

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
Re:Problemas con Signatura [Java desde cero]
« Respuesta #2 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.


Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Problemas con Signatura [Java desde cero]
« Respuesta #3 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


Libélula

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
Re:Problemas con Signatura [Java desde cero]
« Respuesta #4 en: 25 de Abril 2014, 20:58 »
Entendido, muchas gracias.

heseos

  • Sin experiencia
  • *
  • Mensajes: 15
    • Ver Perfil
Re:Problemas con Signatura [Java desde cero]
« Respuesta #5 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){}

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Problemas con Signatura [Java desde cero]
« Respuesta #6 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.
Responsable de departamento de producción aprenderaprogramar.com

heseos

  • Sin experiencia
  • *
  • Mensajes: 15
    • Ver Perfil
Re:Problemas con Signatura [Java desde cero]
« Respuesta #7 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.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Problemas con Signatura [Java desde cero]
« Respuesta #8 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)


 

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