কম্পিউটার টিউটোরিয়াল

সি++-এ পানির ট্যাঙ্কে n গোলক ডুবালে ট্যাঙ্ক ওভারফ্লো হবে কিনা তা যাচাই করার প্রোগ্রাম


একটি বক্রাকার পানির ট্যাঙ্কের ব্যাসার্ধ ও উচ্চতা, 'n' সংখ্যা গোলক গোলকর পানির আয়তন দেওয়া আছে। কাজ হলো গোলকগুলো ট্যাঙ্কে ডুবালে ট্যাঙ্ক ওভারফ্লো হবে কিনা তা যাচাই করা।

আয়তন গণনার সূত্র

বক্রাকার ট্যাঙ্ক (সিলিন্ডার)

3.14 * r * r * h

যেখানে, r = ট্যাঙ্কের ব্যাসার্ধ এবং h = ট্যাঙ্কের উচ্চতা

গোলক (স্ফিয়ার)

(4/3) * 3.14 * R * R * R

যেখানে, R = গোলকের ব্যাসার্ধ

ইনপুট

tank_height = 5, tank_radius = 2, water_volume = 10, capacity = 10, ball_radius = 2

আউটপুট

It will overflow

অনুসরণ করা পদ্ধতি

  • ট্যাঙ্কের ব্যাসার্ধ, উচ্চতা, ডুবানো গোলক সংখ্যা এবং গোলকের ব্যাসার্ধ ইনপুট নিন।
  • সিলিন্ডারের আয়তন সূত্র প্রয়োগ করে ট্যাঙ্কের ধারণক্ষমতা (ক্যাপাসিটি) গণনা করুন।
  • গোলকের আয়তন সূত্র প্রয়োগ করে একটি গোলকের আয়তন বের করুন।
  • পানির আয়তন নির্ধারণ করুন — গোলক ডুবালে পানির স্তর বাড়বে।
  • মোট আয়তন = পানির আয়তন + (গোলক সংখ্যা × একটি গোলকের আয়তন)।
  • শর্ত যাচাই করুন:
    • মোট আয়তন > ট্যাঙ্কের ধারণক্ষমতা হলে → ওভারফ্লো হবে।
    • মোট আয়তন ≤ ট্যাঙ্কের ধারণক্ষমতা হলে → ওভারফ্লো হবে না।

এলগরিদম

Step 1 → ফাংশন ঘোষণা: overflow(int H, int r, int h, int N, int R)
    float tank_cap = 3.14 * r * r * H
    float water_vol = 3.14 * r * r * h
    float balls_vol = N * (4.0/3.0) * 3.14 * R * R * R
    float vol = water_vol + balls_vol
    IF (vol > tank_cap)
        Print "It will overflow"
    ELSE
        Print "No, it will not overflow"

Step 2 → main() ফাংশনে:
    int tank_height = 5, tank_radius = 2, water_volume = 10, capacity = 10, ball_radius = 2
    overflow(tank_height, tank_radius, water_volume, capacity, ball_radius) কল করুন

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

void overflow(int H, int r, int h, int N, int R){
    float tank_cap = 3.14 * r * r * H;
    float water_vol = 3.14 * r * r * h;
    float balls_vol = N * (4.0/3.0) * 3.14 * R * R * R;
    float vol = water_vol + balls_vol;
    if (vol > tank_cap){
        cout << "It will overflow";
    } else {
        cout << "No, it will not overflow";
    }
}

int main(){
    int tank_height = 5, tank_radius = 2, water_volume = 10, capacity = 10, ball_radius = 2;
    overflow(tank_height, tank_radius, water_volume, capacity, ball_radius);
    return 0;
}

আউটপুট

উপরোক্ত কোড রান করলে নিচের আউটপুট আসবে:

It will overflow

  1. C++ প্রোগ্রাম: DFS ব্যবহার করে অনডিরেক্টেড গ্রাফের কানেক্টিভিটি চেক করা

  2. C++ প্রোগ্রাম: BFS ব্যবহার করে ডিরেক্টেড গ্রাফের কানেক্টিভিটি চেক করা

  3. C++ প্রোগ্রাম: BFS ব্যবহার করে অনডিরেক্টেড গ্রাফের কানেক্টিভিটি চেক করা

  4. C++ প্রোগ্রাম: DFS ব্যবহার করে নির্দেশিত গ্রাফের কানেক্টিভিটি যাচাই