กำหนดด้วยรัศมีและความสูงของถังเก็บน้ำทรงกระบอก จำนวน '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