এই রিলেশনাল অপারেশন খুব দরকারী. কিন্তু এমন কিছু ঘটনা রয়েছে যেখানে আমাদের কেবলমাত্র একটি ভেরিয়েবল অন্যটির চেয়ে বড় বা ছোট কিনা তা নয়, এর মান পেতেও প্রয়োজন। যদিও এটি 'যদি' বিবৃতি এবং সাধারণ রিলেশনাল ক্রিয়াকলাপগুলির সাথে সহজে করা হয়, তবে C ভাষাটি এমন ফাংশনগুলির সাথে ম্যাক্রোও প্রদান করে যা দুটি ভেরিয়েবলের মধ্যে সর্বাধিক বা সর্বনিম্ন মান প্রদান করে।
এই লিনাক্সহিন্ট নিবন্ধে, আপনি শিখবেন কিভাবে দুটি ভেরিয়েবলের ন্যূনতম মান খুঁজে পেতে ম্যাক্রো MIN() ব্যবহার করতে হয়। আমরা আপনাকে সিনট্যাক্স, কলিং পদ্ধতি এবং এটি যে ডেটা গ্রহণ করে তা দেখাব। তারপরে, আমরা এটি কীভাবে কাজ করে তার একটি বিবরণ দেখব এবং এই ম্যাক্রো প্রযোজ্য অভিব্যক্তি এবং সূত্রটি পর্যালোচনা করব।
তারপরে আমরা একটি ব্যবহারিক উদাহরণে যা শিখেছি তা প্রয়োগ করি যার মধ্যে কোড স্নিপেট এবং চিত্রগুলি অন্তর্ভুক্ত রয়েছে যা দেখায় কিভাবে ম্যাক্রো MIN() এর ইনপুট হিসাবে বিভিন্ন ডেটা প্রকারের সাথে সর্বনিম্নটি খুঁজে পাওয়া যায়।
সি ল্যাঙ্গুয়েজে MIN() ম্যাক্রোর সিনট্যাক্স
MIN ( ক , খ )C ভাষায় MIN() ম্যাক্রোর বর্ণনা
ম্যাক্রো MIN() 'a' এবং 'b' ভেরিয়েবলের মধ্যে সর্বনিম্ন মান প্রদান করে। ম্যাক্রো MIN() দ্বারা প্রদর্শিত অভিব্যক্তিটি একটি সত্য/মিথ্যা শর্ত যেখানে একটি রিলেশনাল অপারেশন '<' 'a' এবং 'b' ভেরিয়েবলের মধ্যে প্রয়োগ করা হয়। যদি 'a' 'b' এর থেকে কম হয়, 'a' ফেরত দেওয়া হয়। যদি 'b' 'a' থেকে কম হয়, 'b' ফেরত দেওয়া হয়।
#মিন(a,b)((a)<(b))?(a):(b)) সংজ্ঞায়িত করুন
ম্যাক্রো MIN() তার ইনপুট এবং আউটপুটগুলিতে সমস্ত ডেটা প্রকারের সাথে কাজ করে একমাত্র নিয়মের সাথে যে উভয় ইনপুট ভেরিয়েবল অবশ্যই সংখ্যাসূচক মান হতে হবে।
এই ম্যাক্রোটি 'sys' ফোল্ডারের 'param.h' হেডারে সংজ্ঞায়িত করা হয়েছে। এটি ব্যবহার করার জন্য, আমাদের এটিকে আমাদের কোডে নিম্নরূপ সন্নিবেশ করতে হবে:
# অন্তর্ভুক্ত
ম্যাক্রো MIN() দিয়ে দুটি পূর্ণসংখ্যার ভেরিয়েবলের মধ্যে ন্যূনতম কীভাবে খুঁজে পাবেন
এই উদাহরণে, আমরা int-এর “a” এবং “b” ভেরিয়েবল তৈরি করি যেখানে আমরা একটি নির্বিচারে মান নির্ধারণ করি এবং যেখান থেকে আমরা ম্যাক্রো MIN() কল করে সর্বনিম্ন খুঁজে পাই। তারপর আমরা প্রিন্টফ() ফাংশন ব্যবহার করে রিটার্ন করা মান আউটপুট করি।
এটি করার জন্য, আমরা 'stdio.h' এবং 'param.h' শিরোনাম অন্তর্ভুক্ত করি এবং void টাইপের একটি main() ফাংশন খুলি। এটিতে, আমরা 'a' এবং 'b' পূর্ণসংখ্যা সংজ্ঞায়িত করি এবং তাদের একটি র্যান্ডম মান দিয়ে বরাদ্দ করি। আমরা ফলাফল সংরক্ষণ করতে 'c' পূর্ণসংখ্যাও সংজ্ঞায়িত করি।
তারপর, আমরা ম্যাক্রোকে MIN() কল করি এবং ইনপুট আর্গুমেন্ট হিসাবে 'a' এবং 'b' এবং আউটপুট আর্গুমেন্ট হিসাবে 'c' পাস করি। আমরা printf() ফাংশন কল করে প্রত্যাবর্তিত ফলাফল প্রদর্শন করি। নিম্নলিখিত এই উদাহরণের জন্য কোড:
# অন্তর্ভুক্ত করুন# অন্তর্ভুক্ত
অকার্যকর প্রধান ( ) {
int ক = 32 ;
int খ = 14 ;
int গ ;
গ = MIN ( ক , খ ) ;
printf ( ' \n সর্বনিম্ন হল %i \n ' , গ ) ;
}
এর পরে, আমরা এই কোডটির সংকলন এবং সম্পাদন সহ একটি চিত্র দেখতে পাচ্ছি। আমরা দেখতে পাচ্ছি, ম্যাক্রো MIN() এই ক্ষেত্রে “b” এর মান প্রদান করে।
আমরা যদি ডাবল টাইপের ভেরিয়েবল ব্যবহার করি তাহলে একই রকম হবে।
# অন্তর্ভুক্ত করুন# অন্তর্ভুক্ত
অকার্যকর প্রধান ( ) {
দ্বিগুণ ক = 3 ;
দ্বিগুণ খ = 1 ;
দ্বিগুণ গ ;
গ = MIN ( ক , খ ) ;
printf ( ' \n ন্যূনতম দ্বিগুণ a এবং b হল %f \n ' , গ ) ;
}
ফ্লোটিং পয়েন্ট ভেরিয়েবল সহ সর্বনিম্ন এবং সর্বোচ্চ
ম্যাক্রো MIN() একটি দরকারী ফাংশন, কিন্তু ফ্লোটিং পয়েন্ট মান ব্যবহার করে এমন ভেরিয়েবলের জন্য এর ব্যবহার সুপারিশ করা হয় না। এই ধরনের ন্যূনতম মান খুঁজে পেতে, গণিত লাইব্রেরি ফাংশনগুলির একটি সেট প্রদান করে যা 'math.h' হেডারে সংজ্ঞায়িত করা হয়। এই সেটটিতে fmin(), fminf(), এবং fminl() ফাংশন রয়েছে। আসুন এই প্রতিটি ফাংশনের জন্য নিম্নলিখিত সিনট্যাক্সটি দেখি:
দ্বিগুণ fmin ( দ্বিগুণ এক্স , দ্বিগুণ এবং ) ;ভাসা fminf ( ভাসা এক্স , ভাসা এবং ) ;
দীর্ঘ দ্বিগুণ fminl ( দীর্ঘ দ্বিগুণ এক্স , দীর্ঘ দ্বিগুণ এবং ) ;
fmin() ফাংশন ফ্লোটিং পয়েন্ট সহ ডাবল ডাবল (8 বাইট) টাইপের উপর কাজ করে। fminf() ফাংশন ফ্লোট (4 বাইট) টাইপের ডেটা নিয়ে কাজ করে, যখন fminl() লং ডাবল (16 বাইট) টাইপের ডেটা নিয়ে কাজ করে। এছাড়াও, এই ফাংশনগুলি অ-সংখ্যাসূচক মান (NaN) প্রক্রিয়া করে।
উপসংহার
এই লিনাক্সহিন্ট নিবন্ধে, দুটি ভেরিয়েবলের মধ্যে ন্যূনতম মান খুঁজে পেতে ম্যাক্রো MIN() ব্যবহার করার জন্য আপনার যা জানা দরকার তা আমরা ব্যাখ্যা করেছি। আমরা এই ম্যাক্রোর সিনট্যাক্স এবং সংজ্ঞার পাশাপাশি সূত্রটি দেখেছি যা দুটি ইনপুট ভেরিয়েবলের মধ্যে একটি 'এর চেয়ে কম' অপারেশন (<) এর জন্য একটি সত্য/মিথ্যা শর্ত প্রয়োগ করে।
তারপরে আমরা কোড স্নিপেট এবং চিত্রগুলি ব্যবহার করে যে তত্ত্বটি শিখেছি সেটিকে প্রয়োগ করেছি বিভিন্ন ধরণের ডেটার সাথে কীভাবে কাজ করতে হয় তা দেখানোর জন্য৷ আমরা আপনাকে ফ্লোটিং পয়েন্ট নম্বরগুলির সাথে মোকাবিলা করার জন্য প্রস্তাবিত বিকল্পগুলিও দেখিয়েছি যেখানে MIN() ব্যবহার বাঞ্ছনীয় নয়৷