Cálculos sencillos de cinemática

Miguel Ascaso Nerín

/*Resueve problemas simples de MRUA*/

#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
int main()
{
int variable=0;
float pini, pfin, v, t, a,t1,t2, raiz;
cout << “Este programa resuelve problemas de movimiento uniformemente acelerado simples donde no influye la velocidad final del cuerpo.”<<endl<<endl;

cout<< “Indica la variable que quieres hallar:”<<endl<< “Para la velocidad inicial pon (1)” <<endl<< “Distancia inicial (2)”<<endl<<“Distancia final (3)”<<endl<<“Tiempo (4)”<<endl<<“Aceleracion (5): “;
cin >> variable;
if (variable==1)
{
cout<<endl<<endl<<“Introduce la posicion inicial: “;
cin>>pini;
cout<<endl<<“Introduce la posicion final: “;
cin>>pfin;
cout<<endl<<“Introduce el tiempo transcurrido: “;
cin>>t;
cout<<endl<<“Introduce la aceleracion: “;
cin>>a;
v=(((pfin-pini)-(((0,5)*a*t*t)))/t);

cout<<endl<<endl<<“La velocidad inicial es: “<<v;
}else if (variable==2)
{
cout<<endl<<endl<<“Introduce velocidad inicial: “;
cin>>v;
cout<<endl<<“Introduce la posicion final: “;
cin>>pfin;
cout<<endl<<“Introduce el tiempo transcurrido: “;
cin>>t;
cout<<endl<<“Introduce la aceleracion: “;
cin>>a;
pini=(pfin-((0.5)*a*t*t)-(v*t));
cout<<endl<<endl<<“La distancia inicial es: “<<pini;

}else if (variable==3)
{
cout<<endl<<endl<<“Introduce la posicion inicial: “;
cin>>pini;
cout<<endl<<“Introduce la velocidad inicial: “;
cin>>v;
cout<<endl<<“Introduce el tiempo transcurrido: “;
cin>>t;
cout<<endl<<“Introduce la aceleracion: “;
cin>>a;
pfin=(0.5*a*t*t+v*t+pini);

cout<<endl<<endl<<“La posicion final es: “<<pfin;
}else if (variable==5)
{
cout<<endl<<endl<<“Introduce la posicion inicial: “;
cin>>pini;
cout<<endl<<“Introduce la posicion final: “;
cin>>pfin;
cout<<endl<<“Introduce el tiempo transcurrido: “;
cin>>t;
cout<<endl<<“Introduce la velocidad inicial: “;
cin>>v;
a=(2*((pfin-pini)-(v*t))/(t*t));

cout<<endl<<endl<<“La aceleracion es: “<<a;

}else if(variable==4)
{
cout<<endl<<endl<<“Introduce la posicion inicial: “;
cin>>pini;
cout<<endl<<“Introduce la posicion final: “;
cin>>pfin;
cout<<endl<<“Introduce la velocidad inicial: “;
cin>>v;
cout<<endl<<“Introduce la aceleracion: “;
cin>>a;

//ecuacion 2º grado…
raiz=(v*v-((2*a)*(pini-pfin)));

if (a==0 && v==0 && (pini-pfin)==0)
cout<<endl<<endl<<“No se puede calcular”<<endl<<endl;
else if (a==0 && v==0 && (pini-pfin)!=0)
cout<<endl<<endl<<“No tiene solucion, es imposible”<<endl<<endl;
else if ((a==0 && (pini-pfin)==0 && v!=0) || (v==0 && (pini-pfin)==0 && a!=0))
cout<<endl<<endl<<“No transcurre nada de tiempo”<<endl<<endl;
else if ((a==0 && v!=0 && (pini-pfin)!=0))
{
t=-(pini-pfin)/v;
cout<<endl<<endl<<“El tiempo vale “<<t<<endl<<endl<<endl;
}

else if (raiz<0)
{
cout<<endl<<“El tiempo no se puede calcular”<<endl<<endl<<endl;

}
else if (raiz==0)
{
t=-(v/a);
cout<<endl<<endl<<“El tiempo es: “<<t<<endl<<endl<<endl;
}

else if (raiz>0) //dos posibles soluciones
{
t1=((-v+(sqrt (raiz)))/(2*a));
t2=((-v-(sqrt (raiz)))/(2*a));

cout<<endl<<“El tiempo tiene dos valores teoricos:” <<endl<< “Solucion 1: “<<t1<<endl<<“Solucion 2: “<<t2<<endl<<endl<<endl;
}

}
else cout<<“El numero no es valido.”<<endl<<endl<<endl;
return 0;
}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

2 respuestas a Cálculos sencillos de cinemática

  1. Repasa y corrige la sintaxis de este programa: include ?, operador <> , etc. Si el usuario tiene que introducir datos deberás advertirle en cada momento con un mensaje los datos a introducir.

  2. ok, ahora tiene mejor pinta.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s