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