সি শার্প ও ডট নেট প্রোগ্রামিং ৫ম পর্ব:কন্ট্রোল স্ট্রাকচার ৩

সি-শার্প এবং ডট নেট প্রোগ্রামিং টিউটোরিয়াল

অনেকদিন পর আবার লিখতে বসলাম এর ৫ম পর্ব। ব্যস্ততা ও পরীক্ষা চলার কারণেই গত কয়েক মাস টেকটিউনস এ একেবারেই অনিয়মিত ছিলাম। এবার আবার ফুরসত নিয়ে লিখতে চেষ্টা করছি। পরীক্ষা শেষ হলে পুনরায় নতুন উদ্যমে শুরু করব ইনশাল্লাহ। আমার অনুপস্থিতি মার্জনা করবেন। ধন্যবাদ

গত পর্ব থেকে শুরু করেছি কন্ট্রোল স্ট্রাকচার নিয়ে আলোচনা। এটি তার ২য় পর্ব। গত পর্বে আমরা দেখেছিঃ

  • If statement
  • If…else statement
  • while statement

এপর্বে আলোচনা করবঃ

  • for statement

আসুন, তাহলে শুরু করি আজকের বিষয়বস্ত নিয়ে সার্বিক আলোচনা।

  • for statement:

গত পর্বেই while নিয়ে আলোচনা করার সময় looping সম্পর্কে ধারণা দেয়া হয়েছে। মনে না থাকলে <লিঙ্ক> এখানে ক্লিক করে দেখে নিন গত পর্বটি।

আমরা আজকে লুপ এর কাজ করার জন্য আরেকটি কন্ট্রোল স্ট্রাকচার ব্যাবহার করব আর তাহল for.

for লেখার নিয়মঃ

for(i=0 ; i<n ; i++)

{

//Your Code Goes Here

}

এখানে i হল একটি index variable যেটা পূর্বেই declare করে নিতে হবে। এখানে n হল সেই সংখ্যা যেটি নির্দেশ করে লুপ কতবার ঘুরবে অর্থাৎ একটি কাজ কতবার সম্পন্ন হবে সেটি নির্দেশ করা হয় এই n এর মান দ্বারা।

এখানে একটি বিষয় লক্ষণীয়, আমি i এর মান ০(শূন্য) থেকে শুরু করে n এর মান থেকে এক কম পর্যন্ত নিয়েছি। আপনি ইচ্ছে করলে i এর মান ১(এক) থেকে n পর্যন্ত নিতে পারেন। সেক্ষেত্রে শুধু i=0 এর পরিবর্তে i=1 এবং i<n এর পরিবর্তে i<=n লিখতে হবে।

এবার আসি বিস্তারিত আলোচনায়,

for (initialization; condition; increase)

{

Statement

}

এখানে একটি রূপরেখা দেয়া হল। এখন মিলিয়ে দেখুন,

  1. i=0 এই অংশ কে বলা হয় initialization অথবা প্রথমে লুপ কোথা থেকে শুরু হবে সেই মান দিয়ে দেয়া হয়। i=0 এর অর্থ হল লুপ এর মান ০(শূন্য) থেকে শুরু হবে।
  2. i<n এই অংশকে বলা হয় condition অথবা শর্তাবলি। অর্থাৎ যে শর্ত সাপেক্ষে লুপ চলবে এবং যে শর্তের বাত্যয় হলে লুপ বন্ধ হয়ে যাবে সেই শর্ত এখানে উল্লেখ করতে হবে। i<n এর অর্থ হল i এর মান যতক্ষন পর্যন্ত n এর চেয়ে কম থাকবে ততক্ষন পর্যন্ত লুপ চলবে।

i এর মান n এর সমান বা বড় হলেই লুপ বন্ধ হয়ে যাবে।

3.  এরপর হল increment অংশ। এ অংশে i এর মান কিভাবে/কত করে বাড়বে সেটি উল্লেখ করা হয়। i++ এর অর্থ হল I এর মান ১ করে প্রতিবার বাড়বে। আপনি যদি ১ এর বেশিবার করে I এর মান বাড়াতে চান (উদাহরন স্বরুপ যদি I এর মান ২ করে বাড়াতে চান) তাহলে, লিখুন i=i+2

  1. Statement অংশে আপনি আপনার কাঙ্ক্ষিত কোড লিখবেন যা আপনি পুনরাবৃত্তি করতে চান।

