C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の水タンクに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→ declare function to check whether tank will overflow or not
   void overflow(int H, int r, int h, int N, int R)
      declare float tank_cap = 3.14 * r * r * H
      declare float water_vol = 3.14 * r * r * h
      declare float balls_vol = N * (4 / 3) * 3.14 * R * R * R
      declare float vol = water_vol + balls_vol
      IF (vol > tank_cap)
         Print it will overflow
      End
      Else
         Print No it will not overflow
      End
Step 2→ In main()
   Declare int tank_height = 5, tank_radius = 2, water_volume = 10,
   capacity = 10, ball_radius = 2
   call overflow(tank_height, tank_radius, water_volume, capacity, ball_radius)

#include <bits/stdc++.h>
using namespace std;
//check whether tank will overflow or not
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 / 3) * 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. BFSを使用して無向グラフの接続性をチェックするC++プログラム

    グラフの接続性を確認するために、トラバーサルアルゴリズムを使用してすべてのノードをトラバースしようとします。トラバーサルの完了後、アクセスされていないノードがある場合、グラフは接続されていません。 無向グラフの場合、1つのノードを選択し、そこからトラバースします。 この場合、トラバーサルアルゴリズムは再帰的なBFSトラバーサルです。 入力 −グラフの隣接行列 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0

  2. DFSを使用して有向グラフの接続性をチェックするC++プログラム

    グラフの接続性を確認するために、トラバーサルアルゴリズムを使用してすべてのノードをトラバースしようとします。トラバーサルの完了後、アクセスされていないノードがある場合、グラフは接続されていません。 有向グラフの場合、接続を確認するためにすべてのノードからトラバースを開始します。 1つのエッジに外向きのエッジのみがあり、内向きのエッジがない場合があるため、他の開始ノードからノードにアクセスできなくなります。 この場合、トラバーサルアルゴリズムは再帰的なDFSトラバーサルです。 入力 :グラフの隣接行列 0 1 0 0 0 0 0 1 0