৩) ইনপুট
ইনপুট কেন নিব?
অনেক সময় দেখা যায় যে আমরা যখন আমাদের প্রোগ্রাম লিখি তখন সেই প্রোগ্রাম-সংশ্লিষ্ট অনেক প্রয়োজনীয় Data আমাদের কাছে ঠিক সেই মুহুর্তে থাকে না বরং কোড টা যখন আমরা রান করবো তখন হয়তো সে Data গুলা ইউজারদের থেকে নেওয়া লাগতে পারে।
আবার, এমনও হতে পারে যে, Data গুলার মান একেক ইউজারের ক্ষেত্রে একেক রকম হবে(যেমন: BMI বের করার প্রোগ্রামে উচ্চতা ও ভর একেকজনের ক্ষেত্রে একেক রকম হবে)। তাহলে সেসব Data এর মান না জেনেই কীভাবে পুরা কোড টা লিখে কমপ্লিট করবো?
তো আমরা যদি আমাদের কোড লেখার সময় সেসব Data সরাসরি না লিখে তার বদলে ভ্যারিয়েবল ইউজ করি, এবং প্রোগ্রাম চলাকালীন সময়ে সেসব ভ্যারিয়েবল এর মান ইউজারের কাছে থেকে কীবোর্ড এর মাধ্যমে ইনপুট হিসেবে নিই তাহলে এই সমস্যা থেকে সহজেই বের হয়ে আসতে পারি।
ইনপুট নেওয়ার পদ্ধতি
তাহলে এই ইনপুট নিব কীভাবে?
এখানে বলে রাখা ভাল, আমাদের কাজ সহজ করার জন্য ম্যাথেমেটিকার ডেভেলপাররা আগে থেকেই কিছু কমান্ড এর কোড ম্যাথেমেটিকায় লিখে রেখেছে যেগুলা ব্যবহারের মাধ্যমে আমরা আমাদের পরিশ্রম কমাতে পারবো এবং আমাদের কোডকে সহজবোধ্য ও সংক্ষিপ্ত করতে পারবো। এগুলাকে বলে বিল্ট-ইন ফাংশন বা লাইব্রেরি ফাংশন (পরবর্তীতে এগুলা সম্পর্কে আমরা আরও জানবো)।
এমনই একটা লাইব্রেরি ফাংশন হলো Input[]
আমরা আগে দেখি input[] কে ম্যাথমেটিকা নোট-বুকে ইউজ করলে কী হয়।


তো আমরা দেখতে পাচ্ছি, ইনপুট কমান্ড রান করলে এরকম একটা pop-up window আসতেছে। এখানে একটা ফাঁকা জায়গা আছে এবং দুইটি বাটন ok এবং cancel আছে। আমরা এই ফাঁকা জায়গাতে একটা সংখ্যা লিখে OK তে ক্লিক করে দেখি তো কী হয়।


আমরা দেখতে পাচ্ছি, আউটপুট এ ঠিক এই সংখ্যাটাই দেখাচ্ছে।
তাহলে আমরা বুঝতে পারতেছি যে, Input[] ফাংশন রান করার মাধ্যমে আমরা ইউজারদের থেকে একটা ইনপুট চাচ্ছি, এবং ইউজার কীবোর্ড থেকে সেই ইনপুট টা পাঠাচ্ছে।
এখন আমরা যদি এই ইনপুট টা একটা ভ্যারিয়েবলে সংরক্ষণ করতে চাই তাহলে কী করতে হবে? খুব সিম্পল, আমরা ভ্যারিয়েবলে একটা মান যেভাবে Assign করি সেভাবেই Input[] থেকে নেওয়া মানটা Assign করতে পারবো। অর্থাৎ, সমান চিহ্নের বাম পাশে থাকবে যে ভ্যারিয়েবলের মধ্যে মান টি রাখতে চাচ্ছি সেটির নাম, এবং ডান পাশে থাকবে Input[]


এখন দেখা যাক আদৌ number এর মধ্যে আমাদের টাইপ করা সংখ্যাটা আছে কিনা

হ্যাঁ আছে!
তাহলে আমরা দেখলাম কীভাবে কীবোর্ড থেকে ইনপুট নেওয়া যায় এবং তা একটা ভ্যারিয়েবল এ রাখা যায়।
আমরা যদি লক্ষ করি তাহলে দেখতে পারবো, ইনপুট এর I টা বড় হাতের।
যদি ছোট হাতের দিতাম তাহলে?

এবার আর কোনো window আসলো না ইনপুট নেওয়ার জন্য। বরং আউটপুট cell এ শুধু input[]দেখাচ্ছে। তারমানে ছোট হাতের input লেখা তে আমাদের ভুল হচ্ছে। কেন ভুল হচ্ছে? well, এই ভুলটার সাথে ম্যাথম্যাটিকার একটা বিশেষ দিক জড়িত আছে। সেটা হলো case sensitivity ।
Case Sensivity
ম্যাথমেটিকার সিনট্যাক্স গুলা Case Sensitive।
Case Sensitivity জিনিসটা কী? সেটা জানার আগে আমাদের বুঝতে হবে Case বলতে এখানে কী বুঝানো হয়েছে? এখানে Case বলতে বুঝানো হয়ে Upper Case letter বা Lower Case letter। তো Case Sensitive মানে এই দুই ধরনের কেইসের মধ্যে যে পার্থক্য রয়েছে সেটার প্রতি সেন্সিটিভ থাকা, অর্থাৎ দুই ধরনের case কে আলাদা হিসেবে দেখা।
এর মানে, ম্যাথমেটিকা Input[] এবং input[] দুইটাকে আলাদা হিসেবে ট্রিট করে। বিল্ট-ইন ফাংশনে, ইনপুট ফাংশনের প্রথম অক্ষর বড় হাতের I দেওয়া হয়েছে, তাই আমরা Input[] এর বদলে input[] বাINPUT[] বা inPut[] বা InPuT[] এগুলা লিখলে হবে না।
এখানে বলে রাখা ভাল, ম্যাথম্যাটিকাতে সকল বিল্ট ইন ফাংশন এর প্রথম অক্ষর বড় হাতের দেওয়া। আর আমরাও যদি নিজেদের কোনো ফাংশন তৈরি করি তাহলে সেটার নামের প্রথম বর্ণ বড় হাতেরই দিব, কারণ এটি ম্যাথমেটিকায় কোড লেখার convention এবং একটি good practice ও বটে।
Input[] এর প্যারামিটার
Input[] এর দিকে যদি আমরা আরেকটু খেয়াল করি তাহলে দেখতে পাবো ফাংশনটার নামের পরেও এর সাথে দুইটা square brackets আছে। এগুলার কাজ কী? এই ব্রাকেট এর মধ্যে আসলে argument পাস করে। সেই আর্গুমেন্ট গুলোকে প্যারামিটার হিসেবে নিয়ে ফাংশন কিছু কাজ করে। এগুলা শুনতে এখন কঠিন লাগতে পারে, কিন্তু যখন আমরা ফাংশন নিয়ে দেখবো তখন আশা করি ব্যাপার গুলা সহজ হবে।আপাতত আমরা শুধু Input এর square brackets এর মধ্যে কী দিতে হয়, এবং তা দিলে কী হয় সেগুলা দেখি।
Input[] যদি রান করি তাহলে যে পপ-আপ টা আসে, সেটার ইনপুট বক্সের উপরে Enter an expression: লেখা থাকে।

আমরা যদি ইউজারকে ইনপুট সমন্ধে কোনো তথ্য যেমন, কী কী ইনপুট দেওয়া যাবে বা ইনপুট এর ধরণ কীরকম হবে ইত্যাদি বলে দিতে চাই তাহলে ইনপুট বক্সের উপরে সেসব লিখে দিতে পারবো।
যেমন: আমরা Input["please input a number”] লিখে রান করলে ইনপুট বক্সের উপরে এই কথাটাই দেখা যাবে।

এর মানে হলো, Input এর ব্রাকেট এর মধ্যে কোটেশন মার্কের ভেতরে যা যা লেখা থাকবে input window তে সে কথা গুলাই দেখাবে।
Last updated