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.
عينة: دالة القاسم المشترك الأكبر البسيط (GCD) (مع خوارزمية إقليدس)
يوضح النموذج التالي أيضًا كيفية استخدامه في بنية حلقة بسيطة.
دون استخدام وظيفة محددة من قبل المستخدم:
int main() {
int المتبقية = 1;
كثافة العمليات a1، b1، a2، b2؛
vexcodeInit();
أ1 = أ2 = 20؛
ب1 = ب2 = 64؛
بينما(الباقي > 0){
الباقي = a1 % b1;
أ1 = ب1؛
ب1 = الباقي؛
}
Brain.Screen.printAt(5, 60, "GCD ( %d, %d ) = %d", a2, b2, a1);
أ1 = أ2 = 60;
ب1 = ب2 = 200؛
بينما(الباقي > 0){
الباقي = a1 % b1;
أ1 = ب1؛
ب1 = الباقي؛
}
Brain.Screen.printAt(5, 60, "GCD ( %d, %d ) = %d", a2, b2, a1);
}
باستخدام وظيفة محددة من قبل المستخدم:
int getGCD(int a, int b){
int المتبقية = 1;
بينما(الباقي>0){
الباقي = أ % ب;
أ = ب؛
ب = الباقي؛
}
إرجاع أ;
}
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;
متوسط العائد؛
}
int main() {
int n1, n2, n3;
Brain.Screen.print("average(%d, %d, %d) = %d", 10, 20, 30);
دو متوسط (10، 20، 30)؛
ن1=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, بالمائة);
LeftMotor.spinToPosition(totalEnc, deg, true);
عودة؛
}
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، ميللي ثانية)؛
}
}
كما ترى، من شبه المستحيل تمكين الروبوت من التحرك للأمام والخلف بعدد متغير من المرات؛ لأنه لا يمكن تحديده إلا في وقت التشغيل.