Skip to content
This repository has been archived by the owner on Aug 9, 2024. It is now read-only.

Commit

Permalink
Added Time and Speed Calculation for 1500m Runners
Browse files Browse the repository at this point in the history
  • Loading branch information
Laifsyn committed Apr 12, 2024
1 parent 53aeeb2 commit 0d63090
Showing 1 changed file with 47 additions and 8 deletions.
55 changes: 47 additions & 8 deletions src/main/java/com/utp/clsHerramientas/pry2/App.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package com.utp.clsHerramientas.pry2;

import java.math.BigDecimal;
import java.time.Duration;
import java.util.ArrayList;

import javax.lang.model.type.NullType;

import com.utp.utils.Result;

public class App {

// Escriba un programa en java que permita poner en funcionamiento los
// siguientes módulos:
//
// • Diseñar un módulo para calcular la velocidad (en m/s) de los corredores de
// la carrera de 1,500 metros. La entrada consistirá en parejas de números
// (minutos, segundos) que dan el tiempo del corredor; por cada corredor, el
// algoritmo debe visualizar el tiempo en minutos y segundos, así como la
// velocidad media. Ejemplo de entrada de datos: (3,53) (3,40) (3,46) (3,52)
// (4,0) (0,0); el último par de datos se utilizará como fin de entrada de
// datos.
//
// • Muchos bancos y cajas de ahorro calculan los intereses de las cantidades
// depositadas por los clientes diariamente según las premisas siguientes. Un
Expand All @@ -27,3 +27,42 @@ public static void main(String[] args) {
System.out.println("Hello World!");
}
}

// • Diseñar un módulo para calcular la velocidad (en m/s) de los corredores de
// la carrera de 1,500 metros. La entrada consistirá en parejas de números
// (minutos, segundos) que dan el tiempo del corredor; por cada corredor, el
// algoritmo debe visualizar el tiempo en minutos y segundos, así como la
// velocidad media. Ejemplo de entrada de datos: (3,53) (3,40) (3,46) (3,52)
// (4,0) (0,0); el último par de datos se utilizará como fin de entrada de
// datos.
class TiempoCarrera {
ArrayList<Duration> tiempos = new ArrayList<Duration>();
static final int DISTANCIA = 1500;

public Result<NullType, String> insertarTiempo(int[] tiempo) {
if (tiempo.length != 2) {
return Result.error("El tiempo debe tener dos valores.");
}
if (tiempo[0] < 0 || tiempo[1] < 0) {
return Result.error("El tiempo no puede tener componentes negativo.");
}
if (tiempo[1] >= 60) {
return Result.error("Los segundos no pueden ser mayores a 59.");
}
var time = Duration.ofSeconds(tiempo[0] * 60 + tiempo[1]);
// Check value isn't higher than 120 minutes
if (time.toSeconds() > 120 * 60) {
return Result.error("Los competidores no pueden correr más de 120 minutos.");
}
tiempos.add(time);
return Result.ok(null);
}

public void imprimirVelocidad() {
Integer contador = 1;
for (var tiempo : tiempos) {
BigDecimal velocidad = BigDecimal.valueOf(DISTANCIA / tiempo.getSeconds());
System.out.printf("%s-)Velocidad: %s m/s", contador, velocidad);
}
}
}

0 comments on commit 0d63090

Please sign in to comment.