Java - ayuda con ejercico de java

 
Vista:

ayuda con ejercico de java

Publicado por jose (2 intervenciones) el 31/07/2008 02:11:22
hola amigos como estan les escribo para ver si alguien puede ayudarme hacer este ejercico en java soy nuevo estudiando este lenguaje de programacion y les agradeceria en el alma su ayuda si alguien me ayuda con este ejercico.

Escriba un programa que calcule la velocidad en mts:=seg: de los corredores en una carrera. La entrada al programa serán la distancia de la carrera en metros (sólo se pide una vez) y el tiempo de cada corredor en el formato: "mm:ss". La salida será la velocidad de cada corredor. El programa deberá ejecutarse repetidas veces hasta que se ingrese la palabra "Salir" como tiempo del corredor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con ejercico de java

Publicado por Mario (199 intervenciones) el 31/07/2008 10:12:44
Es algo tan sencillo que si te escribimos el código no te va a servir para nada porque no vas a aprender...
Coméntanos qué dudas específicas tienes, si lo que no sabes es cómo leer los datos que se introducen... o si no sabes como hacer que el programa funcione hasta teclear "salir"...
Ve planteando tus dudas y te las vamos resolviendo, así será como aprenderás, si te damos el código te tendremos dentro de poco de nuevo por aquí preguntando cosas muy similares...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con ejercico de java

Publicado por jose (2 intervenciones) el 31/07/2008 17:08:47
bueno la verdad es que no se como como hacer que el programa funcione hasta teclear "salir"... y como hacer que los datos del programa sean mts/seg. "mm:ss" si me puedes colaborar te lo agradeceria...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con ejercico de java

Publicado por Mario (199 intervenciones) el 01/08/2008 10:55:04
A ver... vayamos por partes. El tema de ejecutarse hasta que se teclee salir es sencillo.
Supongamos que tú lees el tiempo que tarda cada corredor en una variable tipo String llamada "tiempo". Pues para hacer que el programa funcione hasta que no tecleen "salir" tienes que hacer lo siguiente:

lees el tiempo y lo almacenas en tu variable "tiempo".
y ahora haces un bucle así:
while(tiempo.toLowerCase().compareTo("salir") != 0){
AQUÍ INSERTAS LAS OPERACIONES NECESARIAS PARA TUS CÁLCULOS.

Una vez terminadas las operaciones, vuelves a leer la variable tiempo para tomar el nuevo valor antes de volver a comenzar el bucle.
}

Te explico esta linea: tiempo.toLowerCase().compareTo("salir") != 0. las cadenas en java no se comparan con "==", sino con el método compareTo(String). Este método te devuelve un cero si las dos cadenas son iguales y un 1 o un -1 dependiendo de qué cadena iría antes ordenadas alfabéticamente (al fin y al cabo a ti lo que te interesa es que sea 0 o no). por otro lado, he usado también el método toLowerCase() que lo que hace es devolverte la cadena que lo invoca en minusculas, así evitas que te diga que las cadenas son distintas si el usuario escribe "SALIR" o "Salir" y tú comparas lo que lees con la cadena "salir".

Ahora pasamos al otro punto... tú lees el tiempo en tu variable "tiempo", que deben escribirtela tipo "mm:ss" y debes sacar de ahí dos variables tipo int, que las vamos a llamar "minutos" y "segundos". Para hace eso tienes que dividir la cadena de forma que metas en la variable minutos lo que tienes a la izquierda de los dos puntos, y en la variable segundos lo que tienes a su derecha. Esto lo puedes hacer con la ayuda de los métodos indexOf y substring de la clase String. Te explico como:
Primero vamos a obtener la posición dentro de la variable tiempo en la que se encuentran los dos puntos (":"):

int posicion = tiempo.indexOf(":");

Si el usuario escribio por ejemplo 18:20, la variable posición tomará el valor 2, ya que el índice del primer carácter en java es el 0, así que aunque los dos puntos estén en la tercera posición, tu variable posicion tendrá el valor 2.
Ahora vamos a dividir la cadena con el método substring. Este método "corta" una cadena de la siguiente forma:

int minutos = Integer.parseInt(tiempo.substring(0, posicion));
int segundos = Integer.parseInt(tiempo.substring(posicion+1, tiempo.length()));

para sacar los minutos, le decimos al método que empiece a cortar desde el principo (índice 0) y que el primer caracter que no queremos es el 2º (los dos puntos).
para sacar los segundos, le decimos que empiece en el carácter posterior a los dos puntos (posición + 1) y que llegue hasta el final de la longitud de la cadena (tiempo.length).
Como ese método devuelve una cadena, finalmente lo que hacemos es convertirla a tipo int con el método Integer.parseInt.

Espero que no te dediques solamente a copiar y pegar el código, ya que sino no te servirá de nada. Léete bien las explicaciones e intenta entenderlas. Si quieres que te explique algo más detalladamete dímelo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar