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

คำนวณปริมาตรและพื้นที่ผิวทรงกลมใน C#

ภาพรวม

สูตรทรงกลม: พื้นที่ผิว = 4πr², ปริมาตร = (4/3)πr³

โค้ดตัวอย่าง


using System;

public class Demo {
    public static void Main() {
        double r = 15; // รัศมี

        // ใช้ Math.PI แทน 22/7 เพื่อความแม่นยำ
        double area = 4 * Math.PI * r * r;
        double volume = (4.0 / 3.0) * Math.PI * r * r * r;

        Console.WriteLine($"Radius: {r}");
        Console.WriteLine($"Surface Area: {area:F2}");
        Console.WriteLine($"Volume: {volume:F2}");

        // เปรียบเทียบกับ 22/7
        double areaApprox = 4 * (22.0 / 7.0) * r * r;
        double volumeApprox = (4.0 / 3.0) * (22.0 / 7.0) * r * r * r;
        Console.WriteLine($"\\nUsing 22/7 approximation:");
        Console.WriteLine($"Surface Area: {areaApprox:F2}");
        Console.WriteLine($"Volume: {volumeApprox:F2}");
    }
}

ผลลัพธ์


Radius: 15
Surface Area: 2827.43
Volume: 14137.17

Using 22/7 approximation:
Surface Area: 2828.57
Volume: 14142.86

ข้อผิดพลาดในโค้ดต้นฉบับ

โค้ดต้นฉบับใช้ 22 / 7 ซึ่งเป็น integer division ผลลัพธ์คือ 3 (ไม่ใช่ 3.14...) ทำให้คำตอบผิดมาก


// ผิด
cal_area = 4 * (22 / 7) * r * r; // 22/7 = 3 (int division!)

// ถูกต้อง
cal_area = 4 * (22.0 / 7.0) * r * r; // ใช้ floating point
// หรือดีกว่า
cal_area = 4 * Math.PI * r * r;

Class แบบ Reusable


public static class Sphere {
    public static double SurfaceArea(double radius) => 4 * Math.PI * radius * radius;
    public static double Volume(double radius) => (4.0 / 3.0) * Math.PI * radius * radius * radius;
}

// ใช้งาน
double r = 15;
Console.WriteLine(Sphere.SurfaceArea(r));
Console.WriteLine(Sphere.Volume(r));

สูตรเรขาคณิต 3 มิติอื่นๆ

รูปทรงSurface AreaVolume
ทรงกลม (Sphere)4πr²4/3πr³
ทรงกระบอก (Cylinder)2πr(h+r)πr²h
ทรงกรวย (Cone)πr(r+√(h²+r²))1/3πr²h
ทรงสี่เหลี่ยม (Box)2(lw+lh+wh)lwh