কম্পিউটার

ম্যাক্রোর কার্যকারিতা প্রদর্শনের জন্য C++ প্রোগ্রাম


ধরুন আমাদের একটি পূর্ণসংখ্যা অ্যারে দেওয়া হয়েছে যাতে বেশ কয়েকটি পূর্ণসংখ্যার মান রয়েছে। আমাদের অ্যারের ক্ষুদ্রতম মান এবং বৃহত্তম মানের মধ্যে পার্থক্য খুঁজে বের করতে হবে। এই সমস্যা সমাধানের জন্য, আমাদের ম্যাক্রো ব্যবহার করতে হবে। ইনপুটগুলি stdin থেকে নেওয়া হয়, এবং ফলাফল আবার stdout-এ মুদ্রিত হয়৷

সুতরাং, যদি ইনপুটটি অ্যারের মত হয় ={120, 589, 324, 221, 234}, তাহলে আউটপুট হবে উত্তর হল :469

বৃহত্তম মান 589 এবং ক্ষুদ্রতম মান 120 এর মধ্যে পার্থক্য হল 469৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • মিনি :=ইনফিনিটি
  • ম্যাক্সি :=ঋণাত্মক অসীম
  • v এর প্রতিটি i-এর জন্য, করুন
    • যদি mini> v[i] হয়, তাহলে
      • মিনি :=v[i]
    • যদি ম্যাক্সি
    • ম্যাক্সি :=v[i]
  • উত্তর :=ম্যাক্সি - মিনি
  • মুদ্রণ(উত্তর)
  • উদাহরণ

    আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    #define minmac(a, b) a = min(a, b)
    #define maxmac(a, b) a = max(a, b)
    #define INF ((1 << 31)-2)
    
    #define input(a) cin >> a
    #define toStr(a) string("The answer is :")
    
    #define FOO(a, b)
    #define foreach(a, b) for (int i = 0; i < a.size(); ++i)
    
    #include <iostream>
    #include <vector>
    using namespace std;
    
    FOO(minmac, <)
    FOO(maxmac, >)
    
    int main(){
       int n; cin >> n;
       vector<int> v(n);
       foreach(v, i) {
          input(v)[i];
       }
       int mini = INF;
       int maxi = -INF;
       foreach(v, i) {
          minmac(mini, v[i]);
          maxmac(maxi, v[i]);
       }
       int ans = maxi - mini;
       cout << toStr(The answer is :) <<' '<< ans;
       return 0;
    }

    ইনপুট

    5
    120 589 324 221 234

    আউটপুট

    The answer is : 469

    1. C++ এ log() ফাংশন

    2. নাওর-রিনগোল্ড সিউডো র্যান্ডম ফাংশন বাস্তবায়নের জন্য C++ প্রোগ্রাম

    3. C++ এ swap() ফাংশন

    4. একটি ফাংশন তৈরি করে প্রাইম নম্বর চেক করার জন্য C++ প্রোগ্রাম