VEXcode Pro V5-ൽ ഫംഗ്ഷനുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള വാക്യഘടന മനസ്സിലാക്കുന്നു.

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 function-name(ഡാറ്റ-ടൈപ്പ് വേരിയബിൾ) {

	വേരിയബിളുകളുടെ ഡിക്ലറേഷനുകൾ മുതലായവ.
	എക്സ്പ്രഷനുകൾ...
	//വ്യക്തമായ റിട്ടേൺ ആവശ്യമില്ല.
}

നിങ്ങൾക്ക് ഒന്നിലധികം വേരിയബിളുകൾ വേണമെങ്കിൽ, നിങ്ങൾ ഒരു ഡിലിമിറ്ററായി "," ഉപയോഗിച്ചാൽ മതി:

ഒരു ഫംഗ്ഷൻ പ്രത്യേക മൂല്യമൊന്നും നൽകുന്നില്ല, പക്ഷേ ഒരു പാരാമീറ്റർ മാത്രമേ നൽകുന്നുള്ളൂ.

void function-name(ഡാറ്റ-ടൈപ്പ് വേരിയബിൾ, ഡാറ്റ-ടൈപ്പ് വേരിയബിൾ, മുതലായവ) {

	വേരിയബിളുകളുടെ പ്രഖ്യാപനങ്ങൾ മുതലായവ.
	എക്സ്പ്രഷനുകൾ...
	//വ്യക്തമായ റിട്ടേൺ ആവശ്യമില്ല.
}

ഒരു ഫംഗ്ഷൻ പ്രത്യേക മൂല്യമൊന്നും നൽകുന്നില്ല, പക്ഷേ ഒന്നിലധികം പാരാമീറ്ററുകൾ ഉപയോഗിച്ച്.

void function-name(ഡാറ്റ-ടൈപ്പ് വേരിയബിൾ, ഡാറ്റ-ടൈപ്പ് വേരിയബിൾ, മുതലായവ) {

	വേരിയബിളുകളുടെ പ്രഖ്യാപനങ്ങൾ മുതലായവ.
	എക്സ്പ്രഷനുകൾ...
	റിട്ടേൺ റിട്ടേൺ-മൂല്യം
}

ഒരു ഫംഗ്ഷൻ ഒരു നിർദ്ദിഷ്ട ഡാറ്റാ ടൈപ്പിന്റെ മൂല്യം നൽകുന്നു, കൂടാതെ ഒന്നിലധികം പാരാമീറ്ററുകൾ ഇൻപുട്ട് ചെയ്യുന്നു.

ഒരു ഫംഗ്ഷന്റെറിട്ടേൺതരം, ഫംഗ്ഷൻ നൽകുന്ന റിട്ടേൺ-മൂല്യത്തിന്റെ ഡാറ്റാ തരത്തിന് തുല്യമായിരിക്കണം. റിട്ടേൺ-വാല്യൂഒരു സ്ഥിരമായ മൂല്യമോ വേരിയബിളോ ആകാം. അതിന് മുമ്പ് “return.” എന്ന കീവേഡ് ഉണ്ടായിരിക്കണം.

റിട്ടേൺ തരത്തെ നിയന്ത്രിക്കുന്ന നിയമങ്ങൾ ഇവയാണ്:

  • റിട്ടേൺ തരത്തിന് അറേ ഒഴികെ, ഏതാണ്ട് നിയന്ത്രണങ്ങളൊന്നുമില്ല. (നിങ്ങളുടെ ഡാറ്റ എങ്ങനെ സൃഷ്ടിക്കാം എന്നതിനെക്കുറിച്ചുള്ള മറ്റൊരു കൂടുതൽ വിപുലമായ വിഷയമാണ് അറേ.) അത് ഈ ലേഖനത്തിന്റെ പരിധിക്കു പുറത്താണ്, ഇവിടെ പരാമർശിക്കുന്നില്ല.
  • റിട്ടേൺ തരം “void” എന്നാൽ റിട്ടേൺ മൂല്യം ആവശ്യമില്ല എന്ന് വ്യക്തമാക്കുക. "റിട്ടേൺ" എന്ന ഉപവാക്യം അവ്യക്തമാണ്. അതായത് ഒരു "ശൂന്യ" ഫംഗ്ഷന്റെ അവസാനം നിങ്ങൾ "മടങ്ങുക" എന്ന് വ്യക്തമായി പ്രസ്താവിക്കണം.

main() ന് മുമ്പോ ശേഷമോ ഒരു ഫംഗ്ഷൻ സൃഷ്ടിക്കണോ?

കംപൈലർ നിങ്ങളുടെ ഫയൽ മുകളിൽ നിന്ന് താഴേക്ക് വായിക്കുന്നു. അതിനാൽ, ഓർഡർ പ്രാധാന്യമർഹിക്കുന്നു.

ഒരു ഉദാഹരണമായി, ലളിതമായ ഏറ്റവും വലിയ പൊതു ഡിനോമിനേറ്റർ (GCD) ഫംഗ്ഷൻ എടുക്കാം. നിങ്ങൾക്ക് ഒരു പിശക് ലഭിക്കും:അൺഡിക്ലേേർഡ് ഐഡന്റിഫയർ 'getGCD' ന്റെ ഉപയോഗം.

 നിർവചനത്തിന് മുമ്പ് getGCD വിളിക്കുന്ന പ്രധാന പ്രവർത്തനം കാണിക്കുന്ന VEXcode Pro V5 കോഡ് എഡിറ്റർ, getGCD ഒരു അൺഡിക്ലേർഡ് ഐഡന്റിഫയർ പിശകായി ഹൈലൈറ്റ് ചെയ്‌തിരിക്കുന്നു.

വാസ്തവത്തിൽ ഇത് main( ) ൽ നിന്നായാലും മറ്റ് കോളിംഗ് ഫംഗ്ഷൻ ബ്ലോക്കിൽ നിന്നായാലും ശരിയാണ്, അതായത് “called function block” “calling function block” ന് മുമ്പായിരിക്കണം.

രണ്ട് സാധ്യമായ പരിഹാരങ്ങൾ:

int getGCD(int a, int b) {
  int remainder = 1;
  while (remainder > 0) {
    remainder = a % b;
    a = b;
    b = remainder;
  }
  return a;
}


int main() {
	Brain.Screen.printAt(5,60, “GCD ( %d, %d ) = %d”, getGCD(60, 100) );
}
	

"main()" എന്ന ഉദാഹരണത്തിൽ, "calling function" ബ്ലോക്കിന് മുകളിലേക്ക് "called function" നീക്കുക.

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 remainer = 1;
  while (remainder > 0) {
    remainer = a % b;
    a = b;
    b = remainer;
  }
  return a;
}
	

"കോളിംഗ് ഫംഗ്ഷൻ ബ്ലോക്കിന്" മുമ്പായി ഫംഗ്ഷന്റെ പ്രോട്ടോടൈപ്പ് (സിഗ്നേച്ചർ എന്നും വിളിക്കുന്നു) വയ്ക്കുക.


വ്യത്യസ്ത ഫയലുകളിലെ ഫംഗ്ഷനുകൾ മോഡുലാറൈസ് ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ എന്തുചെയ്യും?

ഘട്ടം 1: ഒരു ഹെഡർ ഫയൽ സൃഷ്ടിച്ച്, ഫംഗ്ഷന്റെ പ്രോട്ടോടൈപ്പ് ഈ ഫയലിൽ ഇടുക.

ഉദാഹരണത്തിന് “myFuncs.h” എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിക്കുക.

നിങ്ങളുടെ കോഡ് കംപൈൽ ചെയ്യുന്നതിന് മുമ്പ് ഈ ഹെഡർ ഫയൽ നിങ്ങളുടെ പ്രോജക്റ്റിലേക്ക് "ചേർക്കണം". നിങ്ങളുടെ പ്രോജക്റ്റ് നിർമ്മിക്കാൻ തുടങ്ങുന്നതിനുമുമ്പ് ഈ പുതിയ ഹെഡർ ഫയൽ ഉൾപ്പെടുത്തുന്നതിനെക്കുറിച്ച് "അറിയാൻ" ഇത് VEXcode Pro V5 IDE-യെ അനുവദിക്കുന്നു.

എങ്ങനെയെന്നത് ഇതാ:

VEXcode Pro V5 ഇന്റർഫേസിൽ ഫോൾഡർ കോൺടെക്സ്റ്റ് മെനു തുറന്ന് ഒരു ഹെഡർ ഫയൽ സൃഷ്ടിക്കാൻ പുതിയ ഫയൽ ഓപ്ഷൻ തിരഞ്ഞെടുത്തു.

common.h എന്ന ഫയൽ നാമം നൽകി തിരഞ്ഞെടുത്ത C++ ഹെഡർ ഫയൽ ഓപ്ഷൻ കാണിക്കുന്ന പുതിയ ഫയൽ വിൻഡോ സൃഷ്ടിക്കുക.

ഒരു പ്രത്യേക common.cpp ഫയലിൽ നിർവചിച്ചിരിക്കുന്ന getGCD ഫംഗ്‌ഷൻ കാണിക്കുന്ന VEXcode Pro V5 കോഡ് എഡിറ്റർ.

ഈ ഹെഡർ ഫയലിൽ “common.h” (നിങ്ങൾക്ക് ഇഷ്ടമുള്ള പേര് നൽകാം, അക്കങ്ങളും അക്ഷരങ്ങളും ഉള്ളതാണെങ്കിൽ, സ്‌പെയ്‌സില്ല.)

ഘട്ടം 2: ഒരു പ്രത്യേക cpp ഫയൽ സൃഷ്ടിക്കുക, ഉദാ: common.cpp

common.cpp എന്ന ഫയൽ നാമം നൽകി തിരഞ്ഞെടുത്ത C++ സോഴ്‌സ് ഫയൽ ഓപ്ഷൻ കാണിക്കുന്ന പുതിയ ഫയൽ വിൻഡോ സൃഷ്ടിക്കുക.

//ഇതാണ് common.cpp ഫയൽ

int getGCD(int a, int b) {
  int remainder = 1;
  while (remainder > 0) {
    remainder = a % b;
    a = b;
    b = remainder;
  }
  return a;
}

getGCD(...) ഫംഗ്ഷൻ ഈ ഫയലിലേക്ക് നീക്കുക.

#include "vex.h"
#include "common.h"
നെയിംസ്പേസ് 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 ലൈബ്രറിയുടെ കൂടുതൽ വിപുലമായ വിഭാഗങ്ങളിൽ ഉൾപ്പെടുത്തും:

  • പാസ് ബൈ വാല്യു vs. പാസ് ബൈ റഫറൻസ്
  • ഒരു അറേയിൽ കടന്നുപോകുക
  • ഒരു ഘടനയിൽ കടന്നുപോകുക

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: