Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DiasLluviosos {
- private boolean dias[];
- /**
- * post: inicializa los 365 días del año con un valor de no lluvia.
- */
- public DiasLluviosos(){
- dias = new boolean[365];
- for (int i = 0; i < dias.length; i++){
- dias[i] = false;
- }
- }
- /**
- * post: indica si el día indicado es válido.
- * @param diaDelAño
- */
- private void validarDia(int diaDelAño){
- if (diaDelAño < 0 || diaDelAño > 364){
- Error diaFueraDeRango = new Error("El día debe estar comprendido entre (0;364)");
- throw diaFueraDeRango;
- }
- }
- /**
- * pre: indicar día del año y valor de llovio true o false.
- * post: modifica el valor booleano del día indicado.
- * @param diaDelAño
- * @param llovio
- */
- public void registrarLluvia(int diaDelAño, boolean llovio){
- validarDia(diaDelAño);
- dias[diaDelAño] = llovio;
- }
- /**
- * pre: indicar día del año del cual se quiere consultar lluvias.
- * post: devuelve valor booleano true si llovió, false si no.
- * @param diaDelAño
- * @return
- */
- public boolean consultarSiLlovio(int diaDelAño){
- validarDia(diaDelAño);
- return dias[diaDelAño];
- }
- /**
- * post: devuelve la cantidad de días que llovió en el año.
- * @return
- */
- public int contarDiasLluviosos(){
- int diasQueLlovio = 0;
- for (int i = 0; i < dias.length; i++){
- if (dias[i]){
- diasQueLlovio++;
- }
- }
- return diasQueLlovio;
- }
- /**
- * post: devuelve el cuatrimestre más lluvioso representado en un entero
- * entre 0 (primer cuatrimestre), 1 (segundo cuatrimestre) y 2
- * (tercer cuatrimestre). De tener igual cantidad
- * de lluvias registradas devolverá 0.
- * @return
- */
- public int consultarCuatrimestreMasLluvioso(){
- int cuatrimestres[] = new int[3];
- int lluviasPrimerCuatrimestre = 0;
- int lluviasSegundoCuatrimestre = 0;
- int lluviasTercerCuatrimestre = 0;
- cuatrimestres[0] = lluviasPrimerCuatrimestre;
- cuatrimestres[1] = lluviasSegundoCuatrimestre;
- cuatrimestres[2] = lluviasTercerCuatrimestre;
- int cuatrimestreMasLluvioso = 0;
- for (int i = 0; i == 121; i++){
- if (dias[i]){
- lluviasPrimerCuatrimestre++;
- }
- }
- for (int j = 122; j == 242; j++){
- if (dias[j]){
- lluviasSegundoCuatrimestre++;
- }
- }
- for (int k = 243; k == 364; k++){
- if (dias[k]){
- lluviasTercerCuatrimestre++;
- }
- }
- for (int l = 0; l < cuatrimestres.length; l++){
- if (cuatrimestres[l] > cuatrimestreMasLluvioso){
- cuatrimestreMasLluvioso = cuatrimestres[l];
- }
- }
- return cuatrimestreMasLluvioso;
- }
- /*
- * Arreglar :-(
- */
- public int primerDiaConLluvia(){
- int primerDiaLluvioso = 0;
- while (dias[primerDiaLluvioso] = false){
- primerDiaLluvioso++;
- }
- return primerDiaLluvioso;
- }
- }
- import org.junit.Before;
- import org.junit.Test;
- import org.junit.Assert;
- public class PruebaDiasLluviosos {
- DiasLluviosos dias;
- @Before
- public void inicializarClaseDiasLluviosos(){
- DiasLluviosos dias = new DiasLluviosos();
- this.dias = dias;
- }
- @Test
- public void probarConsultarLluvia(){
- dias.registrarLluvia(10, true);
- Assert.assertTrue(dias.consultarSiLlovio(10));
- }
- @Test (expected = Error.class)
- public void probarRegistrarLluviaEnDiaFueraDeRango(){
- dias.registrarLluvia(-10, true);
- }
- @Test
- public void diasQueLlovio(){
- dias.registrarLluvia(4, true);
- dias.registrarLluvia(150, true);
- dias.registrarLluvia(280, true);
- dias.registrarLluvia(364, true);
- int diasConLluvias = dias.contarDiasLluviosos();
- Assert.assertEquals(4, diasConLluvias);
- }
- @Test
- public void consultarCuatrimestreConMasLluvias(){
- dias.registrarLluvia(3, true);
- dias.registrarLluvia(4, true);
- dias.registrarLluvia(50, true);
- dias.registrarLluvia(150, true);
- dias.registrarLluvia(320, true);
- int cuatrimestreMasLluvioso = dias.consultarCuatrimestreMasLluvioso();
- Assert.assertEquals(0, cuatrimestreMasLluvioso);
- }
- /*
- * No funciona :-(
- */
- @Test
- public void consultarPrimerDiaConLluvia(){
- dias.registrarLluvia(2, true);
- int primerDiaConLluvias = dias.primerDiaConLluvia();
- Assert.assertEquals(2, primerDiaConLluvias);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement