গত পর্বগুলো যারা পড়েন নি, তারা এই লিংক থেকে পড়ে আসতে পারেন।
পর্ব ১
পর্ব ২
পর্ব ৩.১
পর্ব ৩.২
পর্ব ৩.৩
আজকের পর্বে আমরা শিখবো কন্ডিশনাল লজিক।
কন্ডিশনাল লজিকঃ
শর্তদেয়া যুক্তি এমনটাই বাংলার অর্থ। তবে বিষয়টা যুক্তি কেন বলা হয়ছে সেটা একটু পরেই বুঝতে পারবেন।
কম্পিউটার কে যখন আপনি কোনো জিনিস ঘটার প্রতিক্রিয়া করার কাজ প্রদান করবেন, সেটাই কন্ডিশনাল লজিক। আমরা নিজেরাও কন্ডিশনাল লজিক এর আওতায়।
আপনার বাবা-মা আপনাকে একটা জিনিস অবশ্যই শিখিয়েছেন যে বড়দের দেখলে সম্মান দেখাতে (একেক জনের ধর্মে একেক ভাবে), আবার ক্লাসে শিক্ষক ঢুকলে অভ্যর্থনা জানাতে, পরিচিত কেউ দাওয়াত দিলে তা গ্রহণ করতে, অপিরিচিত কেউ কিছু দিলে তা গ্রহণ না করতে…. ইত্যাদি ইত্যাদি। সবাই আমরা এসব সামাজিকীকরণ এ বেড়ে উঠেছি।
এটাই কন্ডিশনাল লজিক এর উদাহরণ। কীভাবে? আসুন বুঝাই।
বড় দের দেখলে আপনি সম্মান জানালেন, আপনি কিন্তু আপনার সমবয়সী বা ছোটদের দেখে একই রকম সম্মান জানাচ্ছেন না। এটাই কন্ডিশনাল লজিক। অর্থাৎ আপনি প্রথমে দেখলেন ও বুঝলেন আপনার পরিস্থিতি এবং সেই হিসেবে প্রতিক্রিয়া দেখালেন। এরকম ই উপরের আওব অভ্যাশগুলোই কন্ডিশনাল লজিক এর আওতায়।
তাহলে কম্পিউটার এর ক্ষেত্রে কেমন?
আপনি ধরুন একটি প্রোগ্রাম লিখলেন, সেখান থেকে কম্পিউটার কে নির্দেশ করলেন যে যখন ই ৫ শব্দটা দেখেবে তখনি ইরোর মেসেজ শো করবে। তাহলে কম্পিউটার কে আপনি একটা শর্ত দিলেন এবং সেটার প্রতিক্রিয়া দিলেন, সেটাই কন্ডিশনাল লজিক।
সি প্রোগ্রামিং এ কন্ডিশন দেয়ার জন্য ৩ টি ফাংশন ব্যবহৃত হয়।
একটি হলো if() ও অপরটি হলো else এবং এরপর আসে else if()।
যখন if() লিখবেন, তখন একটি শর্ত লিখবেন এবং সেই অনুযায়ী প্রোগ্রাম কাজ করবে, আর else দিলে প্রোগ্রাম তখন অন্য কাজ করবে যখন if() শর্ত টি পাওয়া যাবে না। আর যখন else if() ব্যবহার করবেন তখন এটা দিয়ে বুঝাবে যদি if() শর্ত কাজ না করলে এটা দ্বিতীয় শর্ত হিসেবে কাজ করবে। এভাবে else if() যতো ব্যবহার করবেন, ততোগুলো শর্ত দেয়া যাবে।
এই তিনটি ফাংশন লেখার পর প্রোগ্রাম ২য় ব্র্যাকেট দিয়ে শুরু ও ২য় ব্র্যাকেট দিয়ে শেষ করতে হয়।
অনেক ব্যাখ্যা হয়েছে, এবার কাজে আসি। প্রোগ্রাম দেখলেই বুঝতে পারবেন।
#include <stdio.h>
int main()
{
int x;
printf(“Write a number:”);
scanf(“%d”, &x);
if(x >= 0) {
printf(“Positive Number\n”);
}
else {
printf(“Negative Number\n”);
}
return 0;
}
এটা রান করলে নিচের মতো আসবে। সেখানে আমরা ৫ লিখলাম, আর ফলাফল দেখালো যে সেটা ধনাত্মক সংখ্যা।
এবার -৫ লিখে দেখা গেল যে প্রোগ্রাম আমাদের বলছে যে সেটা ঋণাত্মক সংখ্যা।
আসুন প্রোগ্রাম টা ভেঙ্গে ব্যখ্যা করি।
প্রথমে ইন্টিজার হিসেবে x ধরেছি।
printf() ফাংশন দিয়ে প্রথমে আমরা ইউজার কে বললাম যে একটি সংখ্যা লিখতে এবং scanf() দিয়ে সেই সংখ্যা ইনপুট করার অপশন দিলাম, যেটার ডাটা x এর মান হিসেবে ব্যবহৃত হবে।
এবার আমরা লিখলাম
if(x >= 0) {
printf(“Positive Number\n”);
}
। এর মানে হলো যদি x এর মান যদি 0 এর সমান অথবা 0 এর থেকে বড় হয়, তাহলে আমাদেরকে “Positive Number” লেখাটি দেখাবে।
এরপর লিখেছি
else {
printf(“Negative Number\n”);
}
মানে, if(x>=0) এই শর্ত এর মধ্যে যদি সংখ্যা না থাকে, অর্থাৎ ইনপুট সংখ্যা যদি 0 এর চেয়ে ছোট হয়, তাহলে “Negative Number” লেখা টি আসবে।
সংখ্যা যাচাই এর ক্ষেত্রে যে যে শর্তগুলো দিতে পারবেন, তার তালিকাঃ
> বলতে বড়
= বলতে বড় বা সমান
<= ছোট বা সমান
== বলতে সমান (অনেকেই ভাবতে পারেন = চিহ্ন দিয়ে সমান বুঝাবে, কিন্তু না। সমান বুঝাতে == ব্যবহার করতে হবে)
!= বলতে অসমান যাচাইয়ের জন্য
আরো অন্যন্য শর্ত ধীরে শীরে শিখতে পারবেন।
আসুন আরেকটা প্রোগ্রাম লিখে বিষয়টা ক্লিয়ার করে দেই।
#include <stdio.h>
int main()
{
int n;
printf(“Type a number:”);
scanf(“%d”, &n);
if (n>0) {
printf(“The number is positive\n”);
}
else if (n<0) {
printf("The number is negative\n");
}
else if (n==0) {
printf("The number is zero\n");
}
return 0;
}
এই প্রোগ্রামটি চালালে কী হবে বুঝতে পারছেন? যদি আপনি 0 টাইপ করেন, তাহলে সেটার জন্য আপনাকে বলে দেয়া হবে যে সেটা শুণ্য।
#include <stdio.h>
int main()
{
int n;
printf(“Type a number:”);
scanf(“%d”, &n);
if (n==0) {
}
else if (n>0) {
printf(“The number is greater than zero\n”);
}
else if (n<0) {
printf("The number is less than zero\n");
}
return 0;
}
আর এই প্রোগ্রাম লিখলে কী হবে সেটা বুঝতে আর আপনার বাকি নেই নিশ্চয়। ☺️
আজ এ পর্যন্তই।
বোনাসঃ
এটা অফ-টপিক। মানে সি প্রোগ্রামিং নিয়েই। তবে এটা কন্ডিশনাল লজিক এর আওতায় নয়।
এটা হলো প্রোগ্রামের মধ্যে কমেন্ট লেখা।
যারা HTML জানেন, তারা হয়তো এটাও জানেন যে HTML এ কোড এর মধ্যে নিজের মন্তব্য লেখা যায় যেটা আউটপুট এ কোনো প্রকার কোনো প্রভাব ফেলবে না। তেমনি সি-প্রোগ্রামিং এও আছে কমেন্ট লেখার সুযোগ।
#include <stdio.h>
int main()
{
// I am Ersiaa from trickbd
printf(“Hello World\n”);
/* Hi,
I am Ersiaa
I write article at trickbd.com */
printf(“This is a test”);
return 0;
}
এই প্রোগ্রামে আমি দুই জায়গায় নিজের কথা লেখার জন্য দুইটি ভিন্ন ভিন্ন চিহ্ন ব্যবহার করেছি। আর সেগুলো সবুজ হয়ে আছে। এর মানে এগুলো রান করার পর শো করবে না, শুধু ইনপুটেই শো করবে।
যখন // চিহ্ন ব্যবহার করবো তখন শুধু এক লাইন ই লিখতে পারবো।
আর যখন /* ব্যবহার করবো তখন */ পর্যন্ত লিখতে পারবো একাধিক লাইন।
আউটপুট হবে এমনঃ
এইতো।
ভালো থাকবেন।