Pascal 我不能用帕斯卡表达式写

Pascal 我不能用帕斯卡表达式写,pascal,Pascal,我试着用PascaL sinx*g^3-cosg^2写下这个表达式,但我总是出错 我的代码在这里: z:=exp(ln(sin(x*g))*3)-cos(exp(ln(g)*2)); Writeln('z=',z); z、 x,g是真实的您的代码有三个潜在问题 首先,如果sin函数有可能返回负值或g为负值,则log函数将失败并出现错误 其次,Sqrg,甚至是g*g,比explng*2更高效、更清晰 第三,使用幂函数比使用exp/ln方法更容易理解,可能更有效,并且在数值上更精确 因此,我将

我试着用PascaL sinx*g^3-cosg^2写下这个表达式,但我总是出错 我的代码在这里:

 z:=exp(ln(sin(x*g))*3)-cos(exp(ln(g)*2));
 Writeln('z=',z);

z、 x,g是真实的

您的代码有三个潜在问题

首先,如果sin函数有可能返回负值或g为负值,则log函数将失败并出现错误

其次,Sqrg,甚至是g*g,比explng*2更高效、更清晰

第三,使用幂函数比使用exp/ln方法更容易理解,可能更有效,并且在数值上更精确

因此,我将用以下代码替换您的代码:

 Temp := Sin(x*g);
 z := Sign(Temp)*Power(Abs(Temp),3) - cos(Sqr(g));

你错在哪里?意外的结果?代码无法编译?为什么要取x*g和g的对数?请仔细阅读exp函数的正确用法。提示:它不想要一个*。别忘了大多数Pascal实现在RAD中使用sin和cos,而不是degrees。如果没有缺失的Abs,有任何合法的理由支持否决票吗?