পঞ্চম অধ্যায় লেকচার-১১: অপারেটরসমূহ এবং এক্সপ্রেশন বা রাশিমালা।

Operator

অপারেটর (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 অপারেশন করে  AB
<<
( Bitwise Left shift)
বিটসমূহকে এক বা একাধিক ঘর বামে সরাতে  A<<1
>>
( Bitwise right shift)
বিটসমূহকে এক বা একাধিক ঘর ডানে সরাতে A>>1

(Bitwise NOT)
বিটগুলোকে বিপরীত (inverse) করার জন্য ∼A

 

বিটওয়াইজ অপারেটরের উদাহরণ সারণী :

 A   B   A&B   AΙB   A  ∼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

Leave a Reply

Your email address will not be published. Required fields are marked *