[ Foro de Java ]

Programación Java

06-Sep-2021 05:30
Invitado (Anonimo)
2 Respuestas

Hola gente, es  un gusto saludarles, espero se encuentren muy bien. Quería pedir ayuda a vosotros! Pues bien, tengo que resolver el siguiente ejercicio en Java, y dice así: Crea un programa que prepare un array que contenga la cantidad de días que hay en cada mes del año. A partir de entonces el usuario introducirá un número de mes (por ejemplo, 4 para abril) y el programa le responderá cuántos días tiene ese mes. Se repetirá hasta que el usuario introduzca un mes menor que 1 o mayor que 12.
Y por otro lado, también tengo este:  Crea un programa que prepare un array que contenga el nombre de cada mes del año. El usuario introducirá un número de mes (por ejemplo, 4 para abril) y el programa le dirá el nombre de ese mes.

Espero no molestarles, pero sí necesito su ayuda, casi no entiendo a programación!!


06-Sep-2021 09:22
Nacho Cabanes (+83)

¿Qué sabes hacer y qué no?


19-Sep-2021 21:51
Franco Garcia

Un array es una estructura de datos que contiene una colección de elementos... Traducido: es una estructura que tiene un CONJUNTO de datos.

En java y en tu ejercicio,  se declararia asi: int[] diasXmes = new int [12]; y despues tenes que asignarle el valor a cada mes EMPEZANDO por 0 y terminando en 11 (La primera POSICION de un array es 0, osea que ENERO seria 0, FEBRERO = 1 ... DICIEMBRE = 11).

y despues tenes que darle valores a TODOS los espacios del array:

diasXmes[0] = 30;  // Se lee: diasXmes "en la posicion" 0 vale 30. -> Enero
diasXmes[1] = 28; // Se lee: diasXmes "en la posicion" 1 vale 28. -> Febrero
...
diasXmes[11] = 31; // Se lee: diasXmes "en la posicion" 11 vale 31. -> Diciembre

CODIGO:
public class Ejercicio {

// ==========[ PRIMER EJERCICIO ]========== \\
// ---( Mostrar cantidad de dias x mes )--- \\
public static void ejercicio_1() {
// Esta es una forma simplificada de declarar nuestro array, otorgandoles los valores que contendra.
int[] diasXmes = {30, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

// crear el bucle que repita hasta que el usuario introduzca un valor menor a 1 o a 12:

int mes = -1; // no prestes atencion, es para darle un valor de salida al programa
Scanner teclado = new Scanner(System.in);
do {
System.out.println("==================\nDias X Mes\n==================");
System.out.println("Introdusca el mes que desea consultar\n"
+ "[Debe ingresar un valor entre 1 y 12]");
mes = teclado.nextInt();
if(mes<1 || mes>12) {
System.out.println("El numero: "+mes+" no es un valor valido.");
mes = -1; // Sustituimos el valor ingresado por el cliente y le damos el valor de salida -1. Con -1 el bucle se corta.
}
else { // el valor esta dentro de los parametros, se procede con el programa
System.out.println("El mes: "+mes+" tiene "+diasXmes[(mes-1)]+" dias\n");
// restamos 1, porque el array comienza en 0, Si pregunta por Enero (1), la verdadera posicion de enero en el array seria 0 -> (valor ingresado por usuario = 1 -1 = 0)
}

}while (mes != -1); // Se va a repetir mientras mes NO valga -1
System.out.println("Gracias por utilizar el programa\n");
}
// ==========[ SEGUNDO  EJERCICIO ]========== \\
// ------( Mostrar nombre de cada mes )------ \\
public static void ejercicio_2() {
System.out.println("==================\nNombre de Meses\n==================");
// Tambien declaramos los meses para el SEGUNDO EJERCICIO
String[] meses = {"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"};

// La estrucutra seria la misma y podrias crear un metodo privada aca para segmentar el codigo y no repetirlo, pero no te quiero complicar si recien arrancas.
int mes = -1; // mismo codigo que el ejercicio 1
Scanner teclado = new Scanner(System.in);
do {
System.out.println("Introdusca el mes que desea consultar\n"
+ "[Debe ingresar un valor entre 1 y 12]");
mes = teclado.nextInt();
if(mes<1 || mes>12) {
System.out.println("El numero: "+mes+" no es un valor valido.");
mes = -1; // mismo codigo que el ejercicio 1
}
else { // mismo codigo que el ejercicio 1
System.out.println("El mes "+mes+" es: "+meses[mes-1]+"\n" ); // Cambia esta parte solamente, podrias crear un metodo que haga todo
// el proceso de validacion y muestre un mensaje u otro acorda a otro parametro que indique que estas haciendo
// (preguntar por dias x mes o nombres de meses)... Pero eso lo podes hacer vos, arreglando este codigo para
// que todo el codigo repetido quede en 1 solo metodo, y que se llame a una respuesta dependiendo de que es a
// lo que el programa responde.

}

}while (mes != -1); // mismo codigo que el ejercicio 1
System.out.println("Gracias por utilizar el programa\n");
}
}
PARA EJECUTARLO:
public class Main {
public static void main(String[] args) {
Ejercicio.ejercicio_1();
Ejercicio.ejercicio_2();
}
}






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)