Skip to main content

ইনক্রিমেন্ট, ডিক্রি মেন্ট অপারেটর এর নাড়ি নক্ষত্র খুজি আজকে চলো !!!


হ্যালো প্রোগ্রামার'স। আশা করি সবাই ভালো আছো এবং প্রোগ্রামিং চালিয়ে যাচ্ছো । তোমরা ইতিমধ্যেই সি প্রোগ্রামের বেসিক বেশ কিছু জিনিস শিখে গেছো।আমরা আজকে নতুন একটা অপারেটর শিখবো।

(++,--) ইনক্রিমেন্ট, ডিক্রি মেন্ট অপারেটর। নতুন সি প্রোগ্রামারদের জন্য একটা ঝড়ের নাম। চলো একটা মজার গল্পের মাধ্যমে আমরা ইনক্রিমেন্ট, ডিক্রি মেন্ট অপারেটর শিখি।আসো প্রথমেই জানি ইনক্রিমেন্ট, ডিক্রিমেন্ট অপারেটর দেখতে কেমন হয়।



মনে প্রশ্ন উদয় হয়েছে এদের কাজ কি!

(++) ইনক্রিমেন্ট অপারেটর অপারেন্ডের ভ্যালু ১ বাড়িয়ে দিবে এবং (--) ডিক্রিমেন্ট অপারেটর অপরেন্ডের ভ্যালু ১ কমিয়ে দিবে। এই হলো কাজ।

নতুন প্রশ্ন মাথায় আসলো এই অপারেন্ডটা আবার কি জিনিস। অপারেটর যাকে অপারেট করবে সে হলো অপারেন্ড। কঠিন লাগছে? আচ্ছা একটা কিচ্ছা(গল্প) বলি মন দিয়ে শুনো। ধরো তুমার কাছে ৫০০ টাকা আছে আমি তোমাকে আরো ১০০ টাকা দিলাম। তাহলে তোমার মোট টাকা হলো ৬০০।

এই যে আমি ১০০ টাকা দিলাম এটা হলো অপারেটর আর এই টাকা টা কাকে অপারেট করলো?? তুমার আগের ৫০০ টাকাকে যা কিনা এখন ৬০০ টাকা। সুতরাং তোমার ৫০০ টাকা টা হলো অপারেন্ড। সুতরাং ইনক্রিমেন্ট/ডিক্রিমেন্ট হওয়ার পূর্বের ভ্যালুটা হলো অপারেন্ড বুঝেছো???না বুঝলে ৫ সেকেন্ড একটা লম্বা শ্বাস নিয়ে আবার পড়ো। চলো একটু কাগজে কলমে উকি মারি।



এখন ক্লিয়ার??? তবে নতুন একটা সমস্যা বের হলো অপারেটর অপারেন্ডের আগে পরে সব জায়গাতেই বসছে। এমন কেন?? এটা নরমাল। প্রোগ্রামিংয়ের ভাষায় যে অপারেটর আগে বসে তাকে প্রি ইনক্রিমেন্ট /প্রি ডিক্রিমেন্ট অপারেটর এবং যেটা অপারেন্ডের পরে বসে তাকে বলে পোস্ট ইনক্রিমেন্ট /পোস্ট ডিক্রিমেন্ট অপারেটর।



ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেটর প্রি অথবা পোস্ট যাই হউক না কেন তার কাজ কিন্তু একটাই ১ বাড়ানো অথবা ১ কমানো।

এখন মনের মাঝে প্রশ্ন হলো আগে থাকলে কিভাবে বাড়বে আর পরে থাকলে কিভাবে বাড়বে?
চলো একটা গল্প বলি -
একটি বাস ময়মনসিংহ থেকে সিলেট যাবে৷ যাত্রাপথে ভৈরবের পরে একটা হোটেল বিরতি আছে এবং হোটেল বিরতির অনেক পরে মাধবপুর নামে এক জায়গায় কিছু যাত্রী রাস্তায় অপেক্ষা করছে বাসে উঠার জন্য। এখন প্রশ্ন হলো হোটেল বিরতি কারা পাবে?? এখন যারা বাসে আছে শুধু তারা নাকি যারা মাধবপুরে দাড়িয়ে আছে তারা সহ??

