Autor Tema: Java pequeño programa para calcular minuto de juego partido de fútbol CU00906C  (Leído 2297 veces)

LuisM

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 131
    • Ver Perfil
Hola a todos !! Dejo a continuación el código Java del ejercicio propuesto. Desde ya, muchas gracias por la atención. Un saludo,
Luis

EJERCICIO

Supón que un partido de fútbol tiene una duración de 90 minutos. El minuto 1 se considera que abarca desde los 0 segundos hasta los 59 segundos. El minuto 2 abarca desde los 60 segundos hasta los 119 segundos. Así sucesivamente hasta el último minuto, que es el minuto 90 y abarca desde los 5340 segundos hasta los 5400 segundos. Crea un programa que pida al usuario el número de segundos transcurridos y mediante el uso de alguna función de redondeo (floor, ceil ó round) de la clase Math muestre el minuto en que nos encontramos. El programa debe pedir valores de segundos hasta que el usuario decida terminar.

Ejemplo de ejecución.

Introduzca valor de segundos: 32

El minuto es el 1

¿Otro valor (s/n)? s

Introduzca valor de segundos: 2595

El minuto es el 44

¿Otro valor (s/n)? n

------------------------------------------------

Clase CalculoDelMinuto - método main

Código: [Seleccionar]
public class CalculoDelMinuto
{
    public static void main (String arg[]){
     char respuesta = 's';
     EntradaDeTeclado entrada = new EntradaDeTeclado();
     while (respuesta=='s'){
         System.out.println("Introduzca valor de segundos:");
         entrada.pedirEntrada();
         int segundos = Integer.parseInt(entrada.getEntrada());
         if (segundos>0&&segundos<=5400){
             double min = (double)segundos/60;
             min = Math.ceil(min);
             int minutos = (int) min;
             System.out.println("Los minutos transcurridos en el partido son :"+minutos);
            } else {System.out.println("Valor no válido"); }
         System.out.println("¿Otro valor (s/n)?");   
         entrada.pedirEntrada();
         respuesta=entrada.getEntrada().charAt(0);
     }
}
}


Clase EntradaDeTeclado - ingreso de datos por consola

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
     //   pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();
        } //Cierre del método pedirEntrada
    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
    public String getPrimeraPalabra ()  {
               for (int i=0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }
        }
        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya
    } //Cierre del método getPrimeraPalabra
    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    } //Cierre del método getLongitud
} //Cierre de la clase
« Última modificación: 01 de Febrero 2018, 21:38 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas LuisM, al ejecutar el programa he obtenido un resultado que no concuerda con lo que dice el enunciado. El enunciado dice "Supón que un partido de fútbol tiene una duración de 90 minutos. El minuto 1 se considera que abarca desde los 0 segundos hasta los 59 segundos. El minuto 2 abarca desde los 60 segundos hasta los 119 segundos. Así sucesivamente..."

Por tanto si introdujéramos 60 segundos debería decirnos minuto 2 pero sin embargo obtengo esto:

Introduzca valor de segundos:
32
Los minutos transcurridos en el partido son :1
¿Otro valor (s/n)?
s
Introduzca valor de segundos:
60
Los minutos transcurridos en el partido son :1
¿Otro valor (s/n)?


Otro problema que he encontrado es que el bucle de control no responde bien: cuando pide s/n si se pulsa intro, aparece un error java.lang.StringIndexOutBoundsException, esto no debería ocurrir.

Deberías revisar el código

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".