অপারেটর (Operator) সি ভাষায় গাণিতিক এবং যৌক্তিক কাজ করার জন্য যে সকল চিহ্ন বা প্রতিক ব্যবহার করা হয় তাদেরকে Operator বলে। যেমন : +, -, /, <, > ইত্যাদি। অপারেটরগুলো দ্বারা যা অপারেট করা হয় বা অপারেটরগুলো যার উপর কাজ করে তাকে অপারেন্ড বলে। অপারেন্ডের উপর ভিত্তি করে অপারেটর তিন প্রকার। যথা- ইউনারি অপারেটর (Unary Operator) বাইনারি অপারেটর (Binary Operator) টারনারি অপারেটর (Ternary Operator) ইউনারি অপারেটর (Unary Operator) : যে সব অপারেটর শুধুমাত্র একটি অপারেন্ড নিয়ে কাজ করে তাদেরকে ইউনারি অপারেটর বলে। যেমন-Increment(++) & Decrement(--) Operators। বাইনারি অপারেটর (Binary Operator) : যে সব অপারেটর দুটি অপারেন্ড নিয়ে কাজ করে তাদেরকে বাইনারি অপারেটর বলে। যেমন- ১. অ্যারিথমেটিক অপারেটর(Arithmetic Operator) ২. রিলেশনাল অপারেটর(Relational Operator) ৩. লজিক্যাল অপারেটর(Logical Operator) ৪. এসাইনমেন্ট অপারেটর(Assignment Operator) ৫. বিটওয়াইজ অপারেটর(Bitwise Operator) টারনারি অপারেটর (Ternary Operator) : যে সব অপারেটর তিনটি অপারেন্ড নিয়ে কাজ করে তাদেরকে টারনারি অপারেটর বলে। যেমন-কন্ডিশনাল অপারেটর(Conditional Operator) কাজের উপর ভিত্তি করে অপারেটর আট প্রকার। যথা- ১. অ্যারিথমেটিক অপারেটর(Arithmetic Operator) ২. রিলেশনাল অপারেটর(Relational Operator) ৩. লজিক্যাল অপারেটর(Logical Operator) ৪. কন্ডিশনাল অপারেটর(Conditional Operator) ৫. ইনক্রিমেন্ট(Increment) এবং ডিক্রিমেন্ট(Decrement) অপারেটর ৬. স্পেশাল অপারেটর(Special Operator) ৭. বিটওয়াইজ অপারেটর(Bitwise Operator) ৮. এসাইনমেন্ট অপারেটর(Assignment Operator) অ্যারিথমেটিক অপারেটর : সি প্রোগ্রামে বিভিন্ন গাণিতিক কাজ সম্পন্ন করার জন্য যেসব অপারেটর বা প্রতিক ব্যবহৃত হয় তাদেরকে অ্যারিথমেটিক বা গাণিতিক অপারেটর বলে। নিচে বহুল ব্যবহৃত অপারেটর ও এর ব্যবহার উল্লেখ করা হলো- অপারেটর কাজের বর্ণনা উদাহরণ + ( বাইনারি প্লাস) যোগ করার জন্য 28+5=33 - (বাইনারি মাইনাস) বিয়োগ করার জন্য 28-5=23 * (মাল্টিপ্লিকেশন) গুন করার জন্য 28*5=140 / (ডিভিশন) ভাগফল বের করে 28/5=5 % (মডিউলাস) ভাগশেষ বের করে 28%5=3 রিলেশনাল অপারেটর : সি প্রোগ্রামে দুটি অপারেন্ডের মধ্যে সম্পর্ক বুঝানোর জন্য যে সকল অপারেটর ব্যবহৃত হয় তাদেরকে রিলেশনাল অপারেটর বলে। রিলেশনাল অপারেটর দুটি অপারেন্ডের মধ্যে তুলনা করে সত্য/মিথ্যা ফলাফল জানিয়ে দেয়। নিচে রিলেশনাল অপারেটরগুলো দেওয়া হলো- অপারেটর কাজের বর্ণনা উদাহরণ < ( Less than) ছোট বোঝায় a<b <= (Less than or equal) ছোট বা সমান a<=b > (Greater than ) বড় বোঝাতে a>b >= (Greater than or equal) বড় বা সমান a>=b == (Equal to) সমান সমান a==b != (Not equal to) সমান নয় a!=b লজিক্যাল অপারেটর : সি প্রোগ্রামে যুক্তিমূলক অপারেশন সম্পন্ন করার জন্য যে অপারেটর ব্যবহৃত হয় তাকে লজিক্যাল অপারেটর বলে। নিচে লজিক্যাল অপারেটর এর ছক দেওয়া হলো- অপারেটর কাজের বর্ণনা উদাহরণ && ( Logical AND) লজিক্যাল AND অপারেশন সম্পন্ন করে (A && B) is true ΙΙ (Logical OR) লজিক্যাল OR অপারেশন সম্পন্ন করে (A ΙΙ B) is true ! (Logical NOT) লজিক্যাল NOT অপারেশন সম্পন্ন করে !(A&&B) is false কন্ডিশনাল অপারেটর : সি প্রোগ্রামে শর্ত সাপেক্ষে কোন কাজ করার জন্য যে অপারেটর ব্যবহৃত হয় তাকে কন্ডিশনাল অপারেটর বলে। কন্ডিশনাল অপারেটর হলো- ?, : কন্ডিশনাল অপারেটর এর ফরমেট : Exp1 ? Exp2 : Exp3 প্রথমে Exp1 সম্পাদিত হবে এবং এর মান শূন্য বা মিথ্যা না হলে অর্থাৎ সত্য হলে Exp2 সম্পাদিত হবে। আর Exp1 সম্পাদিত হওয়ার পরে এর মান শূন্য বা মিথ্যা হলে Exp3 সম্পাদিত হবে। এক্ষেত্রে Exp2 বা Exp3 সম্পাদিত হয়। কিন্তু Exp2 ও Exp3 উভয় সম্পাদিত হয় না। ইনক্রিমেন্ট এবং ডিক্রিমেন্ট অপারেটর : সি প্রোগ্রামে কোন একটি ভেরিয়েবল বা চলকের মান নির্দিষ্ট হারে বৃদ্ধি করতে যে অপারেটর ব্যবহৃত হয় তাকে ইনক্রিমেন্ট অপারেটর বলে। যেমন-x=x+1, x=x+2 ইত্যাদি। ইনক্রিমেন্ট অপারেটরের প্রকারভেদ : Prefix increment (++variable) Postfix increment (variable++) Prefix increment (++variable) : Prefix increment এ চলকের মান ১ বৃদ্ধি পাবে এবং বৃদ্ধির পরে নতুন যে মান হবে তা ফেরত দিবে বা তা নিয়ে কাজ করবে। Program : #intclude< stdio.h > int main() { int i,j; i=10; j=++i; printf("j=%d\n",j); printf("i=%d\n",i); return 0; } Output: j=11 i=11 Postfix increment (variable++) : Postfix increment এ চলকের মান ১ বৃদ্ধি পাবে কিন্তু আগের মানটিই ফেরত দিবে বা তা নিয়ে কাজ করবে। Program : #intclude< stdio.h > int main() { int i,j; i=10; j=i++; printf("j=%d\n",j); printf("i=%d\n",i); return 0; } Output: j=10 i=11 ডিক্রিমেন্ট অপারেটর : কোন একটি ভেরিয়েবল বা চলকের মান নির্দিষ্ট হারে হ্রাস করতে যে অপারেটর ব্যবহৃত হয় তাকে ডিক্রিমেন্ট অপারেটর বলে। যেমন: a=a-2, a=a-4 ইত্যাদি। ইনক্রিমেন্ট এবং ডিক্রিমেন্ট উভয় অপারেটর একটি অপারেন্ডের উপর কাজ করে তাই এদেরকে ইউনারি অপারেটর বলা হয়। ডিক্রিমেন্ট অপারেটরের প্রকারভেদ : Prefix Decrement (--variable) Postfix Decrement (variable--) Prefix Decrement (--variable) : Prefix Decrement এ চলকের মান ১ হ্রাস পাবে এবং হ্রাসের পরে নতুন যে মান হবে তা ফেরত দিবে বা তা নিয়ে কাজ করবে। Program : #intclude< stdio.h > int main() { int i,j; i=10; j=--i; printf("j=%d\n",j); printf("i=%d\n",i); return 0; } Output: j=9 i=9 Postfix Decrement (variable--) : Postfix Decrement এ চলকের মান ১ হ্রাস পাবে কিন্তু আগের মানটিই ফেরত দিবে বা তা নিয়ে কাজ করবে। Program : #intclude< stdio.h > int main() { int i,j; i=10; j=i--; printf("j=%d\n",j); printf("i=%d\n",i); return 0; } Output: j=10 i=9 i++ এবং ++i এর মধ্যে পার্থক্য : variable++ অথবা i++ ++variable অথবা ++i একে Postfix বলে। একে Prefix বলে। চলকের মান ১ বৃদ্ধি পাবে কিন্তু আগের মানটিই ফেরত দিবে বা তা নিয়ে কাজ করবে। চলকের মান ১ বৃদ্ধি পাবে এবং বৃদ্ধির পরে নতুন যে মান হবে তা ফেরত দিবে বা তা নিয়ে কাজ করবে। উদাহরণ: i=7 এবং x=i++ এক্ষেত্রে, i এর মান হবে 8 কিন্তু x এর মান হবে 7 উদাহরণ: i=7 এবং x=++i এক্ষেত্রে, i এর মান হবে 8 এবং x এর মানও হবে 8 স্পেশাল অপারেটর : সি প্রোগ্রামে বিশেষ কিছু কাজের জন্য ব্যবহৃত অপারেটরকে স্পেশাল অপারেটর বলে। কয়েকটি স্পেশাল অপারেটর হলো- কমা অপারেটর ( , ) সাইজ অফ অপারেটর (sizeof) পয়েন্টার অপারেটর ( & এবং * ) মেম্বার সিলেকশন অপারেটর ( . এবং > ) বিটওয়াইজ অপারেটর : সি প্রোগ্রামে বিট/বাইট নিয়ে বিভিন্ন রকম যৌক্তিক অপারেশন সম্পন্ন করার জন্য যে অপারেটর ব্যবহৃত হয় তাকে বিটওয়াইজ অপারেটর বলে। নিচে বিটওয়াইজ অপারেটর ও তাদের ব্যবহার দেওয়া হলো- অপারেটর ব্যবহার উদাহরণ & ( Bitwise AND) বিটসমূহের মধ্যে AND অপারেশন করে A&B Ι (Bitwise OR) বিটসমূহের মধ্যে OR অপারেশন করে AΙB ∧ (Bitwise X-OR) বিটসমূহের মধ্যে X-OR অপারেশন করে A∧B << ( Bitwise Left shift) বিটসমূহকে এক বা একাধিক ঘর বামে সরাতে A<<1 >> ( Bitwise right shift) বিটসমূহকে এক বা একাধিক ঘর ডানে সরাতে A>>1 ∼ (Bitwise NOT) বিটগুলোকে বিপরীত (inverse) করার জন্য ∼A বিটওয়াইজ অপারেটরের উদাহরণ সারণী : A B A&B AΙB A∧B ∼A 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 এসাইনমেন্ট অপারেটর : সি প্রোগ্রামে একটি ভেরিয়েবল বা এক্সপ্রেশনের মান অন্য কোন ভেরিয়েবল বা এক্সপ্রেশনের মান হিসেবে নির্ধারণ করতে যে অপারেটর ব্যবহৃত হয় তাকে এসাইনমেন্ট অপারেটর বলে। নিচে এসাইনমেন্ট অপারেটর দেওয়া হলো- Simple assignment Operator Short hand assignment Operator m=m+3 m+=3 m=m-3 m-+3 m=m*3 m*=3 m=m/3 m/=3 m=m%3 m%=3 এক্সপ্রেশন বা রাশিমালা : কতগুলো চলক, অপারেটর ও কনস্ট্যান্টের অর্থবোধক ও সামঞ্জস্যপূর্ণ উপস্থাপনকে এক্সপ্রেশন বা রাশিমালা বলে। যেমন- a+b=7 একটি রাশিমালা বা এক্সপ্রেশন। এখানে, a ও b হলো চলক বা অপারেন্ড, + এবং = হলো অপারেটর, আর 7 হলো কনস্ট্যান্ট বা ধ্রুবক। কিছু গুরুত্বপূর্ণ সি এক্সপ্রেশন দেখানো হলো- গাণিতিক এক্সপ্রেশন সমতুল্য সি এক্সপ্রেশন y=a2+b2 y=a*a+b*b y=ax2+bx+c y=a*x*x+b*x+c F=√(b2-4ac)/2a F=sqrt(b*b-4*a*c)/(2*a) F=x÷y F=x/y for(x=y) for(x==y) for(x≠y) for(x!=y) for(x≤y) for(x<=y) for(x≥y) for(x>=y) y=x4+p/q y=pow(x,4)+p/q y=√3 y=sqrt(3) গাণিতিক কাজ-০১ : pow((7/2+4/2),(13%5))-4*2+7 গাণিতিক কাজ-০২ : pow((15/3-9/3),(17 MOD 5))-4+3*2+7 গাণিতিক কাজ-০৩ : 51/7-pow((20/3-4/3), (14 MOD 4))-5+2*2+29 গাণিতিক কাজ-০৪ : F=√3+x10/2m কে সি এক্সপ্রেশনে রুপান্তর কর। পঞ্চম অধ্যায় লেকচার-০৫: অ্যালগরিদম ও ফ্লোচার্ট তৈরি (প্রথম অংশ)। Written by: Habibur Rahman(Habib Sir) Author at www.habibictcare.com Email:habibbzm2018@gmail.com Cell: +8801712-128532,+8801913865284