Advertisement
fmbalvarez

Guía 7 - Ejercicio 2 - DíasLluviosos

Oct 26th, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.39 KB | None | 0 0
  1.  
  2. public class DiasLluviosos {
  3.  
  4. private boolean dias[];
  5.  
  6. /**
  7. * post: inicializa los 365 días del año con un valor de no lluvia.
  8. */
  9. public DiasLluviosos(){
  10.  
  11. dias = new boolean[365];
  12.  
  13. for (int i = 0; i < dias.length; i++){
  14.  
  15. dias[i] = false;
  16. }
  17. }
  18.  
  19. /**
  20. * post: indica si el día indicado es válido.
  21. * @param diaDelAño
  22. */
  23. private void validarDia(int diaDelAño){
  24.  
  25. if (diaDelAño < 0 || diaDelAño > 364){
  26.  
  27. Error diaFueraDeRango = new Error("El día debe estar comprendido entre (0;364)");
  28.  
  29. throw diaFueraDeRango;
  30. }
  31. }
  32.  
  33. /**
  34. * pre: indicar día del año y valor de llovio true o false.
  35. * post: modifica el valor booleano del día indicado.
  36. * @param diaDelAño
  37. * @param llovio
  38. */
  39. public void registrarLluvia(int diaDelAño, boolean llovio){
  40.  
  41. validarDia(diaDelAño);
  42.  
  43. dias[diaDelAño] = llovio;
  44. }
  45.  
  46. /**
  47. * pre: indicar día del año del cual se quiere consultar lluvias.
  48. * post: devuelve valor booleano true si llovió, false si no.
  49. * @param diaDelAño
  50. * @return
  51. */
  52. public boolean consultarSiLlovio(int diaDelAño){
  53.  
  54. validarDia(diaDelAño);
  55.  
  56. return dias[diaDelAño];
  57. }
  58.  
  59. /**
  60. * post: devuelve la cantidad de días que llovió en el año.
  61. * @return
  62. */
  63. public int contarDiasLluviosos(){
  64.  
  65. int diasQueLlovio = 0;
  66.  
  67. for (int i = 0; i < dias.length; i++){
  68.  
  69. if (dias[i]){
  70.  
  71. diasQueLlovio++;
  72. }
  73. }
  74.  
  75. return diasQueLlovio;
  76. }
  77.  
  78. /**
  79. * post: devuelve el cuatrimestre más lluvioso representado en un entero
  80. * entre 0 (primer cuatrimestre), 1 (segundo cuatrimestre) y 2
  81. * (tercer cuatrimestre). De tener igual cantidad
  82. * de lluvias registradas devolverá 0.
  83. * @return
  84. */
  85. public int consultarCuatrimestreMasLluvioso(){
  86.  
  87. int cuatrimestres[] = new int[3];
  88.  
  89. int lluviasPrimerCuatrimestre = 0;
  90. int lluviasSegundoCuatrimestre = 0;
  91. int lluviasTercerCuatrimestre = 0;
  92.  
  93. cuatrimestres[0] = lluviasPrimerCuatrimestre;
  94. cuatrimestres[1] = lluviasSegundoCuatrimestre;
  95. cuatrimestres[2] = lluviasTercerCuatrimestre;
  96.  
  97. int cuatrimestreMasLluvioso = 0;
  98.  
  99. for (int i = 0; i == 121; i++){
  100.  
  101. if (dias[i]){
  102.  
  103. lluviasPrimerCuatrimestre++;
  104. }
  105. }
  106.  
  107. for (int j = 122; j == 242; j++){
  108.  
  109. if (dias[j]){
  110.  
  111. lluviasSegundoCuatrimestre++;
  112. }
  113. }
  114.  
  115. for (int k = 243; k == 364; k++){
  116.  
  117. if (dias[k]){
  118.  
  119. lluviasTercerCuatrimestre++;
  120. }
  121. }
  122.  
  123. for (int l = 0; l < cuatrimestres.length; l++){
  124.  
  125.  
  126.  
  127. if (cuatrimestres[l] > cuatrimestreMasLluvioso){
  128.  
  129. cuatrimestreMasLluvioso = cuatrimestres[l];
  130. }
  131. }
  132.  
  133. return cuatrimestreMasLluvioso;
  134. }
  135.  
  136.  
  137. /*
  138. * Arreglar :-(
  139. */
  140. public int primerDiaConLluvia(){
  141.  
  142. int primerDiaLluvioso = 0;
  143.  
  144. while (dias[primerDiaLluvioso] = false){
  145.  
  146. primerDiaLluvioso++;
  147. }
  148.  
  149. return primerDiaLluvioso;
  150. }
  151. }
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163. import org.junit.Before;
  164. import org.junit.Test;
  165. import org.junit.Assert;
  166.  
  167. public class PruebaDiasLluviosos {
  168.  
  169. DiasLluviosos dias;
  170.  
  171. @Before
  172. public void inicializarClaseDiasLluviosos(){
  173.  
  174. DiasLluviosos dias = new DiasLluviosos();
  175. this.dias = dias;
  176. }
  177.  
  178. @Test
  179. public void probarConsultarLluvia(){
  180.  
  181. dias.registrarLluvia(10, true);
  182.  
  183. Assert.assertTrue(dias.consultarSiLlovio(10));
  184. }
  185.  
  186. @Test (expected = Error.class)
  187. public void probarRegistrarLluviaEnDiaFueraDeRango(){
  188.  
  189. dias.registrarLluvia(-10, true);
  190. }
  191.  
  192. @Test
  193. public void diasQueLlovio(){
  194.  
  195. dias.registrarLluvia(4, true);
  196. dias.registrarLluvia(150, true);
  197. dias.registrarLluvia(280, true);
  198. dias.registrarLluvia(364, true);
  199.  
  200. int diasConLluvias = dias.contarDiasLluviosos();
  201.  
  202. Assert.assertEquals(4, diasConLluvias);
  203. }
  204.  
  205. @Test
  206. public void consultarCuatrimestreConMasLluvias(){
  207.  
  208. dias.registrarLluvia(3, true);
  209. dias.registrarLluvia(4, true);
  210. dias.registrarLluvia(50, true);
  211. dias.registrarLluvia(150, true);
  212. dias.registrarLluvia(320, true);
  213.  
  214. int cuatrimestreMasLluvioso = dias.consultarCuatrimestreMasLluvioso();
  215.  
  216. Assert.assertEquals(0, cuatrimestreMasLluvioso);
  217. }
  218.  
  219. /*
  220. * No funciona :-(
  221. */
  222. @Test
  223. public void consultarPrimerDiaConLluvia(){
  224.  
  225. dias.registrarLluvia(2, true);
  226.  
  227. int primerDiaConLluvias = dias.primerDiaConLluvia();
  228.  
  229. Assert.assertEquals(2, primerDiaConLluvias);
  230. }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement