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(data-type variable) {
Айнымалыларды жариялау және т.б.
Өрнектер...
// нақты қайтару қажет емес.
}
Егер сізге бірнеше айнымалы қажет болса, бөлгіш ретінде "," пайдаланыңыз:
Функция арнайы мәнді қайтармайды, бірақ бір параметрі бар.
void function-name(деректер типті айнымалы, деректер типті айнымалы және т.б.) {
Айнымалыларды жариялау және т.б.
Өрнектер...
// нақты қайтару қажет емес.
}
Функция арнайы мәнді қайтармайды, бірақ бірнеше параметрі бар.
void function-name(деректер типті айнымалы, деректер типті айнымалы және т.б.) {
Айнымалыларды жариялау және т.б.
Өрнектер...
қайтару мәні
}
Функция белгілі бір деректер түрінің мәнін және бір параметрден көп кірісті қайтарады.
Функцияныңқайтаратынтүрі функция қайтаратын қайтарылатын мәннің деректер түрімен бірдей болуы керек. қайтаратын мәнітұрақты мән немесе айнымалы болуы мүмкін. Оның алдында «return кілт сөзі болуы керек.”
Қайтару түрін келесі ережелер реттейді:
- Массивтен басқа қайтару түріне дерлік шектеулер жоқ. (Массив - деректеріңізді жасау жолына қатысты тағы бір жетілдірілген тақырып. Бұл мақаланың аясынан тыс және мұнда қарастырылмайды.
- Қайтару түрі «жарамсыз» екенін көрсету қайтару мәні қажет емес дегенді білдіреді. «Қайтару» тармағы жасырын болып табылады. Бұл «жарамсыз» функцияның соңында «қайтару» сөзін нақты көрсету керек дегенді білдіреді.
main() функциясынан бұрын немесе кейін функция жасау керек пе?
Компилятор файлыңызды жоғарыдан төмен қарай оқиды. Осылайша, тәртіп маңызды.
Мысал ретінде қарапайым ең үлкен ортақ бөлгіш (GCD) функциясын алайық. Сіз қате туралы хабарлама аласыз:use of undeclared identifier of 'getGCD'
Іс жүзінде бұл негізгі( ) немесе басқа шақырушы функция блогынан болсын, дұрыс, яғни «шақырылатын функция блогы» «шақыру функциясы блогының» алдында тұруы керек.
Екі ықтимал шешім:
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));
}
«Негізгі()» мысалындағы «шақырылатын функция блогының» үстіне «шақырылған функцияны» жылжытыңыз.
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 = қалдық;
}
қайтару a;
}
Функцияның прототипін (қолтаңба деп те аталады) «шақыру функциясы блогының» алдына қойыңыз.
Әртүрлі файлдардағы функцияларды модульдеуді қаласаңыз ше?
1-қадам: Тақырып файлын жасаңыз және функцияның прототипін осы файлға орналастырыңыз.
мысалы, «myFuncs.h» атты файлды жасаңыз
Кодты құрастырмас бұрын осы тақырып файлын жобаңызға «қосу» керек. Бұл VEXcode Pro V5 IDE-ге жобаңызды құруды бастамас бұрын осы жаңа тақырып файлының қосылғаны туралы «хабардар болуға» мүмкіндік береді.
Міне, қалай:



Бұл тақырып файлында «common.h» (сіз бос орынсыз әріптік-сандық болса, қалағаныңызды атай аласыз.)
2-қадам: Жеке cpp файлын жасаңыз, мысалы, common.cpp деп аталады

//бұл common.cpp файлы
int getGCD(int a, int b) {
int remaind = 1;
while (remaind > 0) {
remaind = a % b;
a = b;
b = remaind;
}
return a;
}
getGCD(...) функциясын осы файлға жылжытыңыз
#include "vex.h"
#include "common.h"
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 кітапханасының жетілдірілген бөлімдерінде қарастырылады:
- Мән бойынша өту және сілтеме бойынша өту
- Массивте өту
- Құрылымда өту