Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

คำนวณเส้นรอบรูปทรงกระบอกใน Java

เส้นรอบรูปทรงกระบอก (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) ซึ่งไม่ใช่คุณสมบัติมาตรฐานของทรงกระบอก ควรใช้สูตรที่ถูกต้องตามตารางด้านบน