Буватимуть випадки, коли ви захочете надати певну інформацію функції. Це дозволить функції відповідним чином виконувати своє завдання на основі інформації, отриманої під час кожного виклику. Наступний приклад покаже, як це працює.
Приклад: програма малює смайлик для показу за допомогою параметрів
Наступний приклад також демонструє глобальні змінні, які використовуються належним чином.
Без використання функції, визначеної користувачем:
int MaxX = 484, MaxY = 278; int main() { vexcodeInit(); int centerX = MaxX/2, centerY = MaxY/2; //Обличчя Brain.Screen.drawCircle(centerX, centerY, 100); //Ліве око int space = 20; /*Це забезпечує відстань для очей відносно верхньої частини екрана. Ви можете змінити це як завгодно.*/ centerX = MaxX/2+пробіл; центрY = MaxY/2-30; Brain.Screen.drawCircle(centerX, centerY, 20); //Праве око /*...тут можна продовжити код для правого ока*/ //Смайлик рота /*...тут можна продовжити код для смайлика рота ... і т. д. Якщо ви хочете намалювати інший розмір, вам доведеться повторити весь набір кодів знову. */ }
З функцією, визначеною користувачем:
int MaxX = 484, MaxY = 278; const char Ліворуч=1, Праворуч=2; void drawFace(int size){ /*...код для обличчя на основі параметра розміру з функції виклику.*/ } //side == Left або Right void drawEye(char side){ /*...код для ока на основі параметра розміру з функції caller.*/ } //side == Left або Right void drawMouth(bool smile, int size){ /*...code для рота на основі параметра розміру від абонента. Це включає в себе те, чи він усміхається чи хмуриться, а також ширину.*/ } int main() { vexcodeInit(); drawFace(); drawEye (Лівий); drawEye(Right); //з цим справді можна весело провести час... while (true){ drawMouth(true, 30); очікування (1000, мс); drawMouth(false, 30); очікування (1000, мс); } }
Тут показано послідовність логічного потоку від викликаючої функції main():