2015-08-21 8 views
-1
#pragma config(Motor, port1,   RightsideB, tmotorVex393_HBridge, openLoop) 
#pragma config(Motor, port2,   RightsideF, tmotorVex393_MC29, openLoop) 
#pragma config(Motor, port9,   LefttsideF, tmotorVex393_MC29, openLoop) 
#pragma config(Motor, port10,   LeftsideB,  tmotorVex393_HBridge, openLoop) 
//*!!Code automatically generated by 'ROBOTC' configuration wizard    !!*// 

float xdiff, ydiff, firstpart, secondpart, firstpart2, secondpart2, total, lengthformula; 
float getdistance(int x1, int x2,int y1, int y2){ 
    return x1; 
    return x2; 
    return y1; 
    return y2; 

    xdiff = x2 - x1; 
    ydiff = y2 - y1; 

    firstpart = (xdiff); 
    return firstpart; 
    secondpart = (ydiff); 
    firstpart2 = pow(xdiff,2); 
    secondpart2 = pow(ydiff, 2); 

    total = firstpart2 + secondpart2; 
    lengthformula = sqrt(total); 
    return lengthformula; 
} 

task main() 
{ 
    getdistance(0, 4, 0, 1); 
    while (true){ 
     motor[RightsideB]= vexRT[Ch2]; 
     motor[RightsideF] = vexRT[Ch2]; 
     motor[LeftsideB]= vexRT[Ch3]; 
     motor[LefttsideF]= vexRT[Ch3]; 

    } 

} 

Эта программа будет работать без ошибок, но когда я запустил ее и откройте отладчик, переменные не будут работать. Я запрограммировал его в малом и знаю, что это работает на нем. im, превращая его в робот-cФункции возврата Не работают. Использование pythagorean Теорема

+3

Если у вас есть 'return' в середине функции, остальная часть функции не выполняется. – Barmar

+1

Вы не присваиваете возвращаемое значение чему-либо в 'main()'. – Barmar

+0

Итак, куда должны возвращаться функции возврата? и как мне назначить возврат в main (0, я пытался использовать его для getdistance, но у меня были серьезные ошибки. – Matthew

ответ

1

Избавьтесь от всех операторов return в getdistance, за исключением return lengthformula в конце. return заставляет функцию прекратить работу и сразу же возвращает указанное вами значение, поэтому остальная часть функции никогда не запускается, и расстояние никогда не рассчитывается.

В main(), вам нужно присвоить результат переменной:

task main() { 
    float distance = getdistance(0, 4, 0, 1); 
    ... 
} 

Затем вы можете использовать для distance, что вам нужно.

+0

Я мог бы использовать это как глобальное да? – Matthew

+0

В моем ответе это локальная переменная. Вместо этого вы можете объявить его глобально, а затем просто назначить 'distance = getdistance (0. 4, 0, 1)'. – Barmar

+0

, и я смог бы увидеть значение, перейдя к отладчику? Кстати, спасибо за помощь. я был так потерян. наш ведущий программист понятия не имел. у него гораздо больше опыта, но он никогда не использовал это. – Matthew

 Смежные вопросы

  • Нет связанных вопросов^_^