লজিক বাংলা (LogicBangla) গাণিতিক অপারেটর (Arithmetic Operators)
গাণিতিক হিসাব-নিকাশ করার জন্য লজিকবাংলা-এ কিছু গুরুত্বপূর্ণ Arithmetic Operators আছে। এগুলো মূলত সংখ্যা (Number) টাইপের ওপর কাজ করে কিন্তু লজিকবাংলা “স্মার্ট” হওয়ায়, কিছু অপারেটর স্ট্রিং (বাক্য), তালিকা, এমনকি সময়-এর সাথেও বিশেষভাবে কাজ করতে পারে।
অপারেটর কীভাবে কাজ করবে (Number/বাক্য/তালিকা/সময়)—এটা Interpreter-এর “type-based dispatch” এর উপর নির্ভর করে।
অর্থাৎ একই + অপারেটর ভিন্ন টাইপে ভিন্ন আচরণ করতে পারে।
১) সাধারণ গাণিতিক অপারেটর
এগুলোই হলো ক্লাসিক arithmetic operators যা প্রায় সব প্রোগ্রামিং ভাষায় থাকে।
| অপারেটর | নাম | উদাহরণ | ফলাফল |
+ | যোগ | ১০ + ৫ | ১৫ |
- | বিয়োগ | ১০ - ৫ | ৫ |
* | গুণ | ১০ * ৫ | ৫০ |
/ | ভাগ | ১০ / ৫ | ২ |
% | ভাগশেষ (Modulo) | ১০ % ৩ | ১ |
উদাহরণ কোড
পূর্ণসংখ্যা ক = ১০;
পূর্ণসংখ্যা খ = ৫;
দেখাও "যোগ: " >> (ক + খ); নতুনলাইন;
দেখাও "বিয়োগ: " >> (ক - খ); নতুনলাইন;
দেখাও "গুণ: " >> (ক * খ); নতুনলাইন;
দেখাও "ভাগ: " >> (ক / খ); নতুনলাইন;
দেখাও "ভাগশেষ: " >> (ক % খ); নতুনলাইন;
২) বিশেষ ব্যবহার — “প্লাস” (+) অপারেটর
লজিকবাংলা-এ + অপারেটর শুধু সংখ্যার যোগ নয়—
এটি আরও কিছু স্মার্ট কাজ করে। এটাকেই আমরা বলি Overloaded Operator (টাইপ অনুসারে আচরণ বদলায়)।
২.১ বাক্য জোড়া লাগানো (String Concatenation)
দুটি বাক্য যুক্ত করলে বড় একটি বাক্য তৈরি হয়। আর একটি বাক্যের সাথে সংখ্যা যুক্ত করলেও—লজিকবাংলা সেটাকে অটো টেক্সট বানিয়ে নেয়।
দেখাও "হ্যালো " + "বিশ্ব"; নতুনলাইন;
দেখাও "রোল: " + ১০; নতুনলাইন;
দেখাও "স্কোর: " + (৫০ + ২০); নতুনলাইন;
This is implicit type conversion: when one side is a String, the other side is converted to String automatically.
২.২ তালিকা যুক্ত করা (List Joining)
দুটি তালিকা যোগ করলে একটি বড় তালিকা তৈরি হয় (list concatenation)।
তালিকা ক = [১, ২] + [৩, ৪];
দেখাও ক; নতুনলাইন; // [১, ২, ৩, ৪]
২.৩ সময়ের সাথে যোগ (Time + Number)
সময় টাইপের সাথে কোনো সংখ্যা যোগ করলে তা সাধারণত সেকেন্ড হিসেবে ধরা হয়।
সময় t = এখন;
// ৬০ সেকেন্ড যোগ
সময় t2 = t + ৬০;
দেখাও "এখন: " >> বর্তমান_সময়; নতুনলাইন;
// t2 প্রিন্ট/ফিল্ড সাপোর্ট থাকলে:
দেখাও "৬০ সেকেন্ড পরে: " >> t2; নতুনলাইন;
সময় অপারেশনে “১” মানে ১ সেকেন্ড ধরে নেওয়া হলে মিনিট/ঘন্টা যোগ করতে সেকেন্ডে কনভার্ট করে নিন: ১ মিনিট = ৬০, ১ ঘন্টা = ৩৬০০।
৩) ইউনারি অপারেটর (Unary Operators)
একটি সংখ্যার আগে + বা - বসিয়ে তার চিহ্ন নির্ধারণ করা যায়।
এগুলোকে বলা হয় unary operators (একটি operand নিয়ে কাজ করে)।
পূর্ণসংখ্যা ক = -১০;
পূর্ণসংখ্যা খ = +৫;
দেখাও ক; নতুনলাইন; // -১০
দেখাও খ; নতুনলাইন; // ৫
৪) ভাগ করার ক্ষেত্রে সতর্কতা (Division Safety)
গাণিতিকভাবে শূন্য দিয়ে ভাগ করা সম্ভব নয়, তাই: ০ দিয়ে ভাগ করলে Runtime Error হবে।
পূর্ণসংখ্যা ক = ১০;
পূর্ণসংখ্যা শূন্য = ০;
// ⚠️ এটি রানটাইম এরর দিতে পারে
দেখাও ক / শূন্য;
ভাগ করার আগে ডিনোমিনেটর (যাকে দিয়ে ভাগ করছেন) শূন্য কি না চেক করুন:
পূর্ণসংখ্যা ক = ১০;
পূর্ণসংখ্যা খ = ০;
যদি খ == ০ {
দেখাও "ভুল! শূন্য দিয়ে ভাগ করা যায় না।";
} নাহলে {
দেখাও "ফল: " >> (ক / খ);
}
নতুনলাইন;
+,-,*,/,%— বেসিক অপারেটর+— String ও List এও কাজ করতে পারে- Unary
-দিয়ে নেগেটিভ সংখ্যা লিখা যায় - শূন্য দিয়ে ভাগ করলে Runtime Error হতে পারে