Calcular la distancia de frenada

Una persona muy preocupada por la salud al volante, nos ha pedido que le hagamos un programa que le calcule las distancias de frenado para su vehículo.

La distancia de frenado se calcula a partir de la siguiente fórmula


donde:
- Vo: es la velocidad inicial del vehículo en m / s

- Tr: es el tiempo de reacción. Tomaremos 0.5 segundos si la edad del conductor está entre 18 y 40 años y 0.7 segundos si está entre 41 y 60 y 1 segundo si es superior.

- Μ: El rozamiento con la carretera (que depende del tipo de asfalto, el neumático ...). Tomaremos el valor 12:55 que es lo normal sobre autopista seca.

- G: La gravedad. Es la constante 9.81 m/s2

A partir de los datos proporcionados crea un programa que pida dos velocidades en km / h (la primera inferior a la segunda!) Y dé todas las distancias de frenado entre la primera y la segunda con incrementos de 5 km / h.

ejemplo:

Introduce la edad del conductor / a: 30
Introduce velocidad 1 (km / h): 120
Introduce velocidad 2 (km / h): 132

Distancias de frenado:
------------------------------------

A 120 km / h >>> xxx.xx m
A 125 km / h >>> xxx.xx m
A 130 km / h >>> xxx.xx m
A 132 km / h >>> xxx.xx m

Puede consultar en Internet cuáles son las distancias de frenado habituales, a fin de comprobar el correcto funcionamiento de su programa.



  1.    import java.lang.Math;
  2.    import cs1.*;
  3.    import java.util.*;
  4.    import java.text.*;
  5.    public class Distancia_Frenada   {
  6.      
  7.       public static void main(String args[])
  8.       {
  9.          double segundo=0, resultado_final=0;
  10.          int edad, veloc1, veloc2, velocidad_final, resto=0;
  11.          System.out.println("Introdueix l'edat del conductor/a: ");
  12.          edad = Keyboard.readInt();
  13.          System.out.println("Introdueix velocitat 1 (km/h): ");
  14.          veloc1 = Keyboard.readInt();
  15.          System.out.println("Introdueix velocitat 2 (km/h): ");
  16.          veloc2 = Keyboard.readInt();
  17.          if (edad>=18 || edad<=40) {
  18.             segundo = 0.5;
  19.          
  20.          }
  21.          else if (edad>=41 || edad<=60) {
  22.             segundo = 0.7;
  23.          }
  24.          else if (edad>60) {
  25.             segundo = 1;
  26.          
  27.          }
  28.          System.out.println("\nDistàncies de Frenada: ");
  29.          System.out.println("--------------------------------------------");
  30.          System.out.println();
  31.          for (int i=veloc1; i<veloc2+5;) {
  32.             resto = veloc2-i+5;
  33.             if (resto<5) {
  34.                DecimalFormat dc = new DecimalFormat("#.##");
  35.            
  36.                resultado_final = ((veloc2*segundo)+((veloc2*veloc2)/(2*9.81*0.55)));
  37.                System.out.println("A "+veloc2+" km/h    >>>     "+dc.format(resultado_final)+" m");
  38.            
  39.             }
  40.             else {
  41.                DecimalFormat df = new DecimalFormat("#.##");
  42.            
  43.                resultado_final = ((i*segundo)+((i*i)/(2*9.81*0.55)));
  44.                System.out.println("A "+i+" km/h >>>     "+df.format(resultado_final)+" m");
  45.            
  46.             }
  47.          
  48.          
  49.             i = i+5;
  50.          }
  51.       }}

No hay comentarios:

Publicar un comentario