Jukti (যুক্তি) ডাটা টাইপ: বিস্তারিত নির্দেশিকা
Jukti (যুক্তি) একটি শিক্ষাবান্ধব বাংলা প্রোগ্রামিং ভাষা, যেখানে ডাটা টাইপ (Data Type) ব্যবহার করে বোঝানো হয় একটি ভেরিয়েবলে কী ধরনের তথ্য রাখা হচ্ছে—যেমন সংখ্যা, দশমিক সংখ্যা, লেখা, একটি অক্ষর, তালিকা বা সময়।
ডাটা টাইপ ঠিকভাবে বুঝতে পারলে প্রোগ্রাম লেখা যেমন সহজ হয়, তেমনি
ভেরিয়েবলে ভুল ধরনের তথ্য ব্যবহার করলে Jukti-এর রানটাইম টাইপ চেকিং
সমস্যাটি সহজে শনাক্ত করতে পারে। Jukti-তে ধরি ব্যবহার করে
সাধারণ ভেরিয়েবল ঘোষণা করা যায় এবং প্রয়োজন অনুযায়ী
পূর্ণসংখ্যা, দশমিক, বাক্য,
অক্ষর, তালিকা ও সময় ধরনের
নির্দিষ্ট টাইপ ব্যবহার করা যায়।
একটি ভেরিয়েবলের জন্য নির্দিষ্ট টাইপ ব্যবহার করলে প্রোগ্রামের উদ্দেশ্য
আরও পরিষ্কার হয়। যেমন পূর্ণসংখ্যা বয়স দেখলে বোঝা যায়
এখানে পূর্ণসংখ্যা রাখা হবে, আর বাক্য নাম দেখলে বোঝা যায়
এখানে লেখা রাখা হবে। Jukti প্রয়োজন অনুযায়ী এই ঘোষিত টাইপের সঙ্গে
মানের মিলও পরীক্ষা করে।
১) পূর্ণসংখ্যা (পূর্ণসংখ্যা / Integer)
পূর্ণসংখ্যা হলো দশমিক অংশ ছাড়া সংখ্যা। যেমন
০, ১০, ১০০ বা -৫০।
Jukti-তে পূর্ণসংখ্যা টাইপ ব্যবহার করে এমন ভেরিয়েবল ঘোষণা
করা যায় যেগুলোতে পূর্ণসংখ্যা রাখা হবে।
- ব্যবহার: বয়স, স্কোর, গণনা, লুপ কাউন্টার, সংখ্যা ইত্যাদি
- ডিফাল্ট মান:
০ - বাংলা সংখ্যা: Jukti বাংলা অঙ্ক গ্রহণ করতে পারে এবং সংখ্যার আউটপুটও বাংলা অঙ্কে প্রদর্শন করতে পারে।
পূর্ণসংখ্যা স্কোর = ১০০;
পূর্ণসংখ্যা ঋণ = -৫০;
দেখাও "স্কোর: " >> স্কোর;
নতুনলাইন;
দেখাও "ঋণ: " >> ঋণ;
নতুনলাইন;
কোনো নির্দিষ্ট মান না দিলে পূর্ণসংখ্যা ভেরিয়েবলের
ডিফাল্ট মান ০ হিসেবে তৈরি হয়। Jukti-এর parser এই
ডিফাল্ট মান নির্ধারণ করে।
২) দশমিক (দশমিক / Decimal)
যেসব সংখ্যার দশমিক অংশ রয়েছে সেগুলো রাখার জন্য দশমিক
টাইপ ব্যবহার করা হয়। যেমন ৩.১৪, ৯৮.৬ বা
০.৫।
- ব্যবহার: গড়, পরিমাপ, তাপমাত্রা, অনুপাত ও দশমিক হিসাব
- ডিফাল্ট মান:
০.০ - সংখ্যা: বাংলা ও ইংরেজি উভয় অঙ্ক ব্যবহার করে সংখ্যা লেখা যায়।
দশমিক পাই = ৩.১৪১৫৯;
দশমিক তাপমাত্রা = ৯৮.৬;
দেখাও "পাই: " >> পাই;
নতুনলাইন;
দেখাও "তাপমাত্রা: " >> তাপমাত্রা >> "°F";
নতুনলাইন;
Jukti-তে পূর্ণসংখ্যা ও দশমিক আলাদা টাইপ হিসেবে
ব্যবহার করা যায়। ফাংশনের প্যারামিটারে নির্দিষ্ট টাইপ দেওয়া থাকলে
interpreter সেই টাইপ অনুযায়ী argument পরীক্ষা করে।
৩) বাক্য (বাক্য / String)
যেকোনো লেখা বা টেক্সট রাখার জন্য Jukti-তে বাক্য টাইপ
ব্যবহার করা হয়। বর্তমানে Jukti lexer-এ string লেখার জন্য
double quote অর্থাৎ " " ব্যবহার করা হয়।
- ডিফাল্ট মান:
"" - Concatenation:
+ব্যবহার করে বাক্যের সঙ্গে অন্য মান যুক্ত করা যায়। - Chaining:
>>ব্যবহার করেদেখাও-এর সঙ্গে একাধিক মান ধারাবাহিকভাবে দেওয়া যায়। - Multiplication: বাক্যকে একটি সংখ্যা দিয়ে গুণ করলে বাক্যটি নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি হয়।
বাক্য নাম = "রহিম";
দেখাও "স্বাগত, " + নাম;
নতুনলাইন;
দেখাও "হা" * ৩;
নতুনলাইন;
দেখাও নাম >> " - " >> "ঢাকা";
নতুনলাইন;
" " ব্যবহৃত হয়। Single quote ' '
বর্তমান lexer-এ string delimiter হিসেবে সংজ্ঞায়িত নয়।
Jukti-তে একটি বাক্য-এর সঙ্গে অন্য runtime value
+ দিয়ে যুক্ত করা যায়। যেমন
"বয়স: " + বয়স ধরনের expression ব্যবহার করা সম্ভব।
৪) অক্ষর (অক্ষর / Character)
একটি মাত্র অক্ষর বা character রাখার জন্য অক্ষর টাইপ
ব্যবহার করা হয়। Jukti-এর runtime-এ অক্ষর আলাদা primitive
storage class হিসেবে নয়, বরং String-এর ওপর একটি টাইপ constraint হিসেবে
পরীক্ষা করা হয়।
- ডিফাল্ট মান:
"" - প্রয়োজনীয় শর্ত: মানটি অবশ্যই একটি মাত্র অক্ষরের String হতে হবে।
- ব্যবহার: গ্রেড, অপশন, প্রতীক বা এক অক্ষরের কোড।
অক্ষর গ্রেড = "ক";
দেখাও "গ্রেড: " >> গ্রেড;
নতুনলাইন;
অক্ষর টাইপে একাধিক অক্ষরের বাক্য দেওয়া যাবে না।
যেমন "ক" গ্রহণযোগ্য হলেও "বাংলা"
একটি অক্ষর হিসেবে গ্রহণযোগ্য নয়। Interpreter এই
শর্তটি পরীক্ষা করে।
৫) তালিকা (তালিকা / List / Array)
তালিকা হলো একাধিক মানকে একটি collection-এর মধ্যে রাখার ব্যবস্থা। Jukti-তে তালিকার উপাদানগুলো index ব্যবহার করে অ্যাক্সেস করা যায় এবং তালিকা declaration-এর সময় নির্দিষ্ট size-ও দেওয়া যায়।
- খালি তালিকা:
[] - Index: তালিকার প্রথম উপাদানের index
০ - ব্যবহার: নম্বর, স্কোর, ডাটা collection এবং loop processing
- আকার: array declaration-এ নির্দিষ্ট size দেওয়া যায়।
তালিকা নম্বর = [১০, ২০, ৩০];
দেখাও নম্বর[০];
নতুনলাইন;
দেখাও নম্বর[১];
নতুনলাইন;
দেখাও নম্বর[২];
নতুনলাইন;
Jukti-তে typed array declaration-ও করা যায়। যেমন
পূর্ণসংখ্যা নম্বর[৩] লিখলে নির্দিষ্ট আকারের পূর্ণসংখ্যার
তালিকা তৈরি করা যায়। Typed array-এর উপাদানগুলো তাদের টাইপ অনুযায়ী
default value দিয়ে initialize হয়।
পূর্ণসংখ্যা নম্বর[৩];
দেখাও নম্বর[০];
নতুনলাইন;
Jukti-এর array declaration-এ size অবশ্যই উপযুক্ত পূর্ণসংখ্যা হতে হবে।
বর্তমান interpreter-এ array size-এর সর্বোচ্চ সীমা ১০০,০০০।
৬) সময় (সময় / Time) — বিশেষ ডাটা টাইপ
তারিখ ও সময় নিয়ে কাজ করার জন্য Jukti-তে সময় নামে
একটি বিশেষ runtime type রয়েছে। সবচেয়ে সহজ উপায়ে এখন
ব্যবহার করে বর্তমান সময়ের একটি Time value পাওয়া যায়।
- বর্তমান সময়:
এখন - টাইপ:
সময় - সময় গণনা: সময়ের সঙ্গে সংখ্যা যোগ বা বিয়োগ করা যায়; সংখ্যাটি সেকেন্ড হিসেবে ব্যবহৃত হয়।
- সময় পার্থক্য: একটি সময় থেকে আরেকটি সময় বিয়োগ করলে সেকেন্ডের পার্থক্য পাওয়া যায়।
সময় বর্তমান = এখন;
দেখাও "তারিখ: " >> বর্তমান_তারিখ;
নতুনলাইন;
দেখাও "সময়: " >> বর্তমান_সময়;
নতুনলাইন;
Time value থেকে তারিখ, সময়, সাল,
মাস ইত্যাদি field access করা যায়। Interpreter-এ
তারিখ ও সময় String হিসেবে এবং
সাল, মাস ইত্যাদি Number হিসেবে ফেরত আসে।
উদাহরণ হিসেবে বর্তমান + ৬০ ব্যবহার করলে বর্তমান সময়ের
৬০ সেকেন্ড পরের সময় পাওয়া যায়। একইভাবে
বর্তমান - ৬০ করলে ৬০ সেকেন্ড আগের সময় পাওয়া যায়।
আবার দুটি Time value বিয়োগ করলে তাদের মধ্যে কত সেকেন্ড পার্থক্য
রয়েছে তা পাওয়া যায়।
সময় শুরু = এখন;
সময় পরে = শুরু + ৬০;
দেখাও "শুরু: " >> শুরু_সময়;
নতুনলাইন;
দেখাও "এক মিনিট পরে: " >> পরে_সময়;
নতুনলাইন;
বর্তমান_তারিখ বা
বর্তমান_সময়। বর্তমান interpreter এই ধরনের Time field access
সমর্থন করে।
৭) শর্ত, তুলনা ও Boolean Logic
Jukti-তে Boolean-এর ফলাফল আলাদা True/False
শব্দ হিসেবে সংরক্ষণ না করে Number value হিসেবে প্রকাশ করা হয়।
তুলনা বা logical operation-এর ফলাফল সাধারণত ১ অথবা
০ হয়।
Number-এর ক্ষেত্রে ০ মিথ্যা এবং ০ ছাড়া অন্য
সংখ্যা সত্য হিসেবে বিবেচিত হয়। একইভাবে String-এর ক্ষেত্রে খালি
বাক্য "" মিথ্যা এবং non-empty বাক্য সত্য হিসেবে
বিবেচিত হয়।
পূর্ণসংখ্যা x = ০;
যদি x {
দেখাও "এটা সত্য";
} নাহলে {
দেখাও "এটা মিথ্যা";
}
নতুনলাইন;
উপরের উদাহরণে x-এর মান ০ হওয়ায় শর্তটি
মিথ্যা হবে এবং নাহলে অংশটি কার্যকর হবে। Jukti-এর
Number runtime-এর is_true() আচরণ অনুযায়ী
০ মিথ্যা এবং অন্য সংখ্যা সত্য।
যেমন দুটি সংখ্যা সমান কি না পরীক্ষা করলে ফলাফল
১ অথবা ০ হিসেবে পাওয়া যায়। একইভাবে
এবং ও অথবা logical operation-ও
Number result তৈরি করে।
৮) Jukti-তে টাইপ চেকিং
Jukti-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো নির্দিষ্ট টাইপ ঘোষণা করলে
interpreter সেই টাইপ অনুযায়ী মান পরীক্ষা করতে পারে। যেমন
পূর্ণসংখ্যা ভেরিয়েবলে Number ছাড়া অন্য ধরনের value দেওয়া
হলে runtime error তৈরি হতে পারে। একইভাবে বাক্য,
অক্ষর, তালিকা ও সময়-এর ক্ষেত্রেও
টাইপ অনুযায়ী যাচাই করা হয়।
পূর্ণসংখ্যা বয়স = ১৫;
বাক্য নাম = "রহিম";
অক্ষর গ্রেড = "ক";
তালিকা নম্বর = [১০, ২০, ৩০];
সময় বর্তমান = এখন;
পূর্ণসংখ্যা → পূর্ণসংখ্যা
দশমিক → দশমিক সংখ্যা
বাক্য → লেখা বা String
অক্ষর → একটি মাত্র অক্ষর
তালিকা → একাধিক মানের collection
সময় → তারিখ ও সময়ের value
সংক্ষেপে ডাটা টাইপ টেবিল
| ডাটা টাইপ | Jukti keyword | ডিফাল্ট মান | মূল ব্যবহার |
|---|---|---|---|
| পূর্ণসংখ্যা | পূর্ণসংখ্যা |
০ |
পূর্ণসংখ্যার হিসাব |
| দশমিক | দশমিক |
০.০ |
দশমিক সংখ্যা |
| বাক্য | বাক্য |
"" |
টেক্সট বা লেখা |
| অক্ষর | অক্ষর |
"" |
একটি অক্ষর |
| তালিকা | তালিকা |
[] |
একাধিক মান সংরক্ষণ |
| সময় | সময় |
এখন |
তারিখ ও সময় |
🚀 Jukti-তে ডাটা টাইপ শেখার মূল কথা
Jukti-তে ডাটা টাইপ শুধু একটি programming concept নয়—এটি শিক্ষার্থীদের শেখায় যে বাস্তব সমস্যার বিভিন্ন ধরনের তথ্যকে কীভাবে আলাদা করে চিনতে এবং প্রোগ্রামে উপস্থাপন করতে হয়। সংখ্যা, লেখা, অক্ষর, তালিকা কিংবা সময়—প্রতিটি তথ্যের নিজস্ব ব্যবহার রয়েছে।
পূর্ণসংখ্যা বয়স = ১৫;
বাক্য নাম = "রহিম";
অক্ষর গ্রেড = "ক";
তালিকা নম্বর = [৮০, ৮৫, ৯০];
সময় এখন_সময় = এখন;
এভাবেই Jukti-এর বাংলা keyword ব্যবহার করে একজন শিক্ষার্থী প্রোগ্রামিংয়ের গুরুত্বপূর্ণ data representation ধারণাগুলো নিজের ভাষায় বুঝতে এবং প্রয়োগ করতে পারে।