C Programming Language শিখুন (পার্ট – ৯)

Friday, February 11, 2011

আজকে আমি Unary Operators সম্পর্কে একটু আলোচনা করব।
Unary Operators: C Programming Language এ যে সকল Operator একটি চলকের উপর কাজ করে নতুন মান দেয় তাদের Unary Operators বলে। সবচেয়ে ব্যবহৃত Unary Operators হচ্ছে – (minus sign). – কোন constant অথবা variable এর আগে বসে শুধু negative মান বুঝায়।
তবে প্রধান  দুটি Unary Operators হচ্ছে Increment operator(++) ও Decrement operator(- -) ।
Increment operator: Increment operator কে ++ চিহ্ন দিয়ে প্রকাশ করা হয়। অর্থাত ++ sign কে increment operator বলে। এটি একটি variable এর উপর বসে এর মান 1 বাড়িয়ে দেয়। এটি variable এর আগে ও বসতে পারে পরেও বসতে পারে। যেমনঃ মনে করি x একটি variable যার মান 5 । ++X এর মান হবে 6 । তেমনি X++ মান ও হবে 6 ।
Decrement operator: তেমনি – - Decrement operator বলে। এটি একটি variable এর উপর বসে এর মান 1 কমিয়ে দেয়। এটি variable এর আগে ও বসতে পারে পরেও বসতে পারে। যেমনঃ মনে করি x একটি variable যার মান 5 । – -X এর মান হবে 4 । তেমনি X- – মান ও হবে 4 ।
তবে Increment ও Decrement দুটির ক্ষেত্রেই Variable এর আগে বসলে ও পরে বসলে Out put ভিন্ন হবে। এটা একটু বুঝতে সবার ই সমস্যা। উদাহরনে ই বুঝিয়ে বলি।
নিচের উদাহরনটা ভালো করে লক্ষ করলেই সহজে বুঝা যাবে।
আমি প্রধান কথা গুলোই আলোচনা করি।

#include stdio.h

main()

{

int i=5;                                   OutPut

printf(“%d\n”,i++);                  5

printf(“%d\n”,i);                        6

printf(“%d\n”,++i);                  7

printf(“%d\n”,i);                        7

printf(“%d\n”,i–);                     7

printf(“%d\n”,i);                        6

printf(“%d\n”,–i);                     5

printf(“%d\n”,i);                        5

}

এ প্রোগ্রামে একটি integer variable নেওয়া হয়েছে। যার মান ধরা হয়েছে 5। প্রতেক line এর পাশে এর মান দেওয়া হল।
প্রথম LINE(printf(“%d\n”,i++);): এখন প্রথম printf কমান্ড এ I++ দ্বারা একটি increment operator বুঝানো হয়েছে। এখনে আগে I বসানো হয়েছে এবং পরে increment operator বসানো হয়েছে। তাই প্রথমে I এর মান প্রিন্ট হয়েছে। কিন্তু I মান 1 বেড়ে র‌্যামে জমা হবে।
দ্বিতীয় Line(printf(“%d\n”,i);): এখনে I এর মান প্রিন্ট করতে বলছে । আগের line এ আমাদের I মান প্রিন্ট হয়েছে 5 কিন্তু পরে increment operator এর কারনে i এর মান 1 বেড়ে 6 হয়েছে কিন্তু কোন  out put দেয় নি র‌্যামে জমা ছিল। পরে তাই তা এ লাইনে  I এর মান প্রিন্ট করেছে 6 ।
তৃতীয় line(printf(“%d\n”,++i);): এ line এ আগে increment operator কাজ করে I এর মান হয় 7 পরে I এর মান প্রিন্ট করে। তাই এই line এর out put হবে 7।
চতুর্থ line(printf(“%d\n”,i);): এখনে I এর মান প্রিন্ট করতে বলছে।আগের line এ আমাদের I মান প্রিন্ট হয়েছে 7। আর  কোন পরিবর্তন হয়নি তাই তাই এই line এর out put হবে 7।
পঞম line(printf(“%d\n”,i–);): এখনে আগে I বসানো হয়েছে এবং পরে discernment operator বসানো হয়েছে। তাই প্রথমে I এর মান প্রিন্ট হয়েছে। কিন্তু I মান 1 কমে র‌্যামে জমা রয়েছে।
ষষ্ট line(printf(“%d\n”,i);): এখনে I এর মান প্রিন্ট করতে বলছে।  এ line এর আগে decrement operator কাজ করে I এর মান  কমে হয় 6 পরে। আর  কোন পরিবর্তন হয়নি।  তাই এই line এর out put হবে 6।
সপ্তম line(printf(“%d\n”,–i);): এ line এ আগে decrement operator কাজ করে I er মান হয় 5 পরে I এর মান প্রিন্ট করে। তাই এই line এর out put হবে 5।
অষ্টম line(printf(“%d\n”,i);): এখনে I এর মান প্রিন্ট করতে বলছে। আগের line এ আমাদের I মান প্রিন্ট হয়েছে 5। আর  কোন পরিবর্তন হয়নি তাই তাই এই line এর out put হবে 5।
কেমন হল জানাবেন। সবাইকে ধন্যবাদ।

0 comments:

Post a Comment