ভূমিকা: C প্রোগ্রামিং শেখার শুরুতেই যে কয়েকটি ছোট এবং সহজ প্রোগ্রাম শেখানো হয়, এর মধ্যে Even–Odd নির্ণয় অন্যতম। যদিও প্রোগ্রামটি খুব ছোট, তবে এর মাধ্যমে নতুন প্রোগ্রামার অনেক মৌলিক ধারণা শেখে— যেমন ইনপুট নেওয়া, শর্ত ব্যবহার করা, অপারেটর কীভাবে কাজ করে, এবং আউটপুট তৈরি করা। এই আর্টিকেলটি পুরোপুরি বাংলায় ব্যাখ্যা করা হয়েছে, কিন্তু সমস্ত কোড ইংরেজিতে রাখা হয়েছে যাতে আপনি সহজেই কপি–পেস্ট করে ব্যবহার করতে পারেন।
Even–Odd কী? সহজভাবে ব্যাখ্যা
Even–Odd ধারণাটি খুবই সাধারণ।
যে সংখ্যা ২ দিয়ে ভাগ করলে ভাগশেষ ০ থাকে → Even Number (জোড় সংখ্যা)
যে সংখ্যা ২ দিয়ে ভাগ করলে ভাগশেষ ০ থাকে না → Odd Number (বিজোড় সংখ্যা)
C প্রোগ্রামে এই ভাগশেষ বের করা হয় modulus (%) অপারেটর ব্যবহার করে।
উদাহরণ:
10 % 2 = 0 (Even)
15 % 2 = 1 (Odd)
এই লজিকটি এতই সহজ যে এটি প্রোগ্রামিং শেখার একটি আদর্শ সূচনা ধাপ।
Even–Odd প্রোগ্রাম কেন শেখানো হয়?
কারণ এই ছোট প্রোগ্রামের মধ্যে নতুন প্রোগ্রামার কয়েকটি গুরুত্বপূর্ণ বিষয় শিখে—
- ইনপুট নেওয়া (
scanf) - আউটপুট দেওয়া (
printf) - শর্ত ব্যবহার করা (
if-else) - মডুলাস অপারেটর ব্যবহার
- পূর্ণসংখ্যা কিভাবে গণনা হয়
এছাড়াও, এই প্রোগ্রাম নতুনদের আত্মবিশ্বাস তৈরি করে কারণ এটি খুব কম লাইনেই সম্পন্ন করা যায়।
C প্রোগ্রাম রান করতে যা যা দরকার
C প্রোগ্রাম চালানোর জন্য লাগবে—
- একটি টেক্সট এডিটর — VS Code, Sublime Text বা Notepad++
- C Compiler — GCC, MinGW বা Clang
- Terminal/Command Prompt — প্রোগ্রাম কম্পাইল ও রান করার জন্য
উদাহরণ (gcc দিয়ে কম্পাইল):
gcc even_odd.c -o even_odd
./even_odd
একটি সাধারণ C প্রোগ্রামের গঠন
যেকোনো C প্রোগ্রাম সাধারণত চারটি অংশে বিভক্ত—
- Header File –
#include <stdio.h> - main() ফাংশন
- Variable Declaration
- Logic + Output
Even–Odd প্রোগ্রামে আমরা <stdio.h> ব্যবহার করি কারণ এতে printf ও scanf আছে।
Related Posts
Even–Odd নির্ণয়ের Basic C Program (ইংরেজি কোড)
নিচে সবচেয়ে সহজ এবং সাধারণ Even–Odd প্রোগ্রামটি দেওয়া হলো:
#include <stdio.h>
int main() {
int n;
printf("Enter an integer: ");
scanf("%d", &n);
if (n % 2 == 0)
printf("%d is Even\n", n);
else
printf("%d is Odd\n", n);
return 0;
}
এই প্রোগ্রামটি নতুনদের জন্য আদর্শ। কেবল ৬-৭ লাইনের মধ্যে পুরো লজিকটি তৈরি হয়ে যায়।
লাইন–বাই–লাইন ব্যাখ্যা
#include <stdio.h>
এই লাইব্রেরি ছাড়া printf() ও scanf() ব্যবহার করা যায় না।
int n;
এটি একটি integer ভ্যারিয়েবল যেখানে ইনপুট সংখ্যা রাখা হবে।
scanf("%d", &n);
ব্যবহারকারীর কাছ থেকে একটি পূর্ণসংখ্যা ইনপুট নেওয়ার কোড।
এখানে &n হলো ভ্যারিয়েবলের ঠিকানা।
if (n % 2 == 0)
এটাই Even–Odd নির্ণয়ের মূল লজিক।
Input Validation সহ Even–Odd Program
এবার দেখুন একটি বেশি নিরাপদ সংস্করণ, যেখানে ইনপুট ভুল হলে প্রোগ্রাম থামে।
#include <stdio.h>
int main() {
int n;
printf("Enter an integer: ");
if (scanf("%d", &n) != 1) {
printf("Invalid input!\n");
return 1;
}
if (n % 2 == 0)
printf("%d is Even\n", n);
else
printf("%d is Odd\n", n);
return 0;
}
এটি অনেক ভালো প্র্যাকটিস কারণ বাস্তবে ব্যবহারকারী সবসময় সঠিক ইনপুট নাও দিতে পারে।
টারনারি অপারেটর দিয়ে Even–Odd নির্ণয়
এটি একটি ছোট এবং সংক্ষিপ্ত পদ্ধতি:
#include <stdio.h>
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
printf("%d is %s\n", n, (n % 2 == 0) ? "Even" : "Odd");
return 0;
}
এক লাইনে সিদ্ধান্ত নেওয়া যায়, তাই এটি কোডকে আরও কম করে।
Modulus (%) ছাড়া Even–Odd নির্ণয় (Bitwise Logic)
এটি সবচেয়ে দ্রুত এবং মজার একটি টেকনিক।
#include <stdio.h>
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
if ((n & 1) == 0)
printf("%d is Even\n", n);
else
printf("%d is Odd\n", n);
return 0;
}
কারণ binary number এ even-এর last bit = 0 এবং odd-এর last bit = 1
Modulus (%) ছাড়া Loop দিয়ে Even–Odd নির্ণয়
এটি বাস্তবে খুব কম ব্যবহার হয়, তবে লজিক বোঝানোর জন্য গুরুত্বপূর্ণ। এখানে মূল ধারণা হলো সংখ্যাটিকে বারবার ২ করে কমানো। শেষে যদি 0 পাওয়া যায় → Even শেষে যদি 1 পাওয়া যায় → Odd
#include <stdio.h>
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
int x = (n < 0) ? -n : n; // Make the number positive
while (x > 1)
x -= 2;
if (x == 0)
printf("%d is Even\n", n);
else
printf("%d is Odd\n", n);
return 0;
}
এই পদ্ধতিটি অকার্যকর হলেও লজিক শেখানোর জন্য বেশ ভালো।
Function ব্যবহার করে Even–Odd Program
যদি প্রোগ্রামে বারবার Even–Odd পরীক্ষা করতে হয়, তাহলে আলাদা ফাংশন বানানোই ভালো। নিচে একটি reusable ফাংশন দেখানো হলো:
#include <stdio.h>
int isEven(int n) {
return (n % 2 == 0);
}
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
if (isEven(n))
printf("%d is Even\n", n);
else
printf("%d is Odd\n", n);
return 0;
}
এটি প্রফেশনাল কোডিং স্টাইলের দারুণ উদাহরণ। ফাংশন আলাদা হলে কোড পড়তেও সহজ হয়।
Array ব্যবহার করে একাধিক সংখ্যার Even–Odd নির্ণয়
অনেক সময় আমরা একাধিক ইনপুট একসাথে নিয়ে সবার Even–Odd পরীক্ষা করতে চাই। এক্ষেত্রে লুপ এবং অ্যারে ব্যবহার করা হয়।
#include <stdio.h>
int main() {
int n;
printf("How many numbers: ");
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
printf("Enter number %d: ", i + 1);
scanf("%d", &arr[i]);
}
printf("\nResult:\n");
for (int i = 0; i < n; i++) {
if (arr[i] % 2 == 0)
printf("%d is Even\n", arr[i]);
else
printf("%d is Odd\n", arr[i]);
}
return 0;
}
এটি পরীক্ষা প্রতিযোগিতা বা ল্যাব অ্যাসাইনমেন্টের জন্য খুবই সাধারণ একটি উদাহরণ।
ফাইল থেকে সংখ্যা পড়ে Even–Odd নির্ণয়
আপনি চাইলে ইনপুট সরাসরি ফাইল থেকেও নিতে পারেন। এটি Intermediate স্তরের একটি কাজ।
#include <stdio.h>
int main() {
FILE *fp;
int n;
fp = fopen("numbers.txt", "r");
if (!fp) {
printf("File not found!\n");
return 1;
}
while (fscanf(fp, "%d", &n) == 1) {
if (n % 2 == 0)
printf("%d is Even\n", n);
else
printf("%d is Odd\n", n);
}
fclose(fp);
return 0;
}
এই পদ্ধতি ব্যাচ প্রসেসিং বা ডেটা ফাইল নিয়ে কাজ করার সময় খুবই কাজে লাগে।
নেগেটিভ Number কি Even–Odd হতে পারে?
হ্যাঁ, অবশ্যই পারে।
Even–Odd নির্ণয়ে কেবল remainder দেখলেই হয়।
উদাহরণঃ
-4 % 2 = 0 → Even
-5 % 2 = -1 → Odd
তাই negative সংখ্যার ক্ষেত্রেও একই নিয়ম বজায় থাকে।
Common ভুলগুলো — যেগুলো নতুনরা করে
১. scanf-এ & ভুলে যাওয়া
scanf("%d", n) — ভুল
scanf("%d", &n) — সঠিক
২. শর্তে ভুল লেখা
if (n % 2 = 0) ← এটি assignment, comparison নয়।
সঠিকঃ if (n % 2 == 0)
৩. ইনপুট ভ্যালিডেশন না করা
ব্যবহারকারী যদি অক্ষর দেয় তাহলে প্রোগ্রাম ভুল আউটপুট দিবে।
৪. নেগেটিভ সংখ্যা even–odd ভুল ধরা
অনেক শিক্ষার্থী ভাবে "নেগেটিভ সংখ্যা odd বা even হতে পারে না" → এটি ভুল ধারণা।
Even–Odd লজিক কোথায় ব্যবহার হয়?
Even–Odd দেখে আপনি ভাবতে পারেন এটি শুধু শেখার জিনিস। কিন্তু বাস্তবে অনেক জায়গায় এই লজিক ব্যবহার হয়—
- Odd–Even ট্রাফিক নিয়ন্ত্রণ সিস্টেম
- লোড ব্যালেন্সিং অ্যাপ্লিকেশন
- ডেটা ক্লাস্টারিং
- কম্পিউটারের parity calculation
- Hash table partitioning
অর্থাৎ খুব সাধারণ হলেও এর ব্যবহার শক্তিশালী।
Conclusion — কী শিখলেন?
এই বিশাল আর্টিকেলে আমরা শিখলাম—
- Even–Odd কী
- C-তে কিভাবে Even–Odd নির্ণয় করা হয়
- Modulus, Bitwise, Loop—সব ধরনের লজিক
- Function, Array ও File Handling
- Common ভুল এবং সতর্কতা
Even–Odd প্রোগ্রাম ছোট হলেও এটি প্রোগ্রামিং শেখার সবচেয়ে শক্ত ভিত গড়ে দেয়।
FAQs — সাধারণ প্রশ্নোত্তর
১. Even–Odd শেখা কি খুব জরুরি?
হ্যাঁ, এটি প্রোগ্রামিং-এর লজিক বোঝার বেসিক ধাপ।
২. নেগেটিভ সংখ্যা কি Even–Odd হয়?
হ্যাঁ। remainder 0 হলে Even, নইলে Odd।
৩. কোন পদ্ধতিটি সবচেয়ে দ্রুত?
Bitwise AND (&) সবচেয়ে দ্রুত।
৪. % ব্যবহার না করেও কি Even–Odd বের করা যায়?
হ্যাঁ, Bitwise বা Loop দিয়ে করা যায়।
৫. scanf যদি ভুল ইনপুট পায় তখন কী করা উচিত?
ইনপুট ভ্যালিডেশন ব্যবহার করা উচিত।