fbpx
 
09 May 2020

সি প্রোগ্রামিং এর বিস্তারিত নিয়ে ধারাবাহিক পর্ব ০১:

প্রথমে আমরা জানবো অপারেটর সম্পর্কে
Programming C Operator

Operator: অপারেটর এক ধরণের প্রতীক (Symbol) যা ভ্যালু (Value) অথবা ভ্যারিয়েবলকে অপারেট করতে পারে। প্রধানত অপারেটর ছয় ধরণের
যেমন: Arithmetic, Assignment, Relational, Conditional, Logical & Bitwise Operator.

Arithmetic Operator: এরিথমেটিক অপারেটর গাণিতিক হিসাব নিকাশ করে যেমন- যোগ(+), বিয়োগ(-), গুন(*), ভাগ(/) এবং ভাগশেষ(%) এর কার্য সম্পন্ন করে।

Assignment Operator: ভ্যারিয়েবলে ভ্যালু এসাইন করা বা জমা রাখার জন্য Assignment অপারেটর ব্যবহৃত হয়।যেমন:( =, +=, -=, *=, /=, %=).

Relational Operator: সি প্রোগ্রামিং এ রিলেশনাল অপারেটর দুটি “অপারেন্ডের” মধ্যে সম্পর্ক যাচাই করে। রিলেশন সত্যি (true) হলে 1 রিটার্ন করে; রিলেশন মিথ্যা (false) হলে 0 রিটার্ন করে। যেমন: ( ==, <, >, !=, <=, >= )

সিদ্ধান্ত গ্রহণ(decision making) এবং লুপ(loop) এ রিলেশনাল অপারেটর ব্যবহৃত হয়।
Conditional_Operator: যখন কোনো অপারেটর তিনটি অপারেন্ড (Operand) নিয়ে কাজ করে তাকে কন্ডিশনাল/টারনারী অপারেটর বলে। কন্ডিশনাল অপারেটর ” ?: “

Logical Operator: সি প্রোগ্রামিং এ Logical AND “&&” – উভয় অপারেন্ড true হলে True, Logical OR ” || “- যেকোনো একটি অপারেন্ড true হলে True এবং Logical NOT ” ! ” – অপারেন্ড false হলে True.
অপারেটরসমূহকে লজিক্যাল(Logial) অপারেটর বলা হয়। সি প্রোগ্রামিং এ সিদ্ধান্ত গ্রহণে (in decision making ) সচারচর লজিক্যাল অপারেটর ব্যবহৃত হয়।

Bitwise Operator: হিসাব নিকাশের সময় গাণিতিক অপারেশন যেমন- যোগ, বিয়োগ, গুণ এবং ভাগ বিট-লেভেলে রূপান্তরিত হলে দ্রুত প্রোসেসিং হয় এবং শক্তি সংরক্ষিত হয়।
“বিটওয়াইজ AND(&) অপারেটর:
বিটওয়াইজ অপারেটরের দুটি অপারেন্ডের বিট যদি 1 হয় তাহলে বিটওয়াইজ AND অপারেটর এর আউটপুট 1 হবে।
কিন্তু যদি বিটওয়াইজ অপারেটর এর যেকোনো একটি অপারেন্ড 0 (শূন্য) হয় তাহলে আউটপুট 0 (শূন্য) হবে।
“বিটওয়াইজ OR (|) অপারেটর:
বিটওয়াইজ অপারেটরের দুটি অপারেন্ডের যেকোনো একটির বিট যদি 1 হয় তাহলে বিটওয়াইজ OR অপারেটর এর আউটপুট 1 হবে।
কিন্তু যদি বিটওয়াইজ অপারেটর এর দুটি অপারেন্ড-ই 0(শূন্য) হয় তাহলে আউটপুট 0(শূন্য) হবে।

“বিটওয়াইজ XOR(^) অপারেটর
XOR এর পূর্ণরুপ হলো exclusive OR । বিটওয়াইজ অপারেটর এর দুটি অপারেন্ড যদি পরস্পর বিপরীত হয় তাহলে বিটওয়াইজ XOR অপারেটর এর আউটপুট 1 হবে।
কিন্তু যদি বিটওয়াইজ অপারেটর এর দুটি অপারেন্ড-ই একই রকম হয় তাহলে আউটপুট 0(শূন্য) হবে।

“বিটওয়াইজ পূরক(~) অপারেটর:
বিটওয়াইজ পূরক(compliment) অপারেটর হলো উনারী (unary) অপারেটর যা কেবল মাত্র একটি অপারেন্ডের উপর কাজ করে। ইহা 1 কে পরিবর্তন করে 0 করে এবং 0 কে পরিবর্তন করে 1 করে। ইহাকে ~ এর মাধ্যমে চিহ্নিত করা হয়।
“বিটওয়াইজ Left Shift( <<) অপারেটর:
Left shift অপারেটর সমস্ত বিটকে নির্দিষ্ট সংখ্যক বিট বামে সরিয়ে দেয়।
“বিটওয়াইজ Right Shift(>>) অপারেটর:
Right Shift অপারেটর সমস্ত বিটকে নির্দিষ্ট সংখ্যক বিট ডানে সরিয়ে দেয়। ইহাকে >> এর মাধ্যমে প্রকাশ করা হয়।
সি প্রোগ্রামিং এ বিট-লেভেল অপারেশন সম্পন্ন করার জন্য বিটওয়াইজ অপারেটর ব্যবহৃত হয়।

23 Feb 2019

সি প্রোগ্রামিং কেন শিখবেন ?

আপনি যদি প্রোগ্রামিং এ নতুন হোন, তাহলে সি দিয়ে প্রোগ্রামিং দিয়ে যাত্রা শুরু করতে পারেন। বিভিন্ন অপারেটিং সিস্টেম (যেমন-উইন্ডোজ, আইওএস, লিন্যাক্স ইত্যাদি) থেকে শুরু করে নানা ধরনের সফটওয়্যার নির্মানে সি এর ব্যপক ব্যবহার রয়েছে। সি একটি অত্যন্ত কার্যকরী (highly efficient) প্রোগ্রামিং ভাষা । প্রায় ৪৪ বছরেরও বেশি সময় ধরে জনপ্রিয় থাকার এটাই হয়ত মূল কারণ।
স্টান্ডার্ড সি প্রোগ্রাম বহনযোগ্য(portable)। একটি সিস্টেমের জন্য লিখিত কোড কোনো ধরণের পরিবর্তন ছাড়াই অন্য অপারেটিং সিস্টেমে কাজ করে।

প্রথমে আমরা জানবো অপারেটর সম্পর্কে
Operator: অপারেটর এক ধরণের প্রতীক (Symbol) যা ভ্যালু (Value) অথবা ভ্যারিয়েবলকে অপারেট করতে পারে। প্রধানত অপারেটর ছয় ধরণেরযেমন: Arithmetic, Assignment, Relational, Conditional, Logical & Bitwise Operator.
Arithmetic Operator: এরিথমেটিক অপারেটর গাণিতিক হিসাব নিকাশ করে যেমন- যোগ(+), বিয়োগ(-), গুন(*), ভাগ(/) এবং ভাগশেষ(%) এর কার্য সম্পন্ন করে।
Assignment Operator: ভ্যারিয়েবলে ভ্যালু এসাইন করা বা জমা রাখার জন্য Assignment অপারেটর ব্যবহৃত হয়।যেমন:( =, +=, -=, *=, /=, %=).
Relational Operator: সি প্রোগ্রামিং এ রিলেশনাল অপারেটর দুটি “অপারেন্ডের” মধ্যে সম্পর্ক যাচাই করে। রিলেশন সত্যি (true) হলে 1 রিটার্ন করে; রিলেশন মিথ্যা (false) হলে 0 রিটার্ন করে। যেমন: ( ==, <, >, !=, <=, >= )
সিদ্ধান্ত গ্রহণ(decision making) এবং লুপ(loop) এ রিলেশনাল অপারেটর ব্যবহৃত হয়।

