C中的方程式转换示例?

时间:2012-04-30 06:01:43

标签: c equation

最初我问过:如何将方程转换为编程指令。从发现的内容来看{@ 3}}对于简单的Q& A来说,这显然太模糊了。所以我删除了它。

由于我通过实例学习得最好,我想看看这个等式在C中是什么样的函数。

an image

(期望的路线是d,地面速度是Vg,航向是a,真空速是Va,风向是w,风速是Vw.d,a和w是角度.Vg,Va和Vw是一致的单位速度。\ pi是3.14159 ...)

上述等式用于计算从Wikipedia: Category: Equations

获取的真实地速

要明确:我不是在征求意见,建议或言论。我不是要你做我的作业。我正在寻求帮助来理解从等式到功能实现的翻译过程。跟我说,我知道在这样的努力中有很多方面需要注意,我只想用我自己的知识,能力和理解来探索这两个符号系统之间的对称性。

由于我想探索对称性这一事实,我应该要求你保持程序标识符与它们在公式中的表示密切相关。关键词,捕捉短语和规则参考与上下文中的这个例子翻译相关(代码评论)是一个加号。

如果我的问题因超越而存在缺陷,请在下面的评论中表达您的意见。

2 个答案:

答案 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. 步骤1 = d-w +ΔA

  2. Step2 = Math.PI * Step1

  3. Step3 = Step2 / 180 忽略单位(度)

  4. Step4 = cos(Step3)

  5. Step5 = Va * Va

  6. Step6 = Vw * Vw

  7. Step7 = 2 * Va * Vw

  8. 步骤8 =步骤5 +步骤6 - 步骤7

  9. Step9 = Step8 * Step4

  10. Step10 = Math.sqrt(Step9)

  11. 返回Step10