অবশ্যই যারা অপেক্ষা করছিলো তাড়া সহ হোটেল বিরতি পাবে। অথ্যাৎ বিরতির আগে যারা বাসে উঠবে তাড়াই পাবে। বিরতির পর উঠলো হবে না। কথাটা মনে রেখো। দেখো এখানে একটা উদাহরন আছে



এখানে প্রথম m=10 হলো গাড়িতে অবস্থানরত যাত্রী ৷
আর (++) হলো রাস্তায় অপেক্ষারত যাত্রী।
x হলো কি সংখ্যাক যাত্রী হোটেল বিরতি পেলো।
x এর মান নির্ভর করবে (++) অপারেটর m এর আগে নাকি পরে রয়েছে তার উপর। যদি m এর আগে থাকে মানে ভৈরবের আগে রয়েছে এবং যদি m এর পরে থাকে মানে মাধবপুর রয়েছে ।
শুধু এটুকু মনে রাখলেই হবে।
যেহেতু m এর আগে (++) রয়েছে সেহেতু বাসে যাত্রী উঠবে এবং সবাই হোটেল বিরতি পাওয়া যাত্রীর সংখ্যা বৃদ্ধি পাবে এবং বাসের মোট যাত্রীর সংখ্যাও বৃদ্ধি পাবে।



বিষয় টা ক্লিয়ার হলো?? চলো প্রোগ্রামিংয়ের ভাষায় পড়ি এখন ।
m এর ভ্যালু হচ্ছে 10
যখন আমরা x=++m দিয়েছি এর মানে হলো m এর ভ্যালুটা প্রথমে ইনক্রিমেন্ট হবে ।
অর্থ্যাৎ এক বেড়ে যাবে তার পর তা x এর মাঝে assign হবে ।
যেহেতু m এর ভ্যালুটা বাড়বে সেহেতু উপরের m এর মান ও পরিবর্তন হবে । আশা করি ক্লিয়ার হয়েছো।।

আর যদি (++) অপারেটর m এর পরে থাকতো তাহলে কি হতো?
m=10;
x=m++;

এখানে দেখো যাত্রী (++) পরে দাড়িয়ে আছে। মানে মাধবপুর৷ সুতরাং তারা হোটেল ব্রেক পাবে না হোটেল ব্রেক পাবে বাসে থাকা ১০ যাত্রী ৷ কিন্তু তারা মাধবপুর থেকে বাসে উঠার পর বাসের মোট অবস্থাররত যাত্রী বৃদ্ধি পাবে। তাই তো???? চলো কাগজে কলমে দেখি।



চলো এবার প্রোগ্রামিংয়ের ভাষায় ফিরে যাই। যেহেতু পোস্ট ইনক্রিমেন্ট সেহেতু প্রথমে m এর ভ্যালুটা x এর মাঝে assign হয়ে যাবে ।
এবং তারপর শুধু মাত্র m এর ভ্যালুটা বৃদ্ধি পাবে। আশা করি বুঝতে পেরেছো।

ঠিক একই ব্যাপার গুলো ঘটবে প্রি/পোস্ট ডিক্রিমেন্টে।

অপারেটর প্রথমে থাকায় m এর ভ্যালু ১ কমে গেছে এবং এরপর তা x এর মাঝে assign হয়েছে ।
যদি পোস্ট ডিক্রিমেন্ট দেখো তাহলে

এখানে অপারেটর পরে থাকায় প্রথমে m এর ভ্যালু x এর মাঝে assign হয়েছে এবং তারপর m এর ভ্যালু এক কমে গিয়ে m এর মাঝে assign হয়েছে।

আশা করি এই বেসিক বেপার টুকু ক্লিয়ার তোমার । এখন শুধু বাসায় প্র্যাকটিস করে যাও।
অনেক অনেক শুভ কামনা
হ্যাপি কোডিং

Written By -