По какой-то нечетной причине переменная «angle» не будет возвращаться к 0, когда цикл завершается. Вся математика вычисляет только c = sqrt (a^2 + b^2 - 2abCos (theta)), робот не выполнит всю математику в одной строке. В полном коде a и b изменяются переменные и основаны на вводе ультразвукового датчика.Как сбросить переменную обратно до 0 после использования в цикле в NXC
Суб может быть вызван до трех раз, а переменная угла должна начинаться с 0 каждый раз, когда вызывается суб.
Я попытался установить угол плавания = 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();
}
Это не C или C# ... –
ОП сказал, что это NXC, http://en.wikipedia.org/wiki/Not_eXactly_C – tyh
Название говорит C#/NXC - так же категорий этот пост указан ниже. Редактировать, это было ... –