নিয়ন্ত্রণ#

ভূমিকা#

কন্ট্রোলের মধ্যে টাইমিং, প্রোগ্রাম ফ্লো, কন্ডিশনাল লজিক এবং প্রজেক্ট টার্মিনেশনের ফাংশন অন্তর্ভুক্ত রয়েছে। এই কন্ট্রোলগুলো আপনাকে প্রোগ্রাম চালানো থামাতে, লুপ তৈরি করতে, লজিক পাথ নির্ধারণ করতে এবং একটি প্রোগ্রাম শেষ করতে দেয়।

ফাংশন এবং কীওয়ার্ড#

নিচে উপলব্ধ কন্ট্রোলগুলোর একটি তালিকা দেওয়া হলো, যার মধ্যে এপিআই ফাংশন এবং সি++ কীওয়ার্ড অন্তর্ভুক্ত রয়েছে:

  • wait – একটি নির্দিষ্ট সময়ের জন্য প্রকল্পটি থামিয়ে দেয়।

  • for – একটি কোড ব্লক নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি করে।

  • if – কোনো শর্ত সত্য হলে একটি কোড ব্লক রান করে।

  • if/else – শর্ত সত্য হলে একটি কোড ব্লক, অথবা মিথ্যা হলে ভিন্ন একটি কোড ব্লক রান করে।

  • if/else if/else – ক্রমানুসারে একাধিক শর্ত পরীক্ষা করে এবং যে ব্লকটির শর্ত প্রথমে সত্য হয়, সেটি চালায়।

  • while – যতক্ষণ কোনো শর্ত সত্য থাকে, ততক্ষণ কোডের একটি অংশ পুনরাবৃত্তি করে।

  • break – বর্তমান লুপ থেকে অবিলম্বে প্রস্থান করে।

  • programStop – প্রজেক্টটি অবিলম্বে বন্ধ করে দেয়।

wait#

কোডের পরবর্তী লাইনে যাওয়ার আগে প্রজেক্টটিকে একটি নির্দিষ্ট সময়ের জন্য থামিয়ে দেয়।

