Задание

Выберите правильные варианты написания функции, с помощью которой робот сможет развернуться на месте налево на длину дуги, равной distance. Радиус колеса равен R. Левый мотор подключен в первый порт, правый мотор подключен в десятый порт. В данном случае будет использован оптический энкодер, подключенный в первый цифровой порт. Энкодер, как вы помните, измеряет угол поворота оси колеса величиной angle, размерностью которого в данном случае являются градусы.

int angle = 0;

void rotate(int LeftMotor, int RightMotor, int distance, int R)

{

angle = (180*distance)/(3.14*R);

while(SensorValue[dgtl1] < angle)

{

motor[port1] = -LeftMotor;

motor[port10] = RightMotor;

wait1Msec(30);

}

motor[port1] = 0;

motor[port10] = 0;

wait1Msec(30);

}

int angle = 0;

int encoder = 0;

void rotate(int LeftMotor, int RightMotor, int distance, int R)

{

angle = (180*distance)/(3.14*R);

while(encoder < angle)

{

motor[port1] = -LeftMotor;

motor[port10] = RightMotor;

wait1Msec(30);

encoder = SensorValue[dgtl1] ;

}

motor[port1] = 0;

motor[port10] = 0;

wait1Msec(30);

}

void rotate(int LeftMotor, int RightMotor, int distance, int R)

{

angle = (180*distance)/(3.14*R);

while(encoder < angle)

{

motor[port1] = -LeftMotor;

motor[port10] = RightMotor;

wait1Msec(30);

encoder = SensorValue[dgtl1] ;

}

motor[port1] = 0;

motor[port10] = 0;

wait1Msec(30);

}

int angle = 0;

void rotate(int LeftMotor, int RightMotor, int distance, int R)

{

angle = (180*distance)/(3.14*R);

while(SensorValue[dgtl1] < angle)

{

motor[port1] = LeftMotor;

motor[port10] = -RightMotor;

wait1Msec(30);

}

motor[port1] = 0;

motor[port10] = 0;

wait1Msec(30);

}

int angle = 0;

void rotate(int LeftMotor, int RightMotor, int distance, int R)

{

while(SensorValue[dgtl1] < distance)

{

motor[port1] = -LeftMotor;

motor[port10] = RightMotor;

wait1Msec(30);

}

motor[port1] = 0;

motor[port10] = 0;

wait1Msec(30);

}