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.
फ़ंक्शन परिभाषा
अब जबकि हमने कुछ नमूने देख लिए हैं, आइए फ़ंक्शन परिभाषा के सामान्य रूप पर नज़र डालें:
void function-name() {
चरों की घोषणाएं, आदि
अभिव्यक्तियाँ...
//कोई स्पष्ट वापसी आवश्यक नहीं है.
}
कोई फ़ंक्शन कोई विशेष मान नहीं लौटाता, न ही कोई आने वाला पैरामीटर लौटाता है।
void फ़ंक्शन-नाम (डेटा-प्रकार चर) {
चर की घोषणाएं, आदि
अभिव्यक्तियाँ...
//कोई स्पष्ट वापसी आवश्यक नहीं है.
}
यदि आप एकाधिक चर चाहते हैं, तो आप बस "," को सीमांकक के रूप में उपयोग करें:
एक फ़ंक्शन कोई विशेष मान नहीं लौटाता है, लेकिन एक पैरामीटर के साथ लौटाता है।
शून्य फ़ंक्शन-नाम (डेटा-प्रकार चर, डेटा-प्रकार चर, आदि) {
चरों आदि की घोषणाएँ
अभिव्यक्तियाँ...
//कोई स्पष्ट वापसी आवश्यक नहीं है.
}
एक फ़ंक्शन कोई विशेष मान नहीं लौटाता है, लेकिन एक से अधिक पैरामीटर के साथ लौटाता है।
शून्य फ़ंक्शन-नाम (डेटा-प्रकार चर, डेटा-प्रकार चर, आदि) {
चरों आदि की घोषणाएँ
अभिव्यक्तियाँ...
वापसी-मान
लौटाएँ }
एक फ़ंक्शन एक विशिष्ट डेटाटाइप का मान लौटाता है, तथा एक से अधिक इनपुट पैरामीटर के साथ।
किसी फ़ंक्शन काreturnप्रकार उस फ़ंक्शन द्वारा लौटाए गए रिटर्न-वैल्यू के डेटा प्रकार के समान होना चाहिए। रिटर्न-वैल्यूएक स्थिर मान या एक चर हो सकता है। इसके पहले कीवर्ड “return.” होना चाहिए
निम्नलिखित नियम रिटर्न प्रकार को नियंत्रित करते हैं:
- सरणी को छोड़कर, रिटर्न प्रकार पर लगभग कोई प्रतिबंध नहीं है। (ऐरे (Array)) डेटा बनाने के संबंध में एक और अधिक उन्नत विषय है। यह इस लेख के दायरे से बाहर है और इसे यहां शामिल नहीं किया जाएगा।
- रिटर्न प्रकार “void” निर्दिष्ट करने का अर्थ है कि कोई रिटर्न मान आवश्यक नहीं है। “वापसी” खंड अंतर्निहित है। इसका मतलब है कि आपको “void” फ़ंक्शन के अंत में स्पष्ट रूप से “return” बताना होगा।
main() से पहले या बाद में फ़ंक्शन बनाना है?
कंपाइलर आपकी फ़ाइल को ऊपर से नीचे तक पढ़ता है। इस प्रकार, क्रम मायने रखता है।
आइए सरल महत्तम सामान्य विभाजक (GCD) फ़ंक्शन को उदाहरण के रूप में लें। आपको एक त्रुटि मिलेगी:अघोषित पहचानकर्ता 'getGCD' का उपयोग
वास्तव में यह सत्य है चाहे वह main() या अन्य कॉलिंग फ़ंक्शन ब्लॉक से हो, अर्थात “कॉल किए गए फ़ंक्शन ब्लॉक” को “कॉलिंग फ़ंक्शन ब्लॉक” से पहले होना चाहिए।
दो संभावित समाधान:
int getGCD(int a, int b) {
int शेष = 1;
while (शेष > 0) {
शेष = a % b;
a = b;
b = शेष;
}
return a;
}
int main() {
Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
उदाहरण "main()" में "कॉल किए गए फ़ंक्शन" को "कॉलिंग फ़ंक्शन ब्लॉक" के ऊपर ले जाएं।
int getGCD(int, int);
int main() {
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
int getGCD(int a, int b) {
int शेष = 1;
while (शेष > 0) {
शेष = a % b;
a = b;
b = शेष;
}
return a;
}
फ़ंक्शन के प्रोटोटाइप (जिसे हस्ताक्षर भी कहा जाता है) को “कॉलिंग फ़ंक्शन ब्लॉक” से पहले रखें।
यदि आप विभिन्न फाइलों में फ़ंक्शनों को मॉड्यूलर बनाना चाहते हैं तो क्या होगा?
चरण 1: एक हेडर फ़ाइल बनाएं, और फ़ंक्शन का प्रोटोटाइप इस फ़ाइल में डालें।
उदाहरण के लिए “myFuncs.h” नामक फ़ाइल बनाएँ
आपको अपना कोड संकलित करने से पहले इस हेडर फ़ाइल को अपने प्रोजेक्ट में “जोड़ना” होगा। इससे VEXcode Pro V5 IDE को आपके प्रोजेक्ट का निर्माण शुरू करने से पहले इस नई हेडर फ़ाइल के समावेश के बारे में पता चल जाता है।
यहां कैसे:



इस हेडर फ़ाइल में “common.h” (आप जो चाहें नाम दे सकते हैं, बशर्ते वह अक्षरांकीय हो और उसमें कोई स्थान न हो।)
चरण 2: एक अलग cpp फ़ाइल बनाएँ, उदाहरण के लिए, common.cpp

//यह common.cpp फ़ाइल है
int getGCD(int a, int b) {
int शेष = 1;
while (शेष > 0) {
शेष = a % b;
a = b;
b = शेष;
}
return a;
}
फ़ंक्शन getGCD(...) को इस फ़ाइल में ले जाएँ
#include "vex.h"
#include "common.h"
using namespace vex;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "GCD ( %d, %d ) = %d", getGCD(60, 100) );
}
अब, आपकी मुख्य cpp फ़ाइल में निम्नलिखित चीज़ें होंगी
संदर्भ:https://api.vexcode.cloud/v5/html/namespacevex.html
भविष्य में VEX लाइब्रेरी के अधिक उन्नत अनुभागों में भविष्य के विषयों को शामिल किया जाएगा:
- मान द्वारा पास बनाम संदर्भ द्वारा पास
- एक सरणी में पास करें
- एक संरचना में पास