ภาพรวม
สูตรทรงกลม: พื้นที่ผิว = 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 Area | Volume |
|---|---|---|
| ทรงกลม (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 |