Conditional Operator: যখন কোনো অপারেটর তিনটি অপারেন্ড (Operand) নিয়ে কাজ করে তাকে কন্ডিশনাল/টারনারী অপারেটর বলে। কন্ডিশনাল অপারেটর ” ?: “
Logical Operator: সি প্রোগ্রামিং এ Logial AND “&&” – উভয় অপারেন্ড true হলে True, Logical OR ” || “- যেকোনো একটি অপারেন্ড true হলে True এবং Logical NOT ” ! ” – অপারেন্ড false হলে True.অপারেটরসমূহকে লজিক্যাল(Logial) অপারেটর বলা হয়। সি প্রোগ্রামিং এ সিদ্ধান্ত গ্রহণে (in decision making ) সচারচর লজিক্যাল অপারেটর ব্যবহৃত হয়।
Bitwise Opertor: হিসাব নিকাশের সময় গাণিতিক অপারেশন যেমন- যোগ, বিয়োগ, গুণ এবং ভাগ বিট-লেভেলে রূপান্তরিত হলে দ্রুত প্রোসেসিং হয় এবং শক্তি সংরক্ষিত হয়।”বিটওয়াইজ AND(&) অপারেটর:বিটওয়াইজ অপারেটরের দুটি অপারেন্ডের বিট যদি 1 হয় তাহলে বিটওয়াইজ AND অপারেটর এর আউটপুট 1 হবে।কিন্তু যদি বিটওয়াইজ অপারেটর এর যেকোনো একটি অপারেন্ড 0 (শূন্য) হয় তাহলে আউটপুট 0 (শূন্য) হবে।”বিটওয়াইজ OR (|) অপারেটর:বিটওয়াইজ অপারেটরের দুটি অপারেন্ডের যেকোনো একটির বিট যদি 1 হয় তাহলে বিটওয়াইজ OR অপারেটর এর আউটপুট 1 হবে।কিন্তু যদি বিটওয়াইজ অপারেটর এর দুটি অপারেন্ড-ই 0(শূন্য) হয় তাহলে আউটপুট 0(শূন্য) হবে।
“বিটওয়াইজ XOR(^) অপারেটরXOR এর পূর্ণরুপ হলো exclusive OR । বিটওয়াইজ অপারেটর এর দুটি অপারেন্ড যদি পরস্পর বিপরীত হয় তাহলে বিটওয়াইজ XOR অপারেটর এর আউটপুট 1 হবে।কিন্তু যদি বিটওয়াইজ অপারেটর এর দুটি অপারেন্ড-ই একই রকম হয় তাহলে আউটপুট 0(শূন্য) হবে।
“বিটওয়াইজ পূরক(~) অপারেটর:বিটওয়াইজ পূরক(compliment) অপারেটর হলো উনারী (unary) অপারেটর যা কেবল মাত্র একটি অপারেন্ডের উপর কাজ করে। ইহা 1 কে পরিবর্তন করে 0 করে এবং 0 কে পরিবর্তন করে 1 করে। ইহাকে ~ এর মাধ্যমে চিহ্নিত করা হয়।”বিটওয়াইজ Left Shift( <<) অপারেটর:Left shift অপারেটর সমস্ত বিটকে নির্দিষ্ট সংখ্যক বিট বামে সরিয়ে দেয়।”বিটওয়াইজ Right Shift(>>) অপারেটর:Right Shift অপারেটর সমস্ত বিটকে নির্দিষ্ট সংখ্যক বিট ডানে সরিয়ে দেয়। ইহাকে >> এর মাধ্যমে প্রকাশ করা হয়।সি প্রোগ্রামিং এ বিট-লেভেল অপারেশন সম্পন্ন করার জন্য বিটওয়াইজ অপারেটর ব্যবহৃত হয়।

07 Dec 2018

বিট এবং বাইট নিয়ে বিস্তারিত তথ্য

আমরা যখন বাসায় ব্রডব্যান্ড লাইন সংযোগ করি তো সংযোগ করার পরবর্তীতে তখন সবারই একটা প্রশ্ন থাকে যে আমি লাইন নিলাম 1Mbps কিন্তু যখন ডাউনলোড দিই তখন ডাউনলোড স্পিড দেখায় 200 কেবিপিএস বা 128 কেবিপিএস বা তার একটু বেশি।তাহলে কি Internet Service Provider(ISP) রা আমাকে পর্যাপ্ত পরিমাণ স্পিড দিচ্ছে না?তারা কি আমাকে ধোকা দিচ্ছে?
তো চলুন এই বিষয়টা আজকে একটু ক্লিয়ার করি।
প্রথমে আমাদের জানা দরকার B ও b কি?
অবাক হইয়েন না,দুইটা অক্ষর একই হলেও ছোট অক্ষর ও বড় অক্ষরের মধ্যে বিশাল পার্থক্য রয়েছে।
B=Byte এবং b=Bit.
বড় হাতের অক্ষর হলে সেটা হবে Byte আর ছোট হাতের অক্ষর হলে সেটা হবে Bit.
তো চলুন এবার MB এবং Mb নিয়ে কথা বলি।
MB=Megabyte এবং Mb=Megabit
Bit হচ্ছে ডাটা ট্রান্সফারের সর্বকনিষ্ঠ একক,যার মধ্যে শুধু মাত্র 0 or 1 রয়েছে।
গান,মিউজিক,পিকচার যে কোনো ফাইল ইত্যাদির সাইজ পরিমাপ করা হয় MB অর্থাৎ Megabyte দিয়ে।
আর ইন্টারনেটের গতি পরিমাপ করা হয় Mb/Mbps অর্থাৎ Megabits Per Second.
তাহলে প্রশ্ন হচ্ছে কত Bit=Byte?
দেখুন এটা তো আমরা জানি যে Bit থেকে Byte বড়।
তো
Bit=0 or 1
1Byte=8Bit.
তারমানে হচ্ছে 8 টি Bit নিয়ে 1 Byte.
তারমানে ফাইলের Megabytes ইন্টানেটের Megabits থেকে 8 গুণ বড়।
তাহলে এবার আলোচনাকরি কেন আমরা পর্যাপ্ত পরিমান স্পিড পাই না কোনো ফাইল ডাউনলোড করার সময়।
এটা সম্পর্কে শুধুমাত্র দু লাইন বললেই বুঝে যাবেন।সেটা হচ্ছে সংযোগ প্রদানকারীররা আপনাকে যে লাইন প্রদান করে তার হিসাব হয় Mb তে অর্থাৎ megabit এ।আর আপনি যেটা ডাউনলোড করেন সেটার হিসাব হয় MB তে অর্থাৎ Megabyte এ।আপনি যদি আপনার ইন্টারনেটের আপলোড স্পিড ও ডাউনলোড স্পিড চেক করবেন তখন দেখবেন সেটা Mbps এ দেখাবে(ছোট হাতের b) অর্থাৎ Megabit Per Second. আর যদি ডাউনলোড তখন সেটা দেখাবে MBps এ (বড় হাতেরB) অর্থাৎ Megabyte Per Second.
Wait…..এখানে থামুন আর ৩০ সেকেন্ড মনে মনে ভাবুন।
হ্যা আপনি যা ভাবছেন তাই।
আমি আগেই বলছি যে কোনো ফাইলের ক্ষেত্রে হিসাব হয় Megabyte এ আর ইন্টারনেটের ক্ষেত্রে হিসাব হয় Megabit এ।
তো মনে করুন আপনার 1Mbps এর একটি লাইন আছে, তো এখান থেকে আপনি ডাউনলোড স্পিড পাবেন 1÷8=0.125MBps.
অথবা মনে করুন আপনার কাছে 10 Mbps এর একটি লাইন আছে,তো এখান থেকে আপনি এক সেকেন্ডে ডাউনলোড স্পিড পাবেন 10÷8=1.25 MBps.
এভাবে আপনি যদি 1MB File এক সেকেন্ডে ডাউনলোড করতে চান তাহলে আপনার Link Speed লাগবে 8Mbps.
অথবা মনে করুন আপনার কাছে 100Mbps এর কানেকশন আছে তো আপনি 100 MB এর একটি ফাইল ডাউনলোড করতে চান। তাহলে কত সময় লাগবে?
দেখুন আপনার কাছে স্পিড আছে 100Mbps,যদি এটাকে MB তে কনভার্ট করি তাহলে হবে 100÷8=12.5 MBps
তাহলে 12.5 MB ফাইল ডাউনলোড হয়
১ সেকেন্ডে।
অতএব 100MB ফাইল ডাউনলোড হবে
100÷12.5 =8 Sce.
অর্থাৎ 100Mbps স্পিড থেকে 100 MB সাইজের একটি ফাইল ডাউনলোড হতে সময় লাগবে ৮ সেকেন্ড।
এভাবে হিসাব হবে।
আশাকরি সবকিছু বুঝতে পেরেছেন,যদি না বুঝে থাকেন তাহলে পোস্টটি আরেকবার পড়ুন তাহলেই বুঝে যাবেন।

back to top