Swapping নিয়ে মজার মজার টিপস্!

তিনটি ভ্যারিয়েবল ব্যবহার করে দুটি সংখ্যা Swap করার একটি পদ্ধতি পূর্বের একটি পোস্টে বর্ণনা করা হয়েছিলো। এবার আমরা দেখবো দুটি ভ্যারিয়েবল ব্যবহার করে কতভাবে Swap করা যায়। চলুন শুরু করা যাক। প্রথমে আমি পূর্বের প্রোগ্রামটি একটু উল্লেখ করলাম। যারা এই প্রোগ্রামটি এখনো বুঝেননি তাদের কাছে আমার অনুরোধ রইলো পুর্বের প্রোগ্রামটি পড়ে আসার জন্য।
#include<stdio.h> int main() { int num1=10, num2=12, swp; printf(“num1 = %d and num2 = %d\n”, num1, num2); swp = num1; num1 = num2; num2 = swp; printf(“num1 = %d and num2 = %d\n”, num1, num2); return 0; }
- গাণিতিক অপারেটর(+, -) ব্যবহার করে Swap করার পদ্ধতি।
চলুন বন্ধুরা শুরু করা যাক আমাদের আজকের আলোচনা। দুটি ভ্যারিয়েবল ব্যবহার করে আমরা বিভিন্নভাবে Swap করে দেখবো। প্রথমে দেখা যাক গাণিতিক অপারেটর(+,-) ব্যবহার করে কিভাবে Swap করা যায়।
#include<stdio.h> int main() { int num1 = 10, num2 = 12; printf(“num1 = %d and num2 = %d\n”, num1, num2); num1 = num1 + num2; num2 = num1 – num2; num1 = num1 – num2; printf(“num1 = %d and num2 = %d\n”, num1, num2); return 0; }
এখানে, num1 এবং num2 ভ্যারিয়েবল দুটির মধ্যে দুটি ভ্যালু অ্যাসাইন করলাম। num1 = num1 + num2 যেখানে num1 = 10 এবং num2 = 12. সুতরাং, num1 = 10 + 12 = 22. তাহলে num1 এর বর্তমান ভ্যালু দাঁড়াল num1 = 22.
এর পরের লাইনে আমরা দেখতে পাচ্ছি যে, num2 = num1 – num2; তাহলে num2 = 22 – 12 = 10.
এবার এর পরের লাইনে থেকে আমরা পাই, num1 = num1 – num2; যেখানে, num1 = 22 – 10 = 12. অবশেষে আমাদের কাঙ্খিত ফলাফল চলে আসলো। অর্থাৎ, num1 = 12 এবং num2 = 10.
- গাণিতিক অপারেটর(*, /) ব্যবহার করে Swap করার পদ্ধতি।
#include<stdio.h> int main() { int num1=10, num2=12; printf(“num1 = %d and num2 = %d\n”, num1, num2); num1 = num1*num2; num2 = num1/num2; num1 = num1/num2; printf(“num1 = %d and num2 = %d\n”, num1, num2); return 0; }
এখানে, num1 এবং num2 ভ্যারিয়েবল দুটির মধ্যে দুটি ভ্যালু অ্যাসাইন করলাম। num1 = num1 * num2 যেখানে num1 = 10 এবং num2 = 12. সুতরাং, num1 = 10 * 12 = 120. তাহলে num1 এর বর্তমান ভ্যালু দাঁড়াল num1 = 120.
এর পরের লাইনে আমরা দেখতে পাচ্ছি যে, num2 = num1 / num2; তাহলে num2 = 120 / 12 = 10.
এবার এর পরের লাইনে থেকে আমরা পাই, num1 = num1 / num2; যেখানে, num1 = 120 / 10 = 12. অবশেষে আমাদের কাঙ্খিত ফলাফল চলে আসলো। অর্থাৎ, num1 = 12 এবং num2 = 10.
- বিটওয়াইজ XOR অপারেটর(^) ব্যবহার করে Swap করার পদ্ধতি।
বিটওয়াইজ অপারেটর দিয়েও ছোটখাটো কিছু মজার প্রোগ্রাম করা যায়। এই প্রোগ্রাম টা বুঝার জন্য আপনার XOR অপারেশন সম্পর্কে ধারণা থাকতে হবে।
#include<stdio.h> int main() { int num1=10, num2=12; printf(“num1 = %d and num2 = %d\n”, num1, num2); num1 = num1^num2; num2 = num1^num2; num1 = num1^num2; printf(“num1 = %d and num2 = %d\n”, num1, num2); return 0; }
এখানে num1 = 10 যার বাইনারি মান হচ্ছে 1010 এবং num2 = 12 যার বাইনারি 1100. এবার num1 = num1^num2; লাইনটি একটি বিশ্লেষণ করি।
num1 = 1010 ^ 1100
num1 | 1 | 0 | 1 | 0 |
num2 | 1 | 1 | 0 | 0 |
num1 = num1 ^ num2 | 0 | 1 | 1 | 0 |
num1 = 0110 |
এখানে আমরা num1 এবং num2 এর মধ্যে XOR অপারেশন চালিয়ে ফলাফল আবার num1 এর মধ্যে রাখলাম।
num2 = num1 ^ num2
num1 | 0 | 1 | 1 | 0 |
num2 | 1 | 1 | 0 | 0 |
num2 = num1 ^ num2 | 1 | 0 | 1 | 0 |
num2 = 1010 |
এখানে, num2 = 1010. এটি হচ্ছে বাইনারি ভ্যালু। বাইনারি সংখ্যাটিকে দশমিকে প্রকাশ করলে হয় 10.
অর্থাৎ, num2 = 10.
num1 = num1 ^ num2
num1 | 0 | 1 | 1 | 0 |
num2 | 1 | 0 | 1 | 0 |
num1 = num1 ^ num2 | 1 | 1 | 0 | 0 |
এখানে, num1 = 1100. এটি হচ্ছে বাইনারি ভ্যালু।
বাইনারি সংখ্যাটিকে দশমিকে প্রকাশ করলে হয় 12. অর্থাৎ, num1 = 12.
সুতরাং, num1 = 12 এবং num2 = 10. এটাই ছিলো আমাদের কাঙ্ক্ষিত ফলাফল।
সমীকরণ ব্যবহার করে এক লাইনে Swap করার পদ্ধতি।
#include<stdio.h>
int main()
{
int num1=10, num2=12;
printf(“num1 = %d and num2 = %d\n”, num1, num2);
num2 = (num1+num2)-(num1 = num2);
printf(“num1 = %d and num2 = %d\n”, num1, num2);
return 0;
}
এখানে, প্রথমে (num1 = num2) অংশের কাজ সম্পন্ন হয়। অর্থাৎ, প্রথমে num1 = num2 বা num1 = 12 হয়। তাহলে আমরা দেখতে পাচ্ছি যে, num1 = 12. এবার (num1+num2) অপারেশন টা সম্পন্ন হওয়ার পর সেখানে থেকে num1 মানটা বিয়োগ হয়ে যায়। তাহলে num2 = 10. যেহেতু আমরা জানি যে, (num1+num2) = 22 এবং এখান থেকে যদি num1 এর মানটি বিয়োগ হয় তাহলে num2 = 10 দাঁড়ায়। তাহলে বন্ধুরা, আমরা এই সমাধানটা ও পেয়ে গেলাম।
সবাইকে অনেক অনেক ধন্যবাদ জানাই ধৈর্য সহকারে পোষ্টটি পড়ার জন্য। সকলের জন্য শুভ কামনা রইলো।
আরো টিপস্ পেতে সাথে থাকুন এবং সবার সাথে শেয়ার করুন। কমেন্টে আপনার মতামত জানিয়ে সহযোগিতা করুন।