Jukti (যুক্তি) ইউজার ইনপুট: সম্পূর্ণ গাইড
Jukti (যুক্তি)-তে ইউজারের কাছ থেকে তথ্য নেওয়ার জন্য
জিজ্ঞেস কিওয়ার্ড ব্যবহার করা হয়। এর মাধ্যমে
একটি ভেরিয়েবল, একাধিক ভেরিয়েবল অথবা তালিকার নির্দিষ্ট উপাদানে
ইনপুট নেওয়া যায়।
Jukti-এর ইনপুট ব্যবস্থা এমনভাবে তৈরি করা হয়েছে যাতে নতুন শিক্ষার্থী
সহজেই console থেকে তথ্য নিয়ে সেটিকে প্রোগ্রামে ব্যবহার করতে পারে।
জিজ্ঞেস-এর সঙ্গে >> ব্যবহার করে কোন
ভেরিয়েবলে ইনপুট যাবে তা নির্ধারণ করা হয়।
প্রথমে ভেরিয়েবল ঘোষণা করুন, প্রয়োজনে ব্যবহারকারীকে
দেখাও দিয়ে নির্দেশনা দিন, তারপর
জিজ্ঞেস >> ভেরিয়েবল ব্যবহার করে ইনপুট নিন।
Jukti-তে একটি target variable থাকলে পুরো input line নেওয়া হয়। ফলে একটি বাক্য বা space-সহ নামও একসাথে নেওয়া সম্ভব। কিন্তু একাধিক target থাকলে একই input line-এর মানগুলো whitespace অনুযায়ী আলাদা হয়ে ধারাবাহিকভাবে target-গুলোতে বসে।
১) সঠিক ইনপুট ফরম্যাট
Jukti-তে একটি ভেরিয়েবলে ইনপুট নেওয়ার সবচেয়ে সাধারণ syntax হলো:
পূর্ণসংখ্যা বয়স;
দেখাও "আপনার বয়স: ";
জিজ্ঞেস >> বয়স;
✅ নিয়ম: জিজ্ঞেস-এর পরে >> দিয়ে
যে ভেরিয়েবলে ইনপুট রাখতে চান সেটি দিতে হবে।
২) বিভিন্ন ডাটা টাইপের ইনপুট
২.১ পূর্ণসংখ্যা (Integer) ইনপুট
পূর্ণসংখ্যা ইনপুটের জন্য পূর্ণসংখ্যা ভেরিয়েবল ব্যবহার করুন।
ব্যবহারকারী একটি পূর্ণসংখ্যা দিলে Jukti সেটিকে Number হিসেবে গ্রহণ করে
এবং declared type অনুযায়ী ভেরিয়েবলে বসায়।
পূর্ণসংখ্যা বয়স;
দেখাও "আপনার বয়স: ";
জিজ্ঞেস >> বয়স;
দেখাও "আপনার বয়স " >> বয়স >> " বছর";
নতুনলাইন;
উদাহরণ হিসেবে ব্যবহারকারী যদি ২৫ অথবা
25 দেন, Jukti সেটিকে সংখ্যায় রূপান্তর করার চেষ্টা করে।
Jukti-এর Number runtime বাংলা অঙ্কে সংখ্যার representation প্রদর্শন
করতে পারে।
২.২ দশমিক (Decimal) ইনপুট
দশমিক সংখ্যা নেওয়ার জন্য দশমিক টাইপ ব্যবহার করুন।
Input parser দশমিক বিন্দু থাকলে সেটিকে floating-point Number হিসেবে
নেওয়ার চেষ্টা করে।
দশমিক তাপমাত্রা;
দেখাও "তাপমাত্রা (সেলসিয়াস): ";
জিজ্ঞেস >> তাপমাত্রা;
দেখাও "তাপমাত্রা: " >> তাপমাত্রা >> "°C";
নতুনলাইন;
দশমিক ইনপুটের ক্ষেত্রে 36.5 ধরনের মান ব্যবহার করা যায়।
Jukti lexer বাংলা অঙ্কও সংখ্যা হিসেবে গ্রহণ করতে পারে, তাই
৩৬.৫-এর মতো সংখ্যাও lexer পর্যায়ে শনাক্ত করা সম্ভব।
২.৩ বাক্য (String) ইনপুট
লেখা বা text নেওয়ার জন্য বাক্য টাইপ ব্যবহার করুন।
একটি target থাকলে Jukti পুরো input line গ্রহণ করে। তাই input-এর মধ্যে
space থাকলেও সেটি আলাদা করে split হয় না।
বাক্য নাম;
দেখাও "আপনার নাম: ";
জিজ্ঞেস >> নাম;
দেখাও "হ্যালো, " >> নাম >> "!";
নতুনলাইন;
এখন ব্যবহারকারী যদি Abdul Rahim লেখেন, যেহেতু এখানে
মাত্র একটি target আছে, পুরো Abdul Rahim input-টিই
নাম ভেরিয়েবলে রাখা হবে।
বাক্য নাম;
দেখাও "আপনার পূর্ণ নাম: ";
জিজ্ঞেস >> নাম;
দেখাও "নাম: " >> নাম;
নতুনলাইন;
Jukti-এর বর্তমান input implementation-এ একটি target থাকলে পুরো line নেওয়া হয়। তাই দুই বা ততোধিক শব্দের নাম, বাক্য বা text input নেওয়ার ক্ষেত্রে আলাদা করে split করার প্রয়োজন নেই।
২.৪ অক্ষর (Character) ইনপুট
একটি মাত্র অক্ষর বা character নেওয়ার জন্য অক্ষর ব্যবহার
করা যায়।
অক্ষর গ্রেড;
দেখাও "আপনার গ্রেড: ";
জিজ্ঞেস >> গ্রেড;
দেখাও "গ্রেড: " >> গ্রেড;
নতুনলাইন;
এখানে ব্যবহারকারী A, B, ক বা
একটি অন্য একক অক্ষর দিতে পারেন। অক্ষর টাইপের ক্ষেত্রে
একাধিক অক্ষরের String ব্যবহার করলে declared type-এর শর্ত পূরণ হবে না।
৩) একাধিক ইনপুট (Multiple Input)
Jukti-তে একটি জিজ্ঞেস statement-এর মাধ্যমে একাধিক
ভেরিয়েবলে ধারাবাহিকভাবে ইনপুট নেওয়া যায়।
৩.১ একই লাইনে একাধিক ভেরিয়েবল
পূর্ণসংখ্যা রোল, বয়স;
দেখাও "রোল এবং বয়স দিন: ";
জিজ্ঞেস >> রোল >> বয়স;
দেখাও "রোল: " >> রোল >> ", বয়স: " >> বয়স;
নতুনলাইন;
এখানে input একটি line থেকে নেওয়া হবে এবং একাধিক target থাকার কারণে whitespace অনুযায়ী আলাদা হবে।
উদাহরণ:
ইনপুট:
১৫ ২০
রোল = ১৫
বয়স = ২০
একাধিক target থাকলে input-এর মানগুলো whitespace দিয়ে আলাদা করা হয়। তাই এই পদ্ধতিতে একটি String-এর মধ্যে space রাখতে চাইলে সেটি আলাদা সমস্যা তৈরি করতে পারে।
৩.২ আলাদা আলাদা লাইনে ইনপুট
প্রতিটি ভেরিয়েবলের জন্য আলাদা জিজ্ঞেস statement ব্যবহার
করলে প্রতিবার নতুন input line নেওয়া হয়। Beginner-friendly program-এ
এই পদ্ধতিটি অনেক পরিষ্কার।
পূর্ণসংখ্যা রোল, বয়স;
দেখাও "রোল নম্বর: ";
জিজ্ঞেস >> রোল;
দেখাও "বয়স: ";
জিজ্ঞেস >> বয়স;
দেখাও "রোল: " >> রোল >> ", বয়স: " >> বয়স;
নতুনলাইন;
৩.৩ মিশ্র টাইপ ইনপুট
ভিন্ন ভিন্ন ডাটা টাইপের জন্য আলাদা ভেরিয়েবল ব্যবহার করে ইউজারের কাছ থেকে তথ্য নেওয়া যায়।
বাক্য নাম;
পূর্ণসংখ্যা বয়স;
দশমিক উচ্চতা;
দেখাও "নাম: ";
জিজ্ঞেস >> নাম;
দেখাও "বয়স: ";
জিজ্ঞেস >> বয়স;
দেখাও "উচ্চতা (ফুট): ";
জিজ্ঞেস >> উচ্চতা;
দেখাও "নাম: " >> নাম;
নতুনলাইন;
দেখাও "বয়স: " >> বয়স >> " বছর";
নতুনলাইন;
দেখাও "উচ্চতা: " >> উচ্চতা >> " ফুট";
নতুনলাইন;
Jukti প্রথমে input-কে Number হিসেবে রূপান্তর করার চেষ্টা করে।
দশমিক বিন্দু থাকলে দশমিক Number এবং পূর্ণসংখ্যা হলে Integer Number
তৈরি হয়। Number হিসেবে রূপান্তর করা সম্ভব না হলে input-টি
String হিসেবে নেওয়া হয়।
৪) তালিকায় ইনপুট
Jukti-তে তালিকার নির্দিষ্ট index-এ সরাসরি input নেওয়া যায়। এটি বিশেষভাবে useful যখন একটি নির্দিষ্ট আকারের array-এর প্রতিটি উপাদান ব্যবহারকারীর কাছ থেকে নিতে হয়।
৪.১ লুপ দিয়ে তালিকায় ইনপুট
পূর্ণসংখ্যা নম্বর[৫];
পূর্ণসংখ্যা i;
দেখাও "৫টি নম্বর দিন:";
নতুনলাইন;
পুনরাবৃত্তি (শুরু i=০; যতক্ষণ i<৫; i++) {
দেখাও "নম্বর " >> (i+১) >> ": ";
জিজ্ঞেস >> নম্বর[i];
}
দেখাও "আপনার নম্বরগুলো: ";
পুনরাবৃত্তি (শুরু i=০; যতক্ষণ i<৫; i++) {
দেখাও নম্বর[i] >> " ";
}
নতুনলাইন;
এখানে নম্বর[i] একটি array element target হিসেবে কাজ করছে।
প্রতিবার loop-এর মাধ্যমে index পরিবর্তন হয় এবং নতুন input সংশ্লিষ্ট
index-এ রাখা হয়।
৪.২ ১D তালিকা ব্যবহার করে Matrix Input
একটি দুই-মাত্রিক matrix-এর data-ও একটি এক-মাত্রিক তালিকায় রাখা যায়।
যেমন ৩×৩ matrix-এর জন্য মোট ৯টি element রাখা হবে।
প্রতিটি row ও column থেকে একটি index হিসাব
করে সেই index-এ input নেওয়া যায়।
পূর্ণসংখ্যা ম্যাট্রিক্স[৯];
পূর্ণসংখ্যা সারি = ৩, কলাম = ৩;
পূর্ণসংখ্যা i, j, ইনডেক্স;
দেখাও "৩×৩ ম্যাট্রিক্সের মান দিন:";
নতুনলাইন;
পুনরাবৃত্তি (শুরু i=০; যতক্ষণ i<সারি; i++) {
পুনরাবৃত্তি (শুরু j=০; যতক্ষণ j<কলাম; j++) {
ইনডেক্স = (i * কলাম) + j;
দেখাও "উপাদান [" >> i >> "][" >> j >> "]: ";
জিজ্ঞেস >> ম্যাট্রিক্স[ইনডেক্স];
}
}
দেখাও "আপনার ম্যাট্রিক্স:";
নতুনলাইন;
পুনরাবৃত্তি (শুরু i=০; যতক্ষণ i<সারি; i++) {
পুনরাবৃত্তি (শুরু j=০; যতক্ষণ j<কলাম; j++) {
ইনডেক্স = (i * কলাম) + j;
দেখাও ম্যাট্রিক্স[ইনডেক্স] >> " ";
}
নতুনলাইন;
}
৫) বাস্তব জীবনের উদাহরণ
৫.১ সাধারণ যোগ ক্যালকুলেটর
পূর্ণসংখ্যা ক, খ, ফলাফল;
দেখাও "প্রথম সংখ্যা: ";
জিজ্ঞেস >> ক;
দেখাও "দ্বিতীয় সংখ্যা: ";
জিজ্ঞেস >> খ;
ফলাফল = ক + খ;
দেখাও ক >> " + " >> খ >> " = " >> ফলাফল;
নতুনলাইন;
৫.২ তাপমাত্রা রূপান্তর
দশমিক সেলসিয়াস, ফারেনহাইট;
দেখাও "তাপমাত্রা (সেলসিয়াস): ";
জিজ্ঞেস >> সেলসিয়াস;
ফারেনহাইট = (সেলসিয়াস * ৯.০ / ৫.০) + ৩২.০;
দেখাও সেলসিয়াস >> "°C = " >> ফারেনহাইট >> "°F";
নতুনলাইন;
৬) সাধারণ ভুল এবং সমাধান
৬.১ ভুল: ভেরিয়েবল ঘোষণা না করেই ইনপুট নেওয়া
// ❌ ভুল
দেখাও "নাম: ";
জিজ্ঞেস >> নাম;
// ✓ সঠিক
বাক্য নাম;
দেখাও "নাম: ";
জিজ্ঞেস >> নাম;
৬.২ ভুল: declared type-এর সঙ্গে input-এর মিল না থাকা
// পূর্ণসংখ্যার জন্য পূর্ণসংখ্যা input দিন
পূর্ণসংখ্যা বয়স;
দেখাও "বয়স: ";
জিজ্ঞেস >> বয়স;
Jukti input-কে প্রথমে Number অথবা String হিসেবে তৈরি করে। এরপর target variable-এর declared type অনুযায়ী value assignment করা হয়। তাই declared type-এর সঙ্গে input-এর ধরন সামঞ্জস্যপূর্ণ হওয়া প্রয়োজন।
৬.৩ ভুল: একাধিক target-এ space-সহ একটি বাক্য পাঠানো
// ⚠️ একাধিক target
বাক্য নাম, ঠিকানা;
জিজ্ঞেস >> নাম >> ঠিকানা;
এখানে input whitespace অনুযায়ী ভাগ হবে। তাই যদি একটি String-এর মধ্যে space-সহ পুরো বাক্য নিতে চান, সেটিকে একক target হিসেবে নেওয়াই উপযুক্ত।
// ✓ space-সহ পুরো input line নেওয়া হবে
বাক্য পূর্ণ_নাম;
দেখাও "পূর্ণ নাম: ";
জিজ্ঞেস >> পূর্ণ_নাম;
৭) বেস্ট প্র্যাকটিস
-
আগে ভেরিয়েবল ঘোষণা করুন:
জিজ্ঞেসব্যবহারের আগে target variable তৈরি করুন। -
ব্যবহারকারীকে নির্দেশনা দিন:
দেখাওদিয়ে কী input দিতে হবে তা পরিষ্কার করুন। - একটি String-এ space দরকার হলে: একটি target ব্যবহার করুন।
-
একাধিক value দরকার হলে:
জিজ্ঞেস >> ক >> খধরনের multiple target ব্যবহার করুন। -
তালিকার input:
loop-এর মাধ্যমে
তালিকা[i]-তে input নেওয়া সুবিধাজনক। -
Type নির্বাচন:
input-এর প্রকৃতি অনুযায়ী
পূর্ণসংখ্যা,দশমিক,বাক্যবাঅক্ষরব্যবহার করুন।
৮) সারসংক্ষেপ
| যা শিখলেন | Jukti Syntax | কীভাবে কাজ করে |
|---|---|---|
| একক ইনপুট | জিজ্ঞেস >> ভেরিয়েবল; |
পুরো input line নেওয়া হয় |
| একাধিক ইনপুট | জিজ্ঞেস >> ক >> খ; |
whitespace অনুযায়ী input ভাগ হয় |
| তালিকায় ইনপুট | জিজ্ঞেস >> তালিকা[i]; |
নির্দিষ্ট index-এ value বসে |
| পূর্ণসংখ্যা | পূর্ণসংখ্যা বয়স; |
Number হিসেবে input নেওয়া হয় |
| দশমিক | দশমিক উচ্চতা; |
দশমিক Number হিসেবে input নেওয়া হয় |
| বাক্য | বাক্য নাম; |
String হিসেবে input নেওয়া হয় |
🎯 Jukti Input-এর সহজ সূত্র
ভেরিয়েবল ঘোষণা
↓
ব্যবহারকারীকে নির্দেশনা
↓
জিজ্ঞেস >> ভেরিয়েবল
↓
Input গ্রহণ
↓
Number অথবা String তৈরি
↓
Declared Type অনুযায়ী Assignment
↓
প্রোগ্রামে ব্যবহার
এই সহজ workflow-এর মাধ্যমে Jukti-তে শিক্ষার্থীরা console input, variable, data type, array এবং program logic—সবগুলো ধারণা ধাপে ধাপে একসাথে অনুশীলন করতে পারে।
- আগে target variable ঘোষণা করুন।
-
দেখাও দিয়ে ব্যবহারকারীকে নির্দেশনা দিন।-
জিজ্ঞেস >> ভেরিয়েবল; দিয়ে input নিন।- একাধিক target হলে input space/whitespace অনুযায়ী ভাগ হবে।
- একটি target হলে পুরো input line নেওয়া যাবে।
- Array input-এর জন্য
তালিকা[i] ব্যবহার করা যায়।