The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Δείγμα: Μια απλή συνάρτηση μέγιστου κοινού παρονομαστή (ΜΚΠ) (με τον αλγόριθμο του Ευκλείδη)
Το ακόλουθο δείγμα εξηγεί επίσης πώς χρησιμοποιείται σε μια απλή δομή βρόχου.
Χωρίς τη χρήση συνάρτησης που ορίζεται από τον χρήστη:
int main() {
int υπόλοιπο = 1;
int a1, b1, a2, b2;
vexcodeInit();
a1 = a2 = 20;
b1 = b2 = 64;
ενώ(υπόλοιπο > 0){
υπόλοιπο = a1 % b1;
a1 = b1;
b1 = υπόλοιπο;
}
Brain.Screen.printAt(5, 60, "ΜΚΔ ( %d, %d ) = %d", a2, b2, a1);
a1 = a2 = 60;
b1 = b2 = 200;
ενώ(υπόλοιπο > 0){
υπόλοιπο = a1 % b1;
a1 = b1;
b1 = υπόλοιπο;
}
Brain.Screen.printAt(5, 60, "ΜΚΔ ( %d, %d ) = %d", a2, b2, a1);
}
Χρησιμοποιώντας μια συνάρτηση που ορίζεται από τον χρήστη:
int getGCD(int a, int b){
int υπόλοιπο = 1;
ενώ(υπόλοιπο>0){
υπόλοιπο = a % b;
a = b;
b = υπόλοιπο;
}
return a;
}
int main() {
vexcodeInit();
Brain.Screen.printAt(5, 60, "GCD ( %d, %d ) = %d",getGCD(20, 64));
Brain.Screen.printAt(5, 60, "GCD ( %d, %d ) = %d",getGCD(60, 100));
}
Το παρακάτω βίντεο δείχνει πώς ρέει η ακολουθία λογικής από τη συνάρτηση καλούντος main():
Δείγμα: Υπολογισμός μέσου όρου ενός συνόλου αριθμών.
float doAverage(int n1, int n2, int n3){
float avg = (n1 + n2 + n3)/3;
return avg;
}
int main() {
int n1, n2, n3;
Brain.Screen.print("average(%d, %d, %d) = %d", 10, 20, 30);
doAverage(10, 20, 30);
n1=10; n2=20; n3=40;
Brain.Screen.print("average(%d, %d, %d) = %d", n1, n2, n3);
doAverage(n1, n2, n3);
}
Δείγμα: Ενεργοποίηση ενός ρομπότ για προώθηση με μεταβλητή τιμή κωδικοποιητή
void reportMotionValues(){
Brain.Screen.printAt(5,100, "%8.2lf%8.2lf%8.2f",
LeftMotor.position(rev),
LeftMotor.position(deg));
}
void goStraight(float totalEnc, float vel){
LeftMotor.resetPosition();
LeftMotor.setVelocity(50.0, percent);
LeftMotor.spinToPosition(totalEnc, deg, true);
return;
}
int main() {
int enc=1000; // >0: προς τα εμπρός, <0: προς τα πίσω
vexcodeInit();
for(int i=0; i<10; i++){
enc *= -1;
goStraight(enc, 100);
Brain.Screen.printAt(5,60, "Ολοκληρώθηκε");
reportMotionValues();
//αυτή η καθυστέρηση υπάρχει μόνο για να δείτε αυτές τις ενέργειες.
//Δεν χρειάζεται να βάλετε καθυστέρηση εδώ.
αναμονή(2000, msec);
}
}Όπως βλέπετε, είναι σχεδόν αδύνατο να επιτρέψετε στο ρομπότ να κινείται εμπρός και πίσω με μεταβλητό αριθμό φορών, καθώς αυτό μπορεί να προσδιοριστεί μόνο κατά τον χρόνο εκτέλεσης.