কম্পিউটার

সি ভাষায় ব্যবহৃত বিভিন্ন অপারেটর এবং অভিব্যক্তি কি?


অপারেটর ডেটার উপর একটি অপারেশন করে। তারা নিম্নলিখিত −

শ্রেণীবদ্ধ করা হয়
  • পাটিগণিত অপারেটর।
  • রিলেশনাল অপারেটর।
  • লজিক্যাল অপারেটর।
  • অ্যাসাইনমেন্ট অপারেটর।
  • বৃদ্ধি এবং হ্রাস অপারেটর।
  • বিটওয়াইজ অপারেটর।
  • শর্তসাপেক্ষ অপারেটর।
  • বিশেষ অপারেটর।

পাটিগণিত অপারেটর

এই অপারেটরগুলি যোগ, বিয়োগ ইত্যাদির মতো গাণিতিক ক্রিয়াকলাপগুলি সম্পাদনের জন্য সংখ্যাসূচক গণনার (বা) জন্য ব্যবহৃত হয়৷

অপারেটর বিবরণ উদাহরণ a=20,b=10 আউটপুট
+ সংযোজন a+b 20+10 30
- বিয়োগ a-b 20-10 10
* গুণ a*b 20*10 200
/ বিভাগ a/b 20/10 2(ভাগফল)
% মডুলার বিভাগ a%b 20%10 0 (অবশিষ্ট)

প্রোগ্রাম

পাটিগণিত অপারেটর -

-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
main ( ){
   int a= 20, b = 10;
   printf (" %d", a+b);
   printf (" %d", a-b);
   printf (" %d", a*b);
   printf (" %d", a/b);
   printf (" %d", a%b);
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

30
10
200
20

রিলেশনাল অপারেটর

এগুলি দুটি অভিব্যক্তির তুলনা করার জন্য ব্যবহৃত হয়৷

অপারেটর বিবরণ উদাহরণ a=20,b=10 আউটপুট
< এর চেয়ে কম a 10<20 1
<= এর থেকে কম (বা) সমান a<=b 10<=20 1
> এর চেয়ে বড় a>b 10>20 0
>= এর চেয়ে বড় (বা) সমান a>=b 10>=20 0
== সমান a==b 10==20 0
!= এর সমান নয় a!=b 10!=20 1

একটি রিলেশনাল এক্সপ্রেশনের আউটপুট হয় সত্য (1) (অথবা) মিথ্যা (0)।

প্রোগ্রাম

রিলেশনাল অপারেটর -

এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
main ( ){
   int a= 10, b = 20;
   printf (" %d", a<b);
   printf (" %d", a<=b);
   printf (" %d", a>b);
   printf (" %d", a>=b);
   printf (" %d", a = =b);
   printf (" %d", a ! =b);
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

1 1 0 0 0 1 1 1

লজিক্যাল অপারেটর

এগুলি যৌক্তিকভাবে 2 (বা) আরও অভিব্যক্তিকে একত্রিত করতে ব্যবহৃত হয়।

তারা যৌক্তিক এবং (&&) যৌক্তিক বা (|| ) এবং যৌক্তিক নয় (!)

exp1 exp2 exp1&&exp2
T T T
T F F
F T F
F F F

যৌক্তিক এবং(&&)

exp1 exp2 exp1||exp2
T T T
T F T
F T T
F F F

যৌক্তিক বা(||)

exp !exp
T F
F T

যৌক্তিক নয়(!)

অপারেটর বিবরণ উদাহরণ a=20,b=10 আউটপুট
&& যৌক্তিক এবং (a>b)&&(a (10>20)&&(10<30) 0
|| যৌক্তিক বা (a>b)||(a<=c) (10>20)||(10<30) 1
! যৌক্তিক নয় !(a>b) !(10>20) 1

প্রোগ্রাম

লজিক্যাল অপারেটর -

-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
main ( ){
   int a= 10, b = 20, c= 30;
   printf (" %d", (a>b) && (a<c));
   printf (" %d", (a>b) | | (a<c));
   printf (" %d", ! (a>b));
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

0 1 1

অ্যাসাইনমেন্ট অপারেটর

এটি একটি ভেরিয়েবলের একটি মান নির্ধারণ করে। অ্যাসাইনমেন্ট অপারেটরগুলির প্রকারগুলি হল −

  • সাধারণ অ্যাসাইনমেন্ট।
  • সাধারণ অ্যাসাইনমেন্ট।
অপারেটর বিবরণ উদাহরণ
= সাধারণ অ্যাসাইনমেন্ট a=10
+=,-=,*=,/=,%= কম্পাউন্ড অ্যাসাইনমেন্ট a+=10"a=a+10
a=10"a=a-10

প্রোগ্রাম

অ্যাসাইনমেন্ট অপারেটর -

এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
main ( ){
   int a= 10,;
   printf (" %d", a);
   printf (" %d", a+ =10);
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

10
20

বৃদ্ধি এবং হ্রাস অপারেটর

আসুন আমরা বুঝতে পারি ইনক্রিমেন্ট অপারেটর কি।

ইনক্রিমেন্ট অপারেটর (++)

এই অপারেটর একটি ভেরিয়েবলের মান 1

দ্বারা বৃদ্ধি করে

দুটি প্রকারের মধ্যে রয়েছে −

  • প্রি ইনক্রিমেন্ট
  • পোস্ট ইনক্রিমেন্ট

যদি আমরা অপারেন্ডের আগে ইনক্রিমেন্ট অপারেটর রাখি, তবে এটি প্রি-ইনক্রিমেন্ট। পরবর্তীতে, মানটি প্রথমে বৃদ্ধি করা হয় এবং এর উপর পরবর্তী অপারেশন করা হয়।

উদাহরণস্বরূপ,

z = ++a; // a= a+1
z=a

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

উদাহরণস্বরূপ,

z = a++; // z=a
a= a+1

উদাহরণ

ইনক্রিমেন্ট অপারেটর -

এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হল
প্রোগ্রাম প্রোগ্রাম
main() {
   int a= 10, z;
   z= ++a;
   printf("z=%d", z);
   printf("a=%d", a);
}
main() {
   int a= 10, z;
   z= a++;printf("z=%d", z);
   printf("a=%d", a);
}
আউটপুট আউটপুট
z= 11
a=11
z= 10
a=11

ডিক্রিমেন্ট অপারেটর − (- -)

এটি একটি ভেরিয়েবলের মান 1 দ্বারা হ্রাস করতে ব্যবহৃত হয়।

দুই প্রকার হল −

  • প্রি ডিক্রিমেন্ট
  • কমানোর পরে

যদি ডিক্রিমেন্ট অপারেটরটি অপারেন্ডের আগে স্থাপন করা হয়, তবে একে প্রি ডিক্রিমেন্ট বলে। এখানে, মানটি প্রথমে হ্রাস করা হয় এবং তারপরে, এটিতে অপারেশন করা হয়।

উদাহরণস্বরূপ,

z = - - a; // a= a-1
z=a

যদি অপারেন্ডের পরে ডিক্রিমেন্ট অপারেটর স্থাপন করা হয়, তবে তাকে পোস্ট ডিক্রিমেন্ট বলে। এখানে, অপারেশন সঞ্চালিত হওয়ার পরে মান হ্রাস করা হয়।

উদাহরণস্বরূপ,

z = a--; // z=a
a= a-1


main() {
   int a= 10, z;
   z= --a;
   printf("z=%d", z);
   printf("a=%d", a);
}
main() {
   int a= 10, z;
   z= a--;
   printf("z=%d", z);
   printf("a=%d", a);
}
আউটপুট আউটপুট
z= 9
a=9
z= 10
a=9

বিটওয়াইজ অপারেটর

বিটওয়াইজ অপারেটররা বিটগুলিতে কাজ করে।

অপারেটর বিবরণ
& বিটওয়াইজ এবং
| বিটওয়াইজ বা
^ বিটওয়াইজ XOR
<< বাম স্থানান্তর
>> ডান স্থানান্তর
~ একজনের পরিপূরক


Bitwise AND
a b a&b
0 0 0
0 1 0
1 0 0
1 1 1


বিটওয়াইজ বা
a b a|b
0 0 0
0 1 1
1 0 1
1 1 1


Bitwise XOR
a b a^b
0 0 0
0 1 1
1 0 1
1 1 0

সি ভাষায় ব্যবহৃত বিভিন্ন অপারেটর এবং অভিব্যক্তি কি?

প্রোগ্রাম

বিটওয়াইজ অপারেটর -

-এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
main ( ){
   int a= 12, b = 10;
   printf (" %d", a&b);
   printf (" %d", a| b);
   printf (" %d", a ^ b);
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

8 14 6

বাম স্থানান্তর

যদি মানটি একবার স্থানান্তরিত করা হয় তবে এর মান দ্বিগুণ হয়ে যায়।

উদাহরণস্বরূপ, a =10, তারপর a<<1 =20

সি ভাষায় ব্যবহৃত বিভিন্ন অপারেটর এবং অভিব্যক্তি কি?

ডান স্থানান্তর

যদি একটি ভেরিয়েবলের মান একবার ডানে স্থানান্তরিত হয়, তাহলে এর মান মূল মানের অর্ধেক হয়ে যায়।

উদাহরণস্বরূপ, a =10, তারপর a>>1 =5

সি ভাষায় ব্যবহৃত বিভিন্ন অপারেটর এবং অভিব্যক্তি কি?

একটি পরিপূরক

এটি সবগুলোকে শূন্যে এবং শূন্যকে এক-এ রূপান্তরিত করে।

উদাহরণস্বরূপ, a =5, তারপর ~a=2 [শুধুমাত্র যদি 4 বিট বিবেচনা করা হয়]।

সি ভাষায় ব্যবহৃত বিভিন্ন অপারেটর এবং অভিব্যক্তি কি?

প্রোগ্রাম

বিটওয়াইজ অপারেটর -

-এর জন্য আরেকটি সি প্রোগ্রাম নিচে দেওয়া হল
#include<stdio.h>
main ( ){
   int a= 20, b = 10,c=10;
   printf (" %d", a<<1);
   printf (" %d", b>>1);
   printf (" %d", ~c);
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

40
5
11

স্বাক্ষরিত

1 এর পরিপূরক =- [ নম্বর +1 দিন]

উদাহরণস্বরূপ, ~10 =- [10+1] =-11

~-10 =- [-10+1] =9

আনসাইন করা হয়নি

1 এর পরিপূরক =[65535 – দেওয়া নেই]

শর্তাধীন অপারেটর (? :)

একে টারনারি অপারেটরও বলা হয়।

সিনট্যাক্স নিম্নরূপ -

exp1? exp2: exp3

exp1 সত্য হলে, exp2 মূল্যায়ন করা হয়। অন্যথায়, exp3 মূল্যায়ন করা হয়। অথবা if-else আকারে।

if (exp1)
   exp2;
else
   exp3;

প্রোগ্রাম

শর্তসাপেক্ষ অপারেটর -

-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল
#include<stdio.h>
main ( ){
   int z;
   z = (5>3) ? 1:0;
   printf ("%d",z);
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

বিশেষ অপারেশন

কিছু বিশেষ ক্রিয়াকলাপ হল কমা, অ্যাম্পারস্যান্ড (&), অপারেটরের আকার।

  • কমা ( , ) - এটি ভেরিয়েবলের জন্য বিভাজক হিসাবে ব্যবহৃত হয়। উদাহরণ স্বরূপ; a=10, b=20
  • ঠিকানা (&) − এটি একটি ভেরিয়েবলের ঠিকানা পায়।
  • এর আকার ( ) − এটি বাইটে ভেরিয়েবলের ডেটা টাইপের আকার পেতে ব্যবহৃত হয়।

প্রোগ্রাম

বিশেষ ক্রিয়াকলাপের জন্য সি প্রোগ্রামটি নিচে দেওয়া হল -

#include<stdio.h>
main ( ){
   int a=10;
   float b=20 ;
   printf (" a= %d b=%f", a,b );
   printf (" a address =%u\n " , &a ) ;
   printf (" b address =%u\n" ,&b ) ;
   printf ("a size = %ld\n" , sizeof (a) ) ;
   printf ( "b size = %ld ", sizeof (b) ) ;
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

a=10 b=20.00
Address of a =1 2 3 4
Address of b = 5 6 7 8 Only for this example
Size of a = 4 bytes
Size of b = 4 bytes

  1. বিভিন্ন পয়েন্টার অপারেশন এবং সি ল্যাঙ্গুয়েজে পয়েন্টার নিয়ে সমস্যা কি?

  2. সি ল্যাঙ্গুয়েজে কি ধরনের এক্সপ্রেশন মূল্যায়ন করা হয়?

  3. বিভিন্ন কম্পিউটার ভাষা কি কি?

  4. সি ভাষায় বিভিন্ন অনুসন্ধান কৌশল কি কি?