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(data-type variable, data-type variable, etc.) {
ভেরিয়েবলের ঘোষণা, ইত্যাদি।
এক্সপ্রেশন...
সুস্পষ্টভাবে রিটার্ন করার প্রয়োজন নেই।
}
একটি ফাংশন কোনো বিশেষ মান প্রদান করে না, তবে একাধিক প্যারামিটার সহ।
void function-name(data-type variable, data-type variable, etc.) {
ভেরিয়েবলের ঘোষণা, ইত্যাদি।
এক্সপ্রেশন...
রিটার্ন রিটার্ন-ভ্যালু
}
একটি ফাংশন একটি নির্দিষ্ট ডেটাটাইপের একটি মান প্রদান করে এবং একটি প্যারামিটারের বেশি ইনপুট সহ।
কোনো ফাংশনেররিটার্নটাইপটি, ফাংশনটি দ্বারা ফেরত দেওয়া রিটার্ন-ভ্যালুর ডেটা টাইপের সমান হতে হবে। রিটার্ন ভ্যালুএকটি ধ্রুবক মান বা ভেরিয়েবল হতে পারে। এটির আগে অবশ্যই “রিটার্ন” কীওয়ার্ড লিখতে হবে।”
নিম্নলিখিত নিয়মগুলি রিটার্ন টাইপ নিয়ন্ত্রণ করে:
- অ্যারে ব্যতীত রিটার্ন টাইপের প্রায় কোনও সীমাবদ্ধতা নেই। (অ্যারে আপনার ডেটা কীভাবে তৈরি করবেন সে সম্পর্কিত আরও একটি উন্নত বিষয়। এটি এই নিবন্ধের সুযোগের বাইরে এবং এখানে কভার করা হবে না।
- রিটার্ন টাইপ "অকার্যকর" মানে কোন রিটার্ন মান প্রয়োজন নেই তা উল্লেখ করা। ধারা "রিটার্ন" অন্তর্নিহিত. এর মানে আপনাকে একটি "অকার্যকর" ফাংশনের শেষে স্পষ্টভাবে "রিটার্ন" বলতে হবে।
main() ফাংশনের আগে নাকি পরে ফাংশন তৈরি করা হবে?
কম্পাইলার আপনার ফাইলটি উপরে থেকে নীচে পড়ে। সুতরাং, আদেশটি গুরুত্বপূর্ণ।
একটি উদাহরণ হিসাবে সাধারণ গ্রেটেস্ট কমন ডিনোমিনেটর (GCD) ফাংশন নেওয়া যাক। আপনি একটি ত্রুটি পাবেন:অঘোষিত শনাক্তকারী 'getGCD'-এর ব্যবহার
প্রকৃতপক্ষে এটি মূল( ) বা অন্য কলিং ফাংশন ব্লক থেকে হোক না কেন, অর্থাৎ "কথিত ফাংশন ব্লক" অবশ্যই "কলিং ফাংশন ব্লক" এর আগে হতে হবে।
দুটি সম্ভাব্য সমাধান:
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()।"
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 remainder = 1;
while (remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
"কলিং ফাংশন ব্লক" এর আগে ফাংশনের প্রোটোটাইপ (যাকে স্বাক্ষরও বলা হয়) রাখুন।
যদি আপনি বিভিন্ন ফাইলে ফাংশনগুলোকে মডিউলারাইজ করতে চান তাহলে কী হবে?
ধাপ ১: একটি হেডার ফাইল তৈরি করুন এবং ফাংশনটির প্রোটোটাইপটি এই ফাইলে রাখুন।
যেমন "myFuncs.h" নামে একটি ফাইল তৈরি করুন
আপনার কোড কম্পাইল করার আগে আপনাকে এই হেডার ফাইলটি আপনার প্রোজেক্টে "যোগ" করতে হবে। এটি VEXcode Pro V5 IDE কে আপনার প্রকল্প তৈরি করা শুরু করার আগে এই নতুন হেডার ফাইলের অন্তর্ভুক্তি সম্পর্কে "সচেতন হতে" অনুমতি দেয়।
এখানে কিভাবে:



এই হেডার ফাইলে "common.h" (আপনি যা চান তা নাম দিতে পারেন, যতক্ষণ না এটি কোনো স্থান ছাড়াই আলফানিউমেরিক হয়।)
ধাপ ২: একটি আলাদা cpp ফাইল তৈরি করুন, যেমন, common.cpp নামে।

//এটি 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"
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 লাইব্রেরির আরও উন্নত বিভাগে কভার করা হবে:
- মান দ্বারা পাস বনাম রেফারেন্স দ্বারা পাস
- একটি অ্যারে পাস
- একটি কাঠামো পাস