Available Functions
void wait(
  double time,
  timeUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

time

double

অপেক্ষা করার সময়, যা ধনাত্মক double দ্বারা প্রকাশ করা হয়।

units

timeUnits

সময় প্রকাশের একক: msec (ডিফল্ট) – মিলিসেকেন্ড বা seconds

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Examples
// Stop driving after 1 second
Drivetrain.drive(forward);
wait(1, seconds);
Drivetrain.stop();

for#

কোডের একটি ব্লক পুনরাবৃত্তি করে। গণনার পদ্ধতিটি একটি নির্দিষ্ট সংখ্যক বার চলে; পরিসর-ভিত্তিক পদ্ধতিটি একটি সংগ্রহের প্রতিটি আইটেমের জন্য একবার চলে।

Syntax

1 — গণনা লুপ — একটি নির্দিষ্ট সংখ্যক বার চলে।

for (int i = 0; i < count; i++) {
   // code block
}

2 — রেঞ্জ-ভিত্তিক লুপ — একটি সংগ্রহের প্রতিটি আইটেমের জন্য একবার চলে।

for (type element : collection) {
   // code block
}

Parameters

প্যারামিটার

প্রকার

বর্ণনা

count

int

কোড ব্লকটি যতবার পুনরাবৃত্তি করা হবে।

type

টাইপ নাম

সংগ্রহের প্রতিটি আইটেমের ডেটা টাইপ (যেমন int, double)।

element

variable

লুপের বর্তমান আইটেমের মান ধারণ করার জন্য ব্যবহৃত ভেরিয়েবলের নাম।

collection

array

অ্যারে (বা ভেক্টর) যা লুপের মাধ্যমে চালানো হবে এমন আইটেমগুলো ধারণ করে।

Return Values

এই নিয়ন্ত্রণ কাঠামোটি কোনো মান ফেরত দেয় না।

Examples
// Drive in a square
for (int i = 0; i < 4; i++) {
  Drivetrain.driveFor(forward, 100, mm);
  Drivetrain.turnFor(right, 90, degrees);
}

// Drive forward different distances
int distances[] = {100, 150, 200};
for (int d : distances) {
  Drivetrain.driveFor(forward, d, mm);
  wait(0.5, seconds);
}

if#

শর্তটি true হলে আবদ্ধ কোড ব্লকটি রান করে।

Syntax
if (condition) {
  // code block
}

Parameters

প্যারামিটার

প্রকার

বর্ণনা

condition

bool

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় মূল্যায়ন করা হয়। যদি এটি trueহয়, তাহলে if ব্লকের ভিতরের কোডটি চলে; যদি এটি falseহয়, তাহলে ব্লকটি এড়িয়ে যাওয়া হয়।

Return Values

এই নিয়ন্ত্রণ কাঠামোটি কোনো মান ফেরত দেয় না।

Examples
while (true) {
  if (Brain.Screen.pressing()) {
    // Display a message once the screen is pressed
    Brain.Screen.clearScreen();
    Brain.Screen.setCursor(1, 1);
    Brain.Screen.print("Screen pressed!");
    break;
  }
  wait(5, msec);
}

if/else#

শর্তটি (যেমন true অথবা (যেমন false এর উপর ভিত্তি করে নির্ধারণ করে যে আবদ্ধ কোডের কোন ব্লকটি চলবে।

Syntax
if (condition) {
  // code block if true
}
else {
  // code block if false
}

Parameters

প্যারামিটার

প্রকার

বর্ণনা

condition

bool

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় ইভ্যালুয়েট করা হয়। যদি এটি trueহয়, তাহলে if ব্লকের ভেতরের কোডটি চলে; যদি এটি falseহয়, তাহলে এর পরিবর্তে else ব্লকের ভেতরের কোডটি চলে।

Return Values

এই নিয়ন্ত্রণ কাঠামোটি কোনো মান ফেরত দেয় না।

Examples
while (true) {
  if (Brain.Screen.pressing()) {
    // Turn the screen green when pressed
    Brain.Screen.clearScreen(green);
  } else {
    Brain.Screen.clearScreen();
  }
}

if/else if/else#

একাধিক শর্তের উপর ভিত্তি করে কোন আবদ্ধ কোড ব্লকটি চলবে তা নির্বাচন করে।

Syntax
if (condition) {
  // code block if first condition is true
}
else if (condition) {
  // code block if second condition is true
}
else {
  // code block if no conditions are true
}

Parameters

প্যারামিটার

প্রকার

বর্ণনা

condition

bool

একটি এক্সপ্রেশন বা ভেরিয়েবল যা স্টেটমেন্টটি চলার সময় মূল্যায়ন করা হয়। প্রথম যে শর্তটি true সত্য হয়, সেটিই নির্ধারণ করে কোন ব্লকটি চলবে; যদি কোনোটিই trueসত্য না হয়, তাহলে ( else ব্লকটি চলে।

Return Values

এই নিয়ন্ত্রণ কাঠামোটি কোনো মান ফেরত দেয় না।

Notes
  • if তার ব্লকটি চালায় যদি শর্ত true।

  • else if শুধুমাত্র তখনই অতিরিক্ত শর্তগুলো যাচাই করে যখন পূর্ববর্তী সমস্ত শর্ত falseহয়। একাধিক else if স্টেটমেন্ট ব্যবহার করা যেতে পারে।

  • else তার ব্লকটি তখনই চালায় যদি পূর্ববর্তী কোনো শর্তই সত্য না হয় true।

Examples
while (true) {
  // Turn screen blue if pressed on the left half
  if (Brain.Screen.pressing() && Brain.Screen.xPosition() < 240) {
    Brain.Screen.clearScreen(blue);

  // Turn screen green if pressed on the right half
  } else if (Brain.Screen.pressing() && Brain.Screen.xPosition() > 240) {
    Brain.Screen.clearScreen(green);

  } else {
    Brain.Screen.clearScreen();
  }

  wait(20, msec);
}

while#

যতক্ষণ শর্তটি true থাকে, ততক্ষণ কোডটি বারবার চলে।

Syntax
while (condition) {
  // code block
}

Parameters

প্যারামিটার

প্রকার

বর্ণনা

condition

bool

একটি এক্সপ্রেশন বা ভেরিয়েবল যা প্রতিটি পুনরাবৃত্তির আগে মূল্যায়ন করা হয়। যদি এটি trueহয়, লুপটি চলতে থাকে; যদি এটি falseহয়, লুপটি থেমে যায়।

Return Values

এই নিয়ন্ত্রণ কাঠামোটি কোনো মান ফেরত দেয় না।

Notes
  • নিচের উদাহরণগুলোতে দেখানো অনুযায়ী, শর্তের আগে ! যোগ করে এটিকে ‘Wait until’-এর মতোও ব্যবহার করা যায়।

Examples
while (true) {
  if (Brain.Screen.pressing()) {
    // Turn the screen green whenever it's pressed
    Brain.Screen.clearScreen(green);
  } else {
    Brain.Screen.clearScreen();
  }
}

// Wait until the screen is pressed to turn it green
while (!Brain.Screen.pressing()) {
  wait(20, msec);
}

Brain.Screen.clearScreen(green);

break#

বর্তমান লুপ থেকে অবিলম্বে বেরিয়ে যায়। যদি কোনো নেস্টেড লুপের মধ্যে থাকে, তাহলে break সবচেয়ে ভেতরের লুপ থেকে বেরিয়ে যায়।

Syntax
break;

Parameters

এই স্টেটমেন্টটি কোনো প্যারামিটার গ্রহণ করে না।

Return Values

এই স্টেটমেন্টটি কোনো মান রিটার্ন করে না।

Examples
while (true) {

  // Press the screen to pause on a color
  Brain.Screen.clearScreen(red);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    break;
  }

  Brain.Screen.clearScreen(green);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    break;
  }
}

programStop#

প্রকল্পটি অবিলম্বে শেষ করে।

Syntax
Brain.programStop();

Parameters

এই স্টেটমেন্টটি কোনো প্যারামিটার গ্রহণ করে না।

Return Values

এই স্টেটমেন্টটি কোনো মান রিটার্ন করে না।

Examples
while (true) {

  // Press the screen to end the project
  Brain.Screen.clearScreen(red);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }

  Brain.Screen.clearScreen(green);
  wait(500, msec);

  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }
}