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.

যে প্রকারগুলি দশমিক স্থান সহ সংখ্যা ধারণ করে – ফ্লোট, ডবল

এই ডেটা প্রকারগুলিকে প্রায়শই ফ্লোটিং-পয়েন্ট ডেটা টাইপ বলা হয়। সংখ্যাগুলিকে ফ্লোটিং-পয়েন্ট সংখ্যা হিসাবে উল্লেখ করা হয়।

float fvar = 50.15;
ডবল dvar = 50.0;

ফ্লোটিং-পয়েন্ট ডেটা টাইপ তুলনা করুন - ফ্লোট এবং ডবল

ফ্লোট এবং ডাবল ডাটা টাইপের মধ্যে পার্থক্য হল # দশমিক স্থানের নির্ভুলতা।

VexOS – ARM 7 স্পেসিফিকেশনঅনুসারে, ফ্লোট ৬ বা ৭ দশমিক স্থান পর্যন্ত এবং ডাবল ১৫ বা ১৬ দশমিক স্থান পর্যন্ত ধারণ করতে পারে।

float: বর্তমান V5os-এ, কন্ট্রোলারটি 8 দশমিক সূক্ষ্ম স্থান পর্যন্ত অনুমতি দেয় বলে মনে হয়।

যেমন

ফ্লোট fvar1 = 1.12345670;
ফ্লোট fvar2 = 1.12345678;

fval1 হল fvar2 থেকে আলাদা,

বনাম

ফ্লোট fvar1 = 1.123456780; 
ফ্লোট fvar2 = 1.123456781;

fval1 fvar2 এর মতোই মূল্যায়ন করা হবে।

ডবল: 17 দশমিক স্থান পর্যন্ত নির্ভুলতার অনুমতি দেয়।

যেমন

ডাবল ডিভার১ = ১.১২৩৪৫৬৭৮৯১২৩৪৫৬৭৮;
ডাবল ডিভার২ = ১.১২৩৪৫৬৭৮৯১২৩৪৫৬৭০;

dval1 dvar2 থেকে আলাদা,

বনাম

ডাবল ডিভার১ = ১.১২৩৪৫৬৭৮৯১২৩৪৫৬৭৮৯;
ডাবল ডিভার২ = ১.১২৩৪৫৬৭৮৯১২৩৪৫৬৭৮০;

dval1 dvar2 এর মতোই মূল্যায়ন করা হবে।


আপনার উচ্চ নির্ভুলতা প্রয়োজন না হলে "ডবল" ব্যবহার করবেন না

আপনার উচ্চ নির্ভুলতার প্রয়োজন না হলে দুটি কারণ আপনার "ডবল" ব্যবহার করা উচিত নয়:

  1. এটি 2X ফ্লোট টাইপ নেয়।
  2. এটি অনেক বেশি প্রক্রিয়াকরণ শক্তি নেয়।

VexOS – ARM 7 স্পেসিফিকেশনঅনুসারে, একটি ফ্লোট ৬ বা ৭ দশমিক স্থান পর্যন্ত এবং একটি ডাবল ১৫ বা ১৬ দশমিক স্থান পর্যন্ত সমর্থন করে। উভয় ক্ষেত্রেই, আপনার ডবল বা ফ্লোটে শেষ সংখ্যার নির্ভুলতার উপর নির্ভর করা উচিত নয়। এটি "ফ্লোট-পয়েন্ট গণনা" (যা এই নিবন্ধের সুযোগের বাইরে) বলে কিছুর কারণে একটি "int" সংরক্ষণ করা থেকে খুব আলাদাভাবে সংরক্ষণ করা হয়।

এইভাবে, আপনি সম্ভবত শেষ কয়েক দশমিক স্থানে সঠিকতা হারাতে পারেন।

ফ্লোটিং-এর তুলনায় ডাবল অপারেশন বেশ ব্যয়বহুল, এবং ফ্লোটিং-পয়েন্ট ক্যালকুলেশন বলে কিছুর কারণে "পূর্ণসংখ্যা" থেকে অনেক বেশি।

IEEE স্ট্যান্ডার্ডের উপর ভিত্তি করে, নিম্নলিখিতগুলি আরও নির্ভরযোগ্য পরিসরের মধ্যে রয়েছে।

প্রকার ক্ষুদ্রতম ধনাত্মক মান বৃহত্তম ধনাত্মক মান নির্ভুলতার #
ভাসতে ১০ -৩৮ x ১.১৭৫৪৯ ১০ ৩৮ x ৩.৪০২৮২ ৬ অঙ্ক
দ্বিগুণ ১০ -৩০৮ অথবা ২.২২৫০৭ ১০ ৩০৮ x ১.৭৯৭৬৯ ১৫ অঙ্ক

আপনি কি আদিম তথ্য প্রকার বিনিময় করতে পারেন? - কাস্টিং

ডেটা টাইপ আদান-প্রদান করা সম্ভব। এই কৌশলটিকে "কাস্টিং" বলা হয়। যদিও ঢালাই একটি সাধারণ অভ্যাস, শুধুমাত্র প্রয়োজন হলেই তা করুন৷ 

সবচেয়ে সাধারণ অনুশীলনগুলির মধ্যে একটি হল char এবং int বিনিময় করা।

এটি কারণ তারা উভয়ই একটি ব্যতিক্রম সহ পূর্ণসংখ্যার মান উপস্থাপন করে: 

  • "int" 4-বাইট ধারণ করে (বা কিছু কম্পাইলারে 8-বাইট)
  • "char" শুধুমাত্র 1-বাইট ধারণ করে।

সুতরাং, যেমন

char aVal = 100;
int iVal = aVal; // অন্তর্নিহিত ঢালাই

বা

int iVal = (char) aVal; // সুস্পষ্ট কাস্টিং।

অন্তর্নিহিত ছেদনের জন্য সতর্কতা:

যেমন

#include "vex.h"

using namespace vex;

int main() {
  // রোবটের কনফিগারেশন শুরু করা হচ্ছে। সরাবেন না!
  vexcodeInit();

  int iVal = 128;
  char aVal = (char) iVal; // খারাপ!!!  aVal কেবল -১২৮ থেকে ১২৭ পর্যন্ত ধারণ করতে পারে।

}
আরেকটি সাধারণ অভ্যাস হল int এবং float বিনিময় করা
float fVal = 5.486;
ফ্লোট ভগ্নাংশ = fVal - (int)fVal; //এটি করে: 5.486 - 5

অন্তর্নিহিত কাটার জন্য সতর্কতা:

যেমন

int iVal = 50;
float fVal = iVal/100;

এখন fVal = 0.0, নয় 0.5।

অন্তর্নিহিত ছেঁটে ফেলার সুবিধা নেওয়া একেবারেই সূক্ষ্ম, যা প্রায়শই কিছু পরিস্থিতিতে অপারেশনের একটি গুরুত্বপূর্ণ অংশ। যাইহোক, আপনাকে নিশ্চিত করতে হবে যে আপনি ডিজাইনের মাধ্যমে এই কৌশলটি ব্যবহার করছেন।

আপনি যদি অন্তর্নিহিত ছেদন ঘটতে না চান তবে আপনাকে স্পষ্ট কাস্টিং করতে হবে:

  • অন্তর্নিহিত কাস্টিং: float fVal = iVal / 100.0;
  • স্পষ্ট কাস্টিং: float fVal = (float) iVal / 100

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

Last Updated: