Ejercicio 16. Encuentro de dos vehículos

Dos vehículos viajan a diferentes velocidades y están distanciados por una distancia “d”. El que está detrás viaja a una velocidad mayor. Se pide hacer un algoritmo para ingresar la distancia entre los dos vehículos (km) y sus respectivas velocidades (km/h) y con esto determinar y mostrar que tiempo (minutos) alcanzará el vehículo más rápido al otro.

Una vez más nos encontramos donde el principal problema que afrontamos a la hora de programar es comprender que se nos pide, y llegar a la conclusión sobre los cálculos que hemos de realizar para obtener el resultado que nos solicitan.

Arriba he intentado esquematizar las operaciones que hemos de tener en cuenta, y explicar el por qué.

En este caso, necesitamos saber cuál es la distancia que hay de diferencia entre ambos coches, y la velocidad que lleva cada uno para calcular su diferencia.

Ambos coches seguirán avanzando en su camino, pero a nosotros sólo nos interesa saber cuando reducirán la distancia que los separan en un inicio. Por eso nos quedamos sólo con la diferencia entre las velocidades, y la distancia inicial.

El tiempo que tardarán en reducir esa distancia es t = d / velocidad

Esta fórmula, al estar utilizando la velocidad en Km/h nos dará el tiempo en horas, por lo que es necesario para mostrar el resultado final convertirla a minutos multiplicando por 60.

package ejerciciosSecuenciales;

import java.util.Scanner;

/**
16 Ejercicios secuenciales en Java

Programa:
Dos vehículos viajan a diferentes velocidades (v1 y v2) y están distanciados
por una distancia d. El que está detrás viaja a una velocidad mayor. Se pide
hacer un algoritmo para ingresar la distancia entre los dos vehículos (km) 
y sus respectivas velocidades (km/h) y con esto determinar y mostrar en que
tiempo (minutos) alcanzará el vehículo más rápido al otro.

@author: manolohidago_
@date: 02-11-19
*/

// Inicio del programa y declaración de variables:
public class Ejercicio16LugarEncuentroDosVehiculos {
  public static void main(String[] args) {
    Scanner scanner = new Scanner (System.in);
    double v1;
    double v2;
    double distancia;
    double diferenciaVelocidad;
    double tiempo;

// Solicitud de datos al usuario
    System.out.println("Este programa calcula el tiempo que tardan en encontrarse dos vehículos que circulan a distinta velocidad y parten desde una distancia inicial.");
    System.out.print("Introduce la distancia a la que se encuentran situados ambos vehículos: ");
    distancia = scanner.nextDouble();
    System.out.print("Velocidad en Km/h del vehículo 1 (más lento): ");
    v1 = scanner.nextDouble();
    System.out.print("Velocidad en Km/h del vehículo 2 (más rápido): ");
    v2 = scanner.nextDouble();   
    
// Realizamos Cálculos 
    diferenciaVelocidad = v2 - v1;
    tiempo = distancia / (diferenciaVelocidad); // resultado de tiempo en horas.
    
// convertimos tiempo a minutos
    tiempo = tiempo * 60;

// Mostramos en pantalla
    System.out.println("Ambos vehículos coincidirán una vez transcurridos " + (int)tiempo + " minutos.");
    
  }
}

Puedes acceder a este ejercicio en GitHub en este enlace

Si tienes alguna duda al respecto, alguna sugerencia o algo que no te haya quedado claro, no tienes más que escribirme en los comentarios, estoy aquí para ayudarte y aprender, ¡Nos leemos!