最初我问过:如何将方程转换为编程指令。从发现的内容来看{@ 3}}对于简单的Q& A来说,这显然太模糊了。所以我删除了它。
由于我通过实例学习得最好,我想看看这个等式在C中是什么样的函数。
(期望的路线是d,地面速度是Vg,航向是a,真空速是Va,风向是w,风速是Vw.d,a和w是角度.Vg,Va和Vw是一致的单位速度。\ pi是3.14159 ...)
上述等式用于计算从Wikipedia: Category: Equations
获取的真实地速要明确:我不是在征求意见,建议或言论。我不是要你做我的作业。我正在寻求帮助来理解从等式到功能实现的翻译过程。跟我说,我知道在这样的努力中有很多方面需要注意,我只想用我自己的知识,能力和理解来探索这两个符号系统之间的对称性。
由于我想探索对称性这一事实,我应该要求你保持程序标识符与它们在公式中的表示密切相关。关键词,捕捉短语和规则参考与上下文中的这个例子翻译相关(代码评论)是一个加号。
如果我的问题因超越而存在缺陷,请在下面的评论中表达您的意见。
答案 0 :(得分:3)
您输入的公式非常类似于图形计算器。有cos的部分会是这样的:
#include <math.h>
int main(void) {
double d, w, da;
double result;
result = cos( ( M_PI * ( d - w + da ) ) / ( 180 * M_PI / 180 ) );
}
您可以很容易地添加公式的其余部分。当然,在计算结果之前,你必须用合理的东西初始化所有变量,最后用它做一些事情。不要将它全部放在一行上,使用临时变量(因此在下一步中,您将前一个结果替换为整个cos表达式)并将计算拆分为可以在特定于域的术语中有意义地描述的部分,如果可能的话。
现在,与数学出版物相比,在编程方面做了哪些不同的事情,其他程序员通常不会成为您所在领域的专家。我完全不知道那个公式只是看着它做了什么。因此,我非常感谢重命名变量并添加与公式的实际使用相关的注释(您的问题最初并未解释变量名称的含义,因此我想出了非常合理的变量)。像这样:
#include <math.h>
int main(void) {
double density, angledelta;
double weight; /* Weight of cake with plate included. */
double deg2rad;
double result;
deg2rad = M_PI / 180;
/* Calculate X coordinate of next cake slice intersection with cake perimeter
using fair cake splitting with density heuristics. */
result = cos( ( M_PI * ( density - weight + angledelta ) ) / ( 180 * deg2rad ) );
}
答案 1 :(得分:2)
要将方程式天生地转换为c,您可以根据操作顺序将其分解为多个部分。然后你可以根据需要改进它。
我打破它的方式:
该函数将具有参数:d,w,deltaA,Va,Vw
步骤1 = d-w +ΔA
Step2 = Math.PI
* Step1
Step3 = Step2 / 180 忽略单位(度)
Step4 = cos(Step3)
Step5 = Va * Va
Step6 = Vw * Vw
Step7 = 2 * Va * Vw
步骤8 =步骤5 +步骤6 - 步骤7
Step9 = Step8 * Step4
Step10 = Math.sqrt(Step9)
返回Step10