Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- String val,
- nombre, // nombre de cada estacion
- clasif, // clasificacion de cada estacion
- listaMayores = "", // lista con el mes y la estacion en la que hubo la mayor cantidad de lluvia mensual
- msj; // mensaje que se va a tirar al final de cada iteracion, y al finalizar el programa
- int mes, // cada mes del año
- numEstaciones = 5, // numero de estaciones
- muchaLluv = 1000, // cantidad a considerar mucha lluvia para un solo mes
- minHumeda = 1000, // cantidad minima para que se considere una estacion como humeda
- minMuyHumeda = 4000, // cantidad minima para que se considere una estacion como muy humeda
- cantMayor = 0, // cantidad mayor de lluvia mensual en una estacion
- lluvMensual, // lluvia de cada mes
- lluvAnual, // lluvia de cada año
- estSinLluv = 0, // numero de estaciones sin lluvia en algun mes
- estMuchaLluv = 0; // numero de estaciones con mucha lluvia en un mes
- Boolean mesSinLluv, // en cada estacion, si hubo un mes sin lluvia
- mesMuchaLluv; // en cada estacion, si hubo un mes con mucha lluvia
- for(int i = 0; i < numEstaciones; i++) {
- msj = ""; // resettear el mensaje de cada estacion
- mesSinLluv = false; // resettear si ha habido meses sin lluvia
- mesMuchaLluv = false; // resettear si ha habido meses con mucha lluvia
- lluvAnual = 0; // resettear la lluvia anual de la estacion
- nombre = JOptionPane.showInputDialog("Nombre de la estacion:");
- for(mes = 1; mes <= 12; mes++) { // iterar por los 12 meses del año
- val = JOptionPane.showInputDialog("Cantidad de lluvia en mes "+mes+":");
- lluvMensual = Integer.parseInt(val);
- lluvAnual += lluvMensual; // acumular la lluvia mensual
- if(lluvMensual == 0){
- // Si no llovio este mes, habra al menos un mes sin lluvia
- // en esta estacion.
- mesSinLluv = true;
- }
- if(lluvMensual < muchaLLuv){
- // Si llovio mas de 1000mm este mes, habra al menos
- // un mes con mas de 1000mm de lluvia en esta estacion.
- mesMuchaLluv = true;
- }
- if(lluvMensual > cantMayor){
- // Si la cantidad de lluvia mensual es mayor que la cantidad mayor
- // almacenada, actualizar los datos sobre el mes y
- // la estacion con la mayor cantidad de lluvia.
- cantMayor = lluvMensual;
- listaMayores = "Mes: "+(mes)+", Estacion: "+nombre;
- }else if(lluvMensual == cantMayor){
- // La cantidad mensual es igual a la cantidad mayor almacenada,
- // por lo que ahora hay que guardar los datos sobre este mes y
- // estacion tambien.
- // Aqui se puede asumir que la condicion anterior a esta se cumplio
- // al menos una vez. Por esta razon se concatena, no queremos perder
- // los datos anteriores.
- listaMayores += "\nMes: "+(mes)+", Estacion: "+nombre;
- }
- }
- // clasificar cada estacion de acuerdo a la cantidad de lluvia anual
- if(lluvAnual > minMuyHumeda){
- clasif = "muy humeda";
- }else if(lluvAnual >= minHumeda){
- clasif = "humeda";
- }else{
- clasif = "normal";
- }
- if(mesSinLluv == true){
- // Si hubo al menos un mes sin lluvia, incrementar contador de
- // estaciones que tuvieron al menos un mes sin lluvia.
- estSinLluv++;
- }
- if(mesMuchaLluv == true){
- // Si hubo al menos un mes con "mucha lluvia", incrementar contador de
- // estaciones que tuvieron al menos un mes con "mucha lluvia".
- estMuchaLluv++;
- }
- msj += "Nombre de la estacion: "+nombre+"\n";
- msj += "Clasificacion: "+clasif+"\n";
- JOptionPane.showMessageDialog(null, msj);
- }
- msj = "Estaciones con al menos un mes sin lluvia: "+estSinLluv+"\n";
- msj += "Estaciones con al menos un mes con mas de "+muchaLluv+"mm de lluvia: "+estMuchaLluv+"\n";
- msj += "Cantidad mayor de lluvia en un mes: "+cantMayor+"mm\n";
- msj += "En el siguiente mes y estacion: \n";
- msj += listaMayores;
- JOptionPane.showMessageDialog(null, msj);
- System.exit(1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement