Monday, March 10, 2014

যোগ করতে জানেন? :P (Lesson 3)

আজ আমি আপনাদের দেখাব কিভাবে টি number যোগ করে দেখানো যায়। এখন থেকে আমি শুধু কোড নিয়ে আলোচনা করব। কারন visual studio কিভাবে open করতে হয় এবং প্রোগ্রাম কিভাবে start করতে হয় তা আমি আগের টিউটোরিয়াল দেখিয়েছি। তাই কষ্ট করে আগের পর্ব পর্ব পড়ে নেবেন। আশা করি বুঝতে কোন সমস্যা হবে না

.          প্রথমে একটি windows form নিন। Properties থেকে ফর্ম এর Text পরিবর্তন করে ''যোগফল বের করুন" দিন। দেখুন ফর্ম এর টাইটেল নেম পরিবর্তন হয়ে গেছে
.          এবার নিচের মত ডিজাইন করুন
ডিজাইন এর জন্য Toolbox থেকে টি label, টি TextBox এবং টি Button নিন এবং properties থেকে (Name) এবং Text এর পরিবর্তন করুন এভাবে


Control name
(Name)
Text
textBox1
txtNum1
<NULL>
textBox2
txtNum2
<NULL>
textBox3
txtResult
<NULL>
label1
Default
প্রথম সংখ্যা
label2
Default
দ্বিতীয় সংখ্যা
label3
Default
যোগফল
button1
btnResult
যোগফল বের করুন
Form
Default
যোগফল বের করুন

.         এবার Button এর উপর Double Click করে নিচের কোড গুলো লিখুন
.          

private void btnResult_Click(object sender, EventArgs e)
{
double num1 = double.Parse(txtNum1.Text);
double num2 = double.Parse(txtNum2.Text);
double res = num1 + num2;
txtResult.Text = res.ToString();
}
এখানে লক্ষণীয় যে আপনাকে শুধু সেমিকোলন এর ভিতরের কোড গুলো লিখতে হবে। কারন আপনি যখন Button এর উপর Double click করবেন তখন private void….লাইন টি Auto generate হবে। এটাই হল Button টির Method Name যেকোনো কন্ট্রোল এর উপর আপনি Double Click করলে কন্ট্রোল এর Method Name Auto generate হবে। সোজা কথা আপনি Toolbox থেকে যেকোনো কন্ট্রোল নিয়ে properties থেকে এর (Name) পরিবর্তন করে যে name দেবেন তাই হল কন্ট্রোল এর মেথড নেম 
    ৫. এখন আসি code Structure সম্পর্কে। কোড টি খেয়াল করুন। কি দেয়া আছে?
              
private void btnResult_Click(object sender, EventArgs e)
এর মানে হল আপনি যে কন্ট্রোল টি নিয়েছেন তা একটি private class অর্থাআপনার কন্ট্রোল টিকে অন্য কোন কন্ট্রোল access করতে পারবে না। এটা Object Oriented Programming এর একটা বড়ো গুণ। আমি পরের টিউটোরিয়াল Object Oriented Programming  এর ব্যাপারে আলোচনা করব
.   এবার সেমিকোলনের ভিতরে double নামের একটি datatype নিয়েছি। এর মানে হল যাতে আমি দশমিক সংখ্যা যোগ করতে পারি। datatype ধরনের। int, float, double এবং string. আপনার যদি সি ল্যাঙ্গুয়েজ সম্পর্কে কিছুটা ধারণা থাকে তাহলে সহজে বুঝতে পারবেন
.    এরপর datatype declare করে আমি একটা variable num1 নিলাম। double.Parse মানে হল আমি string নামের একটা datatype কে double datatype convert করলাম। কারন আমি Textbox যা কিছু input নিব তার সবই C# string হিসেবে নেয়। কিন্তু দুইটা string কখনো যোগ করা সম্ভব নয়। যেমনঃ += কত? ২ক। কিন্তু এটা কি কোন নির্দিষ্ট value নির্দেশ করে? অবশ্যই না। তাই আমি আমার যোগের সুবিধার জন্য string কে double করে নিলাম। মনে রাখবেন, শুধুমাত্র যেকোনো সংখ্যাকে convert করা সম্ভব। char কে নয়। তাহলে  double.Parse(txtNum1.Text); এর পুরো অর্থ হল Textbox1 ইউজার যা input করবে তাকে double datatype convert কর এবং num1 variable জমা রাখ। পরের কাজ তো একই শুধু আমি আরেকটি number input করলাম
.   এবার res নামের অন্য একটি double datatype variable আমি সংখ্যা দুটি যোগ করে রাখলাম। variable কি বুঝতে পেরেছেন তো? আমি আমার operation এর সুবিধার জন্য সাময়িক ভাবে যে word datatype দিয়ে declare করছি তাই হল variable এটা আসলে একটা ধারক বা পাত্র ছাড়া আর কিছু নয়
.   এবার সর্বশেষ কোড টি হল txtResult.Text = res.ToString();
এর মানে হল txtResult নামের Textbox res নামের variable যে যোগফল জমা আছে তাকে পুনরায় string convert কর এবং Text হিসেবে দেখাও। কারন C# input নেয় string আবার output দেখায় string এ। আমরা শুধু আমাদের operation সঠিকভাবে করার জন্য বিভিন্ন datatypes convert করি
১০.        এবার F5 press করে কম্পাইল করুন এবং output দেখুন
 
;