Autor Tema: CU00647B - Entrega nº47 del curso "Aprender programación Java desde cero".  (Leído 3491 veces)

MrClassic

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
Cordial saludo,

 Entrega nº47 del curso "Aprender programación Java desde cero".

el codigo creo que esta funcional, pero deje los comentarios como muestra de que intente imprimir ambos resultados en una sola linea en un System.out.println

y pude notar que este metodo o estos metodos mejor tienen similitudes tanto con los previamente vistos "Getters" y "Setteres" en su estructura, por lo que me resulto confuso el ejercicio.

se que tal vez la idea de este ejercicio dista mucho de tratar de mostrar impresa la información, se que la finalidad real radica en empezar a enfrentarnos al manejo de las librerias propias del entorno Java. pero el ejercicio me dejo nuevamente claro que una clase no tiene una estructura fija.

En fin talvez me enrede en trabajos innecesarios, pero pude notar que una vez se retorna un valor desde una variable, ese valor desaparese y no se puede imprimir usando la misma variable que lo contenia (por favor corrigeme si estoy equivocado en esta afirmación).

Como dije en otra ocasión empieza el curso a incrementar su complejidad y ahora todo es confusión, tanto que no se ni que preguntar. ;D, solo por hacer una y no involucrarte mas en mis divagaciones y darle sentido a todo lo antes escrito, pregunto;

como haria para imprimir en una linea dentro de la clase el valor ingresado y el resultado en metodos de este tipo, por ejemplo; System.out.println(La raiz cuadrada de: " + vlrInicial1 + " es: " + vlrFinal1 + " y el valor absoluto de: " + vlrInicial2 + " es: " + vlrFinal2); asi sqrt(4)=2; en donde vlrInicial1 = 4 y vlrFinal=2; o no es una practica aplicable en el ejercicio de una programación real.
Espero hacerme entender.

por otro lado saber si en el curso ahondaremos algo en el tema de programación recursiva, que tambien lo veo como confuso y eso que el ejercicio previamente propuesto se ve por demás basico y elemental.

Slds.




Bueno
Código: [Seleccionar]
public class MiniCalculadoraEjemplo{
        /*No Properties*/
        /*Empty Constructor*/
    public MiniCalculadoraEjemplo(){}
        /*Metodo Calculos*/
    public double getValorAbsoluto(double valorAbsoluto){
        /*double vlrInicial1=valorAbsoluto;
        double vlrFinal1 = Math.abs(valorAbsoluto);
        double vlrAbs = vlrFinal1;
        return vlrAbs;*/
         return  Math.abs(valorAbsoluto);
    }
       
    /*metodo Para Mostrar resultados*/
   
   
}
« Última modificación: 31 de Enero 2015, 07:30 por MrClassic »
Quedo en espera de sus recomendaciones y/o correcciones.

Gracias.

toni_apr

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

Tu código en efecto es funcional y realiza su trabajo perfectamente.
Pero abría que añadir el método para calcular la raiz cuadrada a nuestra calculadora.

Citar
En fin talvez me enrede en trabajos innecesarios, pero pude notar que una vez se retorna un valor desde una variable, ese valor desaparese y no se puede imprimir usando la misma variable que lo contenia (por favor corrigeme si estoy equivocado en esta afirmación).

Cuando un método devuelve un valor, ese valor lo recibe alguien (otro método), entonces no se pierde.
Al devolver ese valor, implica que el método termina su ejecución (return valor;) y todas las variables internas ciertamente desaparecen. Hasta que volvemos a llamar a ese método y esas variables se crean de nuevo y adoptan nuevos valores.

Citar
como haria para imprimir en una linea dentro de la clase el valor ingresado y el resultado en metodos de este tipo,

En Java ya sabes que hay métodos de tipo procedimiento (void -no devuelven nada) y tipo función que devuelven algún valor.
Nosotros en nuestros programas usaremos unos y otros para obtener un resultado final.

Generalmente, solo cuando llegamos a ese resultado final, imprimiremos por decirlo así el resultado por consola o en impresora o en otro sitio como un archivo.
Cuando llega ese momento de imprimir el resultado tal vez usaremos el System.out.println para mostrar el resultado.

Pero los otros métodos (procedimientos o funciones) que han intervenido en llegar a nuestro resultado no tienen porque imprimir sus resultados internos.
No tiene sentido atiborrar al usuario del programa con datos de los cálculos internos cuando lo único necesario es el resultado final.

El 90% de los métodos realizan cálculos y devuelven, o no un valor. El resto se dedican a presentar esos valores o resultados de los cálculos.

El método:
public double getValorAbsoluto(double valorAbsoluto)
tiene una función, devolver un valor, no mostrarlo por consola. Eso ya lo hará el método que llame a getValorAbsoluto(double valorAbsoluto)

Ahora bien, si en nuestro proceso de creación del código necesitamos ver valores de los cálculos internos de un método. Si es normal presentar esos datos con una sentencia que la muestre por consola.

Para el caso que propones del método de este ejercicio, podemos hacer lo siguiente:
        System.out.println("Parametro aportado: " + valorAbsoluto +
                         "\nResultado obtenido: " + Math.abs(valorAbsoluto));


Respecto a la recursividad, es en realidad un recurso de la programación que consiste en llamar a un método R desde dentro del propio código de dicho método R.

La recursividad no tiene más teoría (este tema no vuelve a aparecer). Lo que tiene es mucha práctica.
Ya has visto el ejemplo de la potenciaConRecursion, otro ejemplo sería tomar decisiones dentro de un directorio y también en sus subdirectorios.
Habrá problemas que se solucionan con recursión y otros que no.

Saludos

MrClassic

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
Cordial Saludo,

Olvide pegar el metodo getRaizCuadrada.




public class MiniCalculadoraEjemplo{
        /*No Properties*/
        /*Empty Constructor*/
    public MiniCalculadoraEjemplo(){}
     
    public double getValorAbsoluto(double valorAbsoluto){   
         return  Math.abs(valorAbsoluto);
    }
           
    public double getRaizCuadrada(double valorRaizCuadrada){ 
        return Math.sqrt(valorRaizCuadrada);
    } 
}
Quedo en espera de sus recomendaciones y/o correcciones.

Gracias.

toni_apr

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

Tu clase está perfecta. OK

Saludos

 

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