KaiserRego

AyP1 - Guía 6 - DiasLluviosos

Oct 28th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.91 KB | None | 0 0
  1. public class DiasLluviosos {
  2.    
  3.     private boolean[] diasLluviosos = new boolean [365];
  4.    
  5.     /** post: diasLluviosos queda inicializado en false para todos sus elementos. */
  6.     public DiasLluviosos() {
  7.        
  8.         for (int i=0; i < diasLluviosos.length; i++){
  9.            
  10.             diasLluviosos [i] = false;
  11.         }
  12.     }
  13.  
  14.     /** pre: se indica el diaDelAño comprendido en el rango [1, 365] en el que llovió o no.
  15.      * post: modifica si en un diaDelAño llovió o no. */
  16.     public void registrarQueLlovioElDia(int diaDelAño, boolean llovio){
  17.        
  18.         verificarDiaDelAño (diaDelAño);
  19.         diasLluviosos [diaDelAño -1] = llovio;
  20.        
  21.     }
  22.    
  23.     /** pre: se indica el diaDelAño comprendido en el rango [1, 365].
  24.      * post: devuelve si llovió o no el diaDelAño indicado. */
  25.     public boolean consultarSiLlovioElDia(int diaDelAño){
  26.        
  27.         verificarDiaDelAño (diaDelAño);
  28.        
  29.         return  (diasLluviosos [diaDelAño -1]);
  30.     }
  31.    
  32.     /** post: devuelve la cantidad de dias en los que llovió. */
  33.     public int contarDiasLluviosos(){
  34.        
  35.         int cantidadDeDiasLluviosos = 0;
  36.        
  37.         for (int i=0; i< diasLluviosos.length; i++){
  38.            
  39.             if (diasLluviosos [i]){
  40.                
  41.                 cantidadDeDiasLluviosos ++;
  42.             }
  43.         }
  44.        
  45.         return (cantidadDeDiasLluviosos);
  46.     }
  47.    
  48.     /** post: devuelve el numero de cuatrimestre en los que llovió la mayor cantidad de días. */
  49.     public int consultarCuatrimestreMasLluvioso(){
  50.        
  51.         int[] cuatrimestreDeDiasLluviosos = new int [3];
  52.        
  53.         // Primer cuatrimestre del año.
  54.         for (int i=0; i < 120; i++){
  55.            
  56.             if (diasLluviosos [i]){
  57.                
  58.                 cuatrimestreDeDiasLluviosos [0] ++;
  59.             }
  60.         }
  61.        
  62.         // Segundo cuatrimestre del año.
  63.         for (int i=120; i < 240; i++){
  64.            
  65.             if (diasLluviosos [i]){
  66.                
  67.                 cuatrimestreDeDiasLluviosos [1] ++;
  68.             }
  69.         }
  70.        
  71.         // Tercer cuatrimestre del año.
  72.         for (int i=240; i < 365; i++){
  73.            
  74.             if (diasLluviosos [i]){
  75.                
  76.                 cuatrimestreDeDiasLluviosos [2] ++;
  77.             }
  78.         }
  79.        
  80.         // Busco el máximo entre los 3 cuatrimestres.
  81.        
  82.         int maximoDeDiasLluviosos = cuatrimestreDeDiasLluviosos [0];
  83.         int cuatrimestreMasLluvioso = 0;
  84.        
  85.         for (int i=1; i <3; i++){
  86.            
  87.             if (cuatrimestreDeDiasLluviosos [i] > maximoDeDiasLluviosos){
  88.                
  89.                 cuatrimestreMasLluvioso = i;
  90.             }
  91.         }
  92.        
  93.         return (cuatrimestreMasLluvioso+1);
  94.        
  95.     }
  96.    
  97.     /** post: devuelve el numero del primer dia del año en el que llovió. */
  98.     public int consultarPrimerDiaConLluvia(){
  99.        
  100.         int primerDiaConLluvia = 0;
  101.         boolean continuar = true;
  102.        
  103.         for (int i=0; i < diasLluviosos.length && continuar ; i++){
  104.            
  105.             if (diasLluviosos [i]){
  106.                
  107.                 primerDiaConLluvia = i;
  108.                 continuar = false;
  109.             }
  110.         }
  111.        
  112.         return (primerDiaConLluvia +1);
  113.     }
  114.    
  115.     private void verificarDiaDelAño (int diaDelAño){
  116.        
  117.         if (diaDelAño < 1 || diaDelAño > 365){
  118.            
  119.             Error diaDelAñoFueraDeRango = new Error ("El diaDelAño indicado -"+diaDelAño+"- no está comprendido dentro del rango.");
  120.             throw diaDelAñoFueraDeRango;
  121.         }
  122.        
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment