如何用语法表示动力学方程
How to represent the kinetic equation in syntax
所以我想写公式
KE = 1 / 2mv^2
在 C++ 中,创建一个使用动能方程计算值的函数。但我并不完全
确定如何着手展示 1 / 2
。难道我不必将它设为 double
,因为如果我将 1 / 2
表示为整数,它只会显示 5
?编译器真正看到的是 0.5
,其中的零被截断了?这是我到目前为止计算这个等式的一段代码:double KE = 1/2*mvpow(KE,2);这是我的代码和我正在尝试做的事情。
当我使用 2
和 5
.
的测试值时,它给了我 0
而不是 25
//my protyped function kineticEnergy
double kineticEnergy(int m, int v);
int main(){
int m; // needed to pass a value into kineticEnergy function
int v; // needed to pass a value into kineticEnergy function
cout << "Enter the mass " << endl;
cin >> m;
cout << "Enter the velocity" << endl;
cin >> v;
int results = kineticEnergy(m,v);
cout << "The total kinetic energy of the object is " << results << endl;
return 0;
} // end of main
// ##########################################################
//
// Function name: kineticEnergy
//
// Description:This will grab input from a program and calculate
// kinetic energy within the function
// ##########################################################
double kineticEnergy(int m, int v){
double KE = 1/2*m*v*pow(KE,2); // equation for calculating kinetic energy
return KE;
} // end of kinetic energy
使用 std::array<double,3>
作为速度向量:
double kinetic_energy(double mass, std::array<double,3> const&velocity)
{
return 0.5 * mass * (velocity[0]*velocity[0]+
velocity[1]*velocity[1]+
velocity[2]*velocity[2]);
}
注意 1) 速度是一个向量(其大小是速度)和 2) 不推荐使用 std::pow()
来计算平方:它比单个乘法(使用 C ++11)。你可能想使用辅助
inline double square(double x)
{ return x*x; }
然后
double kinetic_energy(double mass, std::array<double,3> const&velocity)
{
return 0.5 * mass * (square(velocity[0])+square(velocity[1])+square(velocity[2]));
}
是的,1和2是整型常量,所以1/2
给你0
,就是1除以2的整数
你要的是这个(假设“m*v*pow(KE,2)
”是正确的):
double KE = 1.0/2.0*m*v*pow(KE,2);
最好的就是这个-
我花了 4 个小时来设计、修改和简化这个答案。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int m;
cout << "Enter mass (in kg): ";
cin >> m;
int v;
cout << "Enter velocity (in m/s): ";
cin >> v;
cout << "If mass is " << m << " kg" << endl;
cout << "and velocity is " << v << " m/s," << endl;
float kinEn = m * pow(v,2) * (0.5);
cout << "then kinetic energy is " << kinEn << " Joules" << endl;
return 0;
}
避免使其成为函数
并且主要尝试先声明,然后写下它的内容(使用 cout),然后提供 space 用于输入值(使用 cin)。
代码给出以下结果。
Enter mass (in kg):
Enter velocity (in m/s):
If mass is 57 kg
and velocity is 20 m/s,
then kinetic energy is 11400 Joules
所以我想写公式
KE = 1 / 2mv^2
在 C++ 中,创建一个使用动能方程计算值的函数。但我并不完全
确定如何着手展示 1 / 2
。难道我不必将它设为 double
,因为如果我将 1 / 2
表示为整数,它只会显示 5
?编译器真正看到的是 0.5
,其中的零被截断了?这是我到目前为止计算这个等式的一段代码:double KE = 1/2*mvpow(KE,2);这是我的代码和我正在尝试做的事情。
当我使用 2
和 5
.
0
而不是 25
//my protyped function kineticEnergy
double kineticEnergy(int m, int v);
int main(){
int m; // needed to pass a value into kineticEnergy function
int v; // needed to pass a value into kineticEnergy function
cout << "Enter the mass " << endl;
cin >> m;
cout << "Enter the velocity" << endl;
cin >> v;
int results = kineticEnergy(m,v);
cout << "The total kinetic energy of the object is " << results << endl;
return 0;
} // end of main
// ##########################################################
//
// Function name: kineticEnergy
//
// Description:This will grab input from a program and calculate
// kinetic energy within the function
// ##########################################################
double kineticEnergy(int m, int v){
double KE = 1/2*m*v*pow(KE,2); // equation for calculating kinetic energy
return KE;
} // end of kinetic energy
使用 std::array<double,3>
作为速度向量:
double kinetic_energy(double mass, std::array<double,3> const&velocity)
{
return 0.5 * mass * (velocity[0]*velocity[0]+
velocity[1]*velocity[1]+
velocity[2]*velocity[2]);
}
注意 1) 速度是一个向量(其大小是速度)和 2) 不推荐使用 std::pow()
来计算平方:它比单个乘法(使用 C ++11)。你可能想使用辅助
inline double square(double x)
{ return x*x; }
然后
double kinetic_energy(double mass, std::array<double,3> const&velocity)
{
return 0.5 * mass * (square(velocity[0])+square(velocity[1])+square(velocity[2]));
}
是的,1和2是整型常量,所以1/2
给你0
,就是1除以2的整数
你要的是这个(假设“m*v*pow(KE,2)
”是正确的):
double KE = 1.0/2.0*m*v*pow(KE,2);
最好的就是这个-
我花了 4 个小时来设计、修改和简化这个答案。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int m;
cout << "Enter mass (in kg): ";
cin >> m;
int v;
cout << "Enter velocity (in m/s): ";
cin >> v;
cout << "If mass is " << m << " kg" << endl;
cout << "and velocity is " << v << " m/s," << endl;
float kinEn = m * pow(v,2) * (0.5);
cout << "then kinetic energy is " << kinEn << " Joules" << endl;
return 0;
}
避免使其成为函数 并且主要尝试先声明,然后写下它的内容(使用 cout),然后提供 space 用于输入值(使用 cin)。
代码给出以下结果。
Enter mass (in kg):
Enter velocity (in m/s):
If mass is 57 kg
and velocity is 20 m/s,
then kinetic energy is 11400 Joules