Operator কি ?
এটি সবাই জানি। কোন কিছু যে চালনা করে তাকেই Operator বলে।
C প্রোগ্রামিং ল্যাঙ্গুয়েজ এ কয়েক ধরনের Operator রয়েছে তারা হলঃ
- Arithmetic Operators
- Unary Operators
- Relational and Logical Operators
- Assignment Operators
- Conditional Operators
Arithmetic Operators
পাটি গনিতে আমরা যে সকল Operators ব্যাবহার করছি তাই হল Arithmetic Operators।
Operator | ব্যাবহার |
+ | যোগ |
- | বিয়োগ |
* | গুণ |
/ | ভাগ |
% | ভাগশেষ |
উপরের সকল Operator সম্পর্কে ই আমরা জানি শুধু % (একে Reminder অথবা Mode বলে) Operator ছাড়া। % এর কাজ একটি উদাহরন দিয়ে ব্যাখ্যা করি।
১৫%৪ এটার উত্তর হবে ৩ কারন ১৫ কে ৪ দ্বারা ভাগ করলে ভাগশেষ থাকে ৩। এর মান সব সময় পূর্ন সংখা হবে।অর্থাৎ ১৫.৫%৪ এর ভাগ শেষ হচ্ছে ৩.৫ কিন্তু এর মান হবে ৩।
১৫%-৪ এর মান হবে ৩। -১৫%৪এর মান হবে -৩। -১৫%-৪এর মান হবে-৩।ইত্যাদি।
Mode এর অনেক কাজ রয়েছে। Programming Loop Control করতে Mode বা Reminder (%) ব্যবহৃত হয়।
..................................................................................................................................................................
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
Int 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 পরে। i আর কোন পরিবর্তন হয়নি। তাই এই 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।
...................................................................................................................................................................
RELATIONAL AND LOGICAL OPERATORS:
RELATIONAL AND LOGICAL OPERATORS গুলো হল
- RELATIONAL OPERATOR
- Equality Operator
- LOGICAL OPERATOR
RELATIONAL OPERATOR:
C programming language এ চার প্রকার RELATIONAL OPERATORS রয়েছে। নিচে তাদেরকে দেখানো হলঃ
Operator | Meaning |
< | Less then |
<= | Less then or equal to |
> | Greater then |
>= | Greater then or equal to |
এ গুলোর মানে আমরা সবাই বুঝি তাই আর ব্যাখ্যা করলাম না।
উদাহরনঃ মনে করি x, y দুটি চলক। x এর মান 5. y এর মান 6। সুতরাং x expression টি সত্য এবং এর মান হবে 1. আবার x>y expression টি মিথ্যে এবং এর মান হবে 0.
Equality Operator:
RELATIONAL OPERATOR এর সাথে সম্পর্ক যুক্ত দুটি Equality Operator রয়েছে। নিচে এদের দেওয়া হলঃ
Operator | Meaning |
== | Equal to |
!= | Not Equal to |
এখানে প্রথম টি হচ্ছে দুটি সমান চিহ্ন। দুটি মিলেই Equal to Operator প্রকাশ করে। দ্বিতীয় টি হচ্ছে একটি !(উচ্চারন নট) ও একটি সমান চিহ্ন নিয়ে Not Equal to Operator প্রকাশ করে।
উদাহরনঃ মনে করি x, y দুটি চলক। x এর মান 5. Y এর মান 6। সুতরাং x==y এর মানে হচ্ছে x এবং y এর মান সমান। কিন্ত আমদের x এবং y এর মান সমান নয়। সুতরাং x==y expression টি মিথ্যে এবং এর মান হবে 0. আবার x!=y (উচ্চারন x not equal to y) হয় তাহলে expression টি সত্য হয় এবং এর মান হবে 1.
LOGICAL OPERATOR:
C প্রোগ্রামিং এ দুটি Logical Operator রয়েছে। তাদের নিচে দেওয়া হলঃ
Operator | Meaning |
&& | And |
|| | Or |
&& কে বলা হয় Logical and এবং || কে বলা হয় Logical Or.
&&(পড়া হয় And) operator :
মনে করি x,y,z তিনটি চলক। এখন (x
||(পড়া হয় Or Or) operator :
মনে করি x,y,z তিনটি চলক। এখন (xযে কোন একটি সত্য হয়। (xদুটি একসাথে মিথ্যা হলে (x
RELATIONAL AND LOGICAL OPERATORS এর কয়েকটি উদাহরন নিচে দেওয়া হল:
মনে করি x, y, z তিনটি চলক।
x এর মান 5
y এর মান 6 এবং
z এর মান 7
Expression | ব্যাখ্যা | মান |
X | True | 1 |
X==5 | True | 1 |
y==4 | False | 0 |
(X+y)>z | True | 1 |
(X+y)<=z | False | 0 |
X!=y | True | 1 |
(X | True | 1 |
(X | True | 1 |
(X>y)||(z!=y) | True | 1 |
(X>y)&&(z!=y) | False | 0 |
(X | False | 0 |
(X | True | 1 |
অর্থাৎ সকল true এর মান 1 এবং false এর মান ০।
Logical operator এ And(&&) ,Or(||) বোঝার জন্য আমাদের নিচের টেবিলটা বোঝা লাগবে।
AND(A&&B) | Expression A | Expression B | AND output |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
And operator এর ক্ষেত্রে দুইটি expression True হলেই শুধু expression টা true হয়।
OR(A||B) | Expression A | Expression B | OR output |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
OR operator এর ক্ষেত্রে দুইটি expression False হলেই শুধু expression টা False হয়।
Assignment operator
Assignment operator: কোন মান বা Value কোন Identifier এর মধ্যে assign বা নির্দিষ্ট করার জন্য assignment operator ব্যবহৃত হয়। C তে অনেক রকম Assignment operator রয়েছে। যেমনঃ
1) = (Equal to)
2) +=(Plas equal to)
3) -=(Mainus equal to)
4) *=(Product equal to)
5) /=(Divition equal to)
6) %= (Mode equal to) etc
তবে সবচেয়ে ব্যবহৃত Assignment operator হচ্ছে = (Equal to)। এটি নিচের from এ লিখা হয়।
Identifier=expression
এখানে Identifier বলতে সাধারনত চলক(variable) কে বুঝানো হয়।আর expression বলতে যে কোন constant , variable ইত্যাদি কে বুঝানো হয়।
নিচে কিছু Assignment operator এর উদাহরন দেওয়া হলোঃ
- X=5;
- Y=10;
- Pi=3.1416
- Z=x+y+pi
এখানে প্রথম উদাহরনে 5 , x এর মধ্য assign হয়েছে। অর্থাৎ x এর মান এখন 5।
দ্বিতীয় উদাহরনে 10 , y এর মধ্য assign হয়েছে। অর্থাৎ y এর মান এখন 10. তৃতীয় উদাহরনে 3.1416 , pi এর মধ্য assign হয়েছে।
অর্থাৎ pi এর মান এখন 3.1416. চতুর্থ উদাহরনে (x+y+pi ) , z এর মধ্য assign হয়েছে। অর্থাৎ z এর মান এখন (x+y+pi ) ।
এখানে মনে রাখতে হবে যে Assignment operator = এবং Equality Operator == সম্পূর্নই ভিন্ন। কোন মান বা Value কোন Identifier এর মধ্যে assign বা নির্দিষ্ট করার জন্য assignment operator ব্যবহৃত হয়। আর যেখানে দুইটা Expression এর মান সমান হলে Equality Operator == ব্যবহার করা হয়। Equality Operator দ্বারা Logical True অথাবা False নির্নয় করা হয়।
এখানে একটার স্থানে আরেকটা কোন অবস্থাতেই বসানো যাবেনা। তাহলে Program এ বিশাল ভুল আসবে। প্রথম প্রথম অনেকেই এই ভুল করে।
Equal to Assignment operator ছাড়াও অন্যান্য Assignment operator অপারেটর ও ব্যবহার করা হয় । যেমনঃ
+= (Plas equal to) Assignment operator:
এটা নিচের মতো করে লেখা হয়
Exprission1 += Exprission2 যা (Exprission1 = Exprission1+ Exprission2 ) এর সমান।
ব্যাখ্যাঃ মনে করি x=3 , y=5.
যদি লেখা হয়: x+=y তাহলে x এর মান হবে x=x+y অর্থাৎ x=8.
আবার -= (Mainus equal to) Assignment operator এর ক্ষেত্রে নিচের মতো করে লেখা হয়
Exprission1 -= Exprission2 যা (Exprission1 = Exprission1- Exprission2 ) এর সমান।
ব্যাখ্যাঃ মনে করি x=8 , y=5.
যদি লেখা হয়ঃ x-=y তাহলে x এর মান হবে x=x-y অর্থাৎ x=3.
একই ভাবে অন্যান্য Assignment operator গুলো কাজ করে।
No comments:
Post a Comment