উদাহরনঃ

গতপর্বে আপনাদের জন্য একটি কাজ নিজেদের করতে বলেছিলাম সেটি আমি for loop দিয়ে করে দিলাম।

সমস্যাটি খুব সহজ। সেটি হল ১০০ ছাত্রের বিষয়ভিত্তিক নাম্বার ইনপুট নিতে হবে এবং যোগ করতে হবে। আমাদের সুবিধার জন্য আসুন ধরে নেই বিষয়ের সংখ্যা দুইটি।

সমস্যাটি কিভাবে সমাধান করব তা ধাপে ধাপে আলোচনা করছি।

ধাপ-১

প্রথমে চিন্তা করুন আপনার কি কি কাজ করতে হবে। প্রথমে কোন ছাত্রের বিষয়ভিত্তিক নাম্বার ইনপুট নিতে হবে।

ধাপ-২

এরপর সবগুলো নাম্বার যোগ করে সেটা দেখতে হবে তা পাস মার্কের কম না বেশি। যদি কম হয়, তাহলে ছাত্রকে অকৃতকার্য ঘোষনা করতে হবে।

ধাপ-৩

এই এক কাজ আপনাকে মোট ছাত্র সংখ্যার সমপরিমান বার করতে হবে। এর অর্থ প্রত্যেক ছাত্রের জন্য করতে হবে।

কোডঃ

এখানে লক্ষ করুন দুইটা লুপ চালানো হয়েছে। সব থেকে বাইরের লুপ যেটা i দিয়ে ইন্ডেক্স করা হয়েছে সেটি প্রত্যেক ছাত্রের জন্য কাজ করছে। এর ভিতরের লুপ যেটা j দিয়ে ইন্ডেক্স করা হয়েছে সেটি বিষয়ভিত্তিক নাম্বার ইনপুট নিচ্ছে। এখানে একটি নতুন ব্যাপার লক্ষ করছেন, সেটি হল- num=int.Parse(input)

এখানে Type Casting করা হয়েছে। আমার পরবর্তি টিউনে Type Casting নিয়ে আলোচনা করা হবে।

এই প্রোগ্রামটি নিজে করে রান করে দেখুন কাজ করে কিনা। সমস্যা হলে অবশ্যই জানাবেন। ধন্যবাদ। ভাল থাকবেন।

Level 0

আমি জ্যোতি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 3 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 17 টি টিউন ও 98 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 2 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি জ্যোতি চৌধুরী। কম্পিউটার সাইন্স এন্ড ইঞ্জিনিয়ারিং এর ছাত্র। মিলিটারি ইন্সটিটিউট অফ সাইন্স এন্ড টেকনোলজি, মিরপুর ক্যান্টনমেন্ট এ পড়াশোনা করছি। ভাল লাগে বন্ধুদের সাথে আড্ডা দিতে, কম্পিউটার প্রযুক্তি সম্পর্কে জানতে। আগ্রহ আছে সফটওয়্যার ডেভেলপমেন্ট, প্রোগ্রামিং ও ওয়েব ডেভেলপমেন্টের প্রতি। স্বপ্ন দেখতে ভালবাসি। স্বপ্ন কে বাস্তবে রুপায়ন করতে পছন্দ করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

ভাইয়া দয়া করে এর source url টা দিন উপকৃত হব।

    ভাই, এই টিউন একটি ধারাবাহিক টিউন যা সম্পূর্ন আমার প্রোগ্রামিং জ্ঞ্যান ও অভিজ্ঞতা থেকে লেখা। তাই এর কোন রেফারেন্স URL নেই। তবে আপনি ইচ্ছে করলে গুগলে সার্চ দিয়ে দেখতে পারেন। কিছু এরকম টিউটোরিয়াল পাবেন। ধন্যবাদ।

ভালো হয়েছে।

