Advertisement
KaeruCT

Untitled

Feb 21st, 2011
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.86 KB | None | 0 0
  1. import javax.swing.*;
  2. String val,
  3. nombre, // nombre de cada estacion
  4. clasif, // clasificacion de cada estacion
  5. listaMayores = "", // lista con el mes y la estacion en la que hubo la mayor cantidad de lluvia mensual
  6. msj; // mensaje que se va a tirar al final de cada iteracion, y al finalizar el programa
  7.  
  8. int mes, // cada mes del año
  9. numEstaciones = 5, // numero de estaciones
  10. muchaLluv = 1000, // cantidad a considerar mucha lluvia para un solo mes
  11. minHumeda = 1000, // cantidad minima para que se considere una estacion como humeda
  12. minMuyHumeda = 4000, // cantidad minima para que se considere una estacion como muy humeda
  13. cantMayor = 0, // cantidad mayor de lluvia mensual en una estacion
  14. lluvMensual, // lluvia de cada mes
  15. lluvAnual, // lluvia de cada año
  16. estSinLluv = 0, // numero de estaciones sin lluvia en algun mes
  17. estMuchaLluv = 0; // numero de estaciones con mucha lluvia en un mes
  18.  
  19. Boolean mesSinLluv, // en cada estacion, si hubo un mes sin lluvia
  20. mesMuchaLluv; // en cada estacion, si hubo un mes con mucha lluvia
  21.  
  22. for(int i = 0; i < numEstaciones; i++) {
  23.  
  24.   msj = ""; // resettear el mensaje de cada estacion
  25.   mesSinLluv = false; // resettear si ha habido meses sin lluvia
  26.   mesMuchaLluv = false; // resettear si ha habido meses con mucha lluvia
  27.   lluvAnual = 0; // resettear la lluvia anual de la estacion
  28.   nombre = JOptionPane.showInputDialog("Nombre de la estacion:");
  29.  
  30.   for(mes = 1; mes <= 12; mes++) { // iterar por los 12 meses del año
  31.     val = JOptionPane.showInputDialog("Cantidad de lluvia en mes "+mes+":");
  32.     lluvMensual = Integer.parseInt(val);
  33.     lluvAnual += lluvMensual; // acumular la lluvia mensual
  34.    
  35.     if(lluvMensual == 0){
  36.        // Si no llovio este mes, habra al menos un mes sin lluvia
  37.        // en esta estacion.
  38.        mesSinLluv = true;
  39.     }
  40.    
  41.     if(lluvMensual < muchaLLuv){
  42.        // Si llovio mas de 1000mm este mes, habra al menos
  43.        // un mes con mas de 1000mm de lluvia en esta estacion.
  44.        mesMuchaLluv = true;
  45.     }
  46.    
  47.     if(lluvMensual > cantMayor){
  48.       // Si la cantidad de lluvia mensual es mayor que la cantidad mayor
  49.       // almacenada, actualizar los datos sobre el mes y
  50.       // la estacion con la mayor cantidad de lluvia.
  51.       cantMayor = lluvMensual;
  52.       listaMayores = "Mes: "+(mes)+", Estacion: "+nombre;
  53.     }else if(lluvMensual == cantMayor){
  54.       // La cantidad mensual es igual a la cantidad mayor almacenada,
  55.       // por lo que ahora hay que guardar los datos sobre este mes y
  56.       // estacion tambien.
  57.       // Aqui se puede asumir que la condicion anterior a esta se cumplio
  58.       // al menos una vez. Por esta razon se concatena, no queremos perder
  59.       // los datos anteriores.
  60.       listaMayores += "\nMes: "+(mes)+", Estacion: "+nombre;
  61.     }
  62.   }
  63.  
  64.   // clasificar cada estacion de acuerdo a la cantidad de lluvia anual
  65.   if(lluvAnual > minMuyHumeda){
  66.     clasif = "muy humeda";
  67.   }else if(lluvAnual >= minHumeda){
  68.     clasif = "humeda";
  69.   }else{
  70.     clasif = "normal";
  71.   }
  72.  
  73.   if(mesSinLluv == true){
  74.     // Si hubo al menos un mes sin lluvia, incrementar contador de
  75.     // estaciones que tuvieron al menos un mes sin lluvia.
  76.     estSinLluv++;
  77.   }
  78.   if(mesMuchaLluv == true){
  79.     // Si hubo al menos un mes con "mucha lluvia", incrementar contador de
  80.     // estaciones que tuvieron al menos un mes con "mucha lluvia".
  81.     estMuchaLluv++;
  82.   }
  83.  
  84.   msj += "Nombre de la estacion: "+nombre+"\n";
  85.   msj += "Clasificacion: "+clasif+"\n";
  86.  
  87.   JOptionPane.showMessageDialog(null, msj);
  88. }
  89.  
  90. msj  = "Estaciones con al menos un mes sin lluvia: "+estSinLluv+"\n";
  91. msj += "Estaciones con al menos un mes con mas de "+muchaLluv+"mm de lluvia: "+estMuchaLluv+"\n";
  92. msj += "Cantidad mayor de lluvia en un mes: "+cantMayor+"mm\n";
  93. msj += "En el siguiente mes y estacion: \n";
  94. msj += listaMayores;
  95.  
  96. JOptionPane.showMessageDialog(null, msj);
  97.  
  98. System.exit(1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement