0

奇妙な理由で、変数「角度」は、ループが終了しても 0 にリセットされません。すべての数学は c = sqrt(a^2 + b^2 - 2abCos(theta)) を計算するだけです。ロボットはすべての数学を 1 行で実行するわけではありません。完全なコードでは、a と b は両方とも変化する変数であり、超音波センサー入力に基づいています。

サブは 3 回まで呼び出すことができ、角度変数はサブが呼び出されるたびに 0 から開始する必要があります。

float angle = 0; を入れてみました。または単に角度= 0; 想像できるすべての場所で、しかし何も機能しません。int angle = 0; を使用してみました。複数の場所で。

int angle, a, b, c, csqr, theta, cosTheta, aSqrd, bSqrd, atmb, twoab;
#define pi 3.14159265359

sub calculate()  
{

 repeat(2)
 {
 float a = 172.42;
 float angle = angle + 3;
 float theta = ((angle)*(pi/180));
 float b = 172.42;
 float cosTheta = cos(theta);
 float aSqrd = pow(a, 2);
 float bSqrd = pow(b, 2);
 float atmb = (a * b);
 float twoab = (2 * atmb);
 float csqr = ((aSqrd + bSqrd) - (twoab * cosTheta));
 float c = sqrt(csqr);
 NumOut(0,0,angle);
 Wait(3000);
 ClearScreen();
 }
 float angle = 0;

}

task main()
{
     calculate();
     ClearScreen();
     calculate();
}
4

2 に答える 2