অনেক কষ্ট করছেন।
কনসলে কিভাবে ইউনিকোড ক্যারেক্টার প্রিন্ট করা যায় বলতে পারেন?
যেমনঃ console.writeline("বাংলা লেখা");

    দুঃখীত রাসেদ ভাই, আমি কনসোল এ ইউনিকোড লেখা নিয়ে অনেক চেষ্টা করেছি। এখনো সফল হইনি। সেই কারনে আপনাকে সাহায্য করতে পারলাম না। আপনার জানা থাকলে আমাকে জানাবেন। ধন্যবাদ।

    আমিও চেষ্টায় আছি

টিউন বড় করলে খুব উপকার হইত। আপনাকে আমার দরকার, ডট নেট প্রগ্রামিং সম্পর্কে আরো লিখেন

    আমার ভার্সিটি পরীক্ষা চলছেতো, তাই বুঝতেই পারছেন সময় খুব কম হাতে। তাই অনেক ইচ্ছা থাকা সত্তেও টিউন টি ভাল করতে পারলাম না। আমি অত্যন্ত দুঃখীত মারুফ ভাই। তবে আশা রাখি, এরপর আরো ভাল করে লিখতে পারব। আপনার কোন জিজ্ঞাসা থাকলে আমাকে মেইল পাঠাতে পারেন।
    [email protected]

    এত ব্যাস্ততার মাঝে টিউন করার জন্য ধন্যবাদ

Level 0

onek valo hocey,8tm tiun r jon opekhay aci.
try and catch niya alocona korle amader jono valo hoy.
Thank You

Level 0

আমি ভার্সিটিতে এখন এই কোর্সটা করছি। ওইটার পাশাপাশি আপনার এই টিউন দেখেও আমার অনেক উপকার হচ্ছে। তবে, ভাইয়া আপনার এই প্রোগ্রাম মনে হয় ছোট্ট একটা ভুল আছে। সেটা হল প্রথমে যদি কোন স্টুডেন্টের পাস রেসাল্ট আসে, তাহলে পরের স্টুডেন্টের ফেইল নাম্বার দিলেও তার পাস রেসাল্ট দেখায়। কারন ১ বার লুপ চালানোর পর sum এর value যা আসে, পরবর্তীতে sum = নতুন sum + num হয়। তাই, sum < total_pass হয় না কখনই। এ কারনে শেষে sum এর value ০ করে দিয়েছি আমি :

if (sum < total_pass)
Console.WriteLine("\n\nSorry! Student#" + i + "is Failed!");
else
Console.WriteLine("\n\nCongratulation! Student#" + i + "is passed!");
sum = 0;

উল্লেখ্য, আমি প্রোগ্রামিংএ মোটেও ভাল নই। এই জন্য ঠিকভাবে হয়ত বুঝাতেও পারিনি এবং এর জন্য আমার অল্প বিদ্যার বেয়াদবিও মাফ করবেন 🙂

    @dolar: বেয়াদবী কেন বলছেন? কারোর ভুল ধরিয়ে দেয়া কি বেয়াদবী! আমি নিজের ভুল স্বীকার করছি। আসলেই আমি খেয়াল করিনি, ঐখানে একটি টেকনিকাল ভুল ছিল। দুঃখীত ভুলের জন্য আর ধন্যবাদ আপনাকে ভুল ধরিয়ে দেয়ার জন্য। আর আপনি যে বললেন আপনি প্রোগ্রামিং এ ভাল না…সেভাবে চিন্তা করলে আমিও প্রোগ্রামিং এ ভাল নই। যতটুকু জানি, তা আপনাদের জানানোর চেষ্টা করি। শুভ কামনা রইল আপনার প্রোগ্রামিং শেখার প্রতি। ভাল থাকবেন।

Level 0

আর একটা কথা, এত কষ্ট করে টিউন করছেন, আমি নিয়মিত দেখছি, অথছ আপনাকে একদিনও ধন্যবাদ দেয়া হল না!!! আসলে আমি এত আইলসা যে কমেন্টও করি না বেশিরভাগ সময়। এত সুন্দর সুন্দর টিউনের জন্য আপনাকে অনেক ধইন্না

    @dolar: ধন্যবাদ। আপনার মত কমেন্ট করার আলসেমি আমারো কিছু আছে…:)

these all are very helpfull. thanks joty vaia

Level 0

hello bro ektu problem hoiche . ja input di result fail ase ki kori ? ektu plzz reply me.

amar mail
[email protected]