เส้นรอบรูปทรงกระบอก (Perimeter of Cylinder)
หมายเหตุ: "Perimeter of Cylinder" ไม่ใช่คำศัพท์มาตรฐาน ทรงกระบอกเป็น 3D ไม่มี "เส้นรอบรูป" แต่โค้ดต้นฉบับคำนวณ 2 × (diameter + height) ซึ่งอาจหมายถึง:
- เส้นรอบรูปของ หน้าตัดขวาง (Rectangle: 2×(d+h)) - ผิด เพราะหน้าตัดขวางเป็นสี่เหลี่ยมผืนผ้ากว้าง d สูง h
- หรืออาจสับสนกับ Surface Area หรือ Circumference
สูตรมาตรฐานของทรงกระบอก
| คุณสมบัติ | สูตร |
|---|---|
| เส้นรอบวงฐาน (Circumference) | πd = 2πr |
| พื้นที่ฐาน (Base Area) | πr² |
| พื้นที่ผิวข้าง (Lateral Surface) | 2πrh = πdh |
| พื้นที่ผิวรวม (Total Surface) | 2πr(r+h) = πd(r+h) |
| ปริมาตร (Volume) | πr²h |
ตัวอย่างโค้ด (ตามต้นฉบับ)
import java.io.*;
public class Demo {
static int findPerimeter(int diameter, int height) {
return 2 * (diameter + height);
}
public static void main(String[] args) {
int dia = 7;
int ht = 15;
System.out.println("ผลลัพธ์ตามโค้ดต้นฉบับ (2×(d+h)): " + findPerimeter(dia, ht) + " หน่วย");
}
}
ผลลัพธ์
ผลลัพธ์ตามโค้ดต้นฉบับ (2×(d+h)): 44 หน่วย
โค้ดที่ถูกต้องทางคณิตศาสตร์
public class CylinderCalculator {
public static double circumference(double radius) {
return 2 * Math.PI * radius;
}
public static double lateralSurfaceArea(double radius, double height) {
return 2 * Math.PI * radius * height;
}
public static double totalSurfaceArea(double radius, double height) {
return 2 * Math.PI * radius * (radius + height);
}
public static double volume(double radius, double height) {
return Math.PI * radius * radius * height;
}
public static void main(String[] args) {
double r = 3.5, h = 15;
System.out.printf("รัศมี: %.1f, สูง: %.1f%n", r, h);
System.out.printf("เส้นรอบวงฐาน: %.2f%n", circumference(r));
System.out.printf("พื้นที่ผิวข้าง: %.2f%n", lateralSurfaceArea(r, h));
System.out.printf("พื้นที่ผิวรวม: %.2f%n", totalSurfaceArea(r, h));
System.out.printf("ปริมาตร: %.2f%n", volume(r, h));
}
}
ผลลัพธ์ที่ถูกต้อง
รัศมี: 3.5, สูง: 15.0 เส้นรอบวงฐาน: 21.99 พื้นที่ผิวข้าง: 329.87 พื้นที่ผิวรวม: 412.33 ปริมาตร: 577.27
สรุป
โค้ดต้นฉบับคำนวณ 2×(d+h) ซึ่งไม่ใช่คุณสมบัติมาตรฐานของทรงกระบอก ควรใช้สูตรที่ถูกต้องตามตารางด้านบน