TIRO PARABOLICO -ACTUALIZACIÓN-
Sunday, October 31, 2010 5:31:00 AM
y la mayoría ha sido pidiéndome que reescriba ese código en C++
pero por cuestiones de tiempo no lo he hecho
Al igual que ha tenido contribuciones ese código, una persona (JOAC) lo reescribio para C#
y otra (Luis) agrego un JOptionPane para que ya no se tenga que ingresar los datos desde consola, gracias a los dos por sus contribuciones
Y como es de los post mas populares y por la petición de uno de los que lo visitaron, agregue lo que Luis había hecho al hacer uso del JOptionPane y el resultado es:
Main.java
/**
* @author Héctor
* @colaborador luis (perdon por no poner mas datos pero solo se que se llama luis :D )
* @creado el 11 Deciembre 2006
* @modificado el 24 de Junio de 2010
*
*/
package tiroparabolico;
import javax.swing.JOptionPane;
public class Main {
static String temp = "";
public static void main(String[] args) {
temp = JOptionPane.showInputDialog(null, "Velocidad", "Datos", JOptionPane.QUESTION_MESSAGE);
double velocidad = Double.parseDouble(temp);
temp = JOptionPane.showInputDialog(null, "Angulo", "Datos", JOptionPane.QUESTION_MESSAGE);
double angulo = Double.parseDouble(temp);
Calculos calculos = new Calculos();
calculos.Operaciones(angulo, velocidad);
}
}
Calculos.java
/**
* @author Héctor
* @creado el 11 Deciembre 2006
* @modificado el 31 de Octubre de 2010
*
*/
package tiroparabolico;
import javax.swing.JOptionPane;
public class Calculos {
double Angulo;
double Altura;
double Velocidadi;
double Distancia;
double Velocidadx;
double Velocidady;
double Velocidadf;
double Tiempo;
public void Operaciones(double angulo, double velocidad) {
Angulo = angulo;
Velocidadi = velocidad;
JOptionPane.showMessageDialog(null, "Distancia recorrida : " + Distancia() + " m"
+ "\nTiempo de recorrido : " + Tiempo() + " s"
+ "\nA una velocidad de : " + Velocidad() + " m/s"
+ "\nCon una altura maxima de : " + Altura() + " m");
}
double Distancia() {
Distancia = ((Math.pow(Velocidadi, 2) * (Math.sin(Math.toRadians(Angulo * 2)))) / 9.8);
return Distancia;
}
double Tiempo() {
Tiempo = ((2 * Velocidadi) * (Math.sin(Math.toRadians(Angulo)))) / 9.8;
return Tiempo;
}
double Velocidad() {
Velocidadx = (Velocidadi * Math.cos(Math.toRadians(Angulo)));
Velocidady = (Velocidadi * Math.sin(Math.toRadians(Angulo)) - 9.8 * Tiempo);
Velocidadf = (Math.sqrt(Math.pow(Velocidadx, 2) + Math.pow(Velocidady, 2)));
return Velocidadf;
}
double Altura() {
Altura = ((Math.pow(Velocidadi, 2) * Math.pow(Math.sin(Math.toRadians(Angulo)), 2)) / (9.8 * 2));
return Altura;
}
}
La recomendación continua siendo la misma que Luis nos había hecho:
... no valida nada así que abusados con meterle letras o numeros negativos esta es la clase ...
Los cambios son mas esteticos que nada, ya que se pasa de esto:
A esto:
Espero les sea de utilidad











