অপারেটর (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:
Author at www.habibictcare.com
Email:habibbzm2018@gmail.com
Cell: +8801712-128532,+8801913865284