Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - flyboy

Páginas: [1]
1
No sé que versión de JDK uses, pero actualmente este código se puede mejorar.
Sugerencia para que lo tengas en cuenta:

En lugar de usar try-catch-finally, usa try with resources (desde JDK8) y el keyword var (desde JDK10):
try(var fw = new FileWriter(filepath, true);
      var bw = new BufferedWriter(fw)){
  // Tu código
}catch(IOException e){
 //Maneja exception
}//Ya no necesitas invocar a ningún .close, eso se hará automáticamente.

2
¿Qué error te sale?
Y por cierto, python no tiene compilador, tiene intérprete, tu código no se compila nunca sino que se interpreta directamente en tiempo de ejecución.

3
obviamente que tu solución está mal planificada. Para poder resolver el ejercicio necesitas almacenar en el arreglo de peso mensual el mes y el peso, incluso el mes tiene que ser año y mes. No sé qué versión de JDK uses, pero si es la 16 yo usaría un record:
record Peso(int year, int month, int weight){}

Y luego mi paciente tendría el campo:
private Peso[] pesoMensual;

Después, es cuestión de generar un rango de años y meses, y llenarlos con los valores correspondientes, entonces cuando ingresas el año y mes, ya lo buscas por año y mes.

Otra forma de resolverlo sería usando un Map<LocalDate, Integer> en lugar de un arreglo, de modo que tus valores de fecha te servirían de clave para obtener el peso.

Y la otra forma, más complicada pero que te permite hacerlo exclusivamente con arreglos sería usando dos arreglos, uno para las fechas (usa como referencia el primer día del mes, ejemplo: enero del 2021 sería 1/1/21, y diciembre del 2021 sería 1/12/21) y otro arreglo para los pesos:

private LocalDate[] fechas;
private int[] pesos;

Luego, en el mismo orden que tienes tus meses, tienes tus pesos, lo siguiente es que si ingresas un mes, por ejemplo que un usuario ingrese Enero del 2000, vas a buscar en fechas, así por ejemplo tu método buscar peso sería algo así:

Código: [Seleccionar]
for(int i=0; i<fechas.length; i++){
   if(fechas[i].compareTo(primerDiaDelMesIngresado)==0){
       return pesos[i];
   }
}

Y luego, simplemente tu IMC sería: buscarPeso(primerDiaDelMes) / (estatura * estatura)
Más complicado, pero solamente usas arreglos.
Otra forma también sería con arreglos bi-dimensionales, pero ya tendrías que resolver la diferencia de los tipos de datos, ya que en bidimensional, solamente puedes tener enteros o solamente fechas.

Páginas: [1]

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