গোলকের ভলিউম এবং সারফেস এরিয়া ক্যালকুলেট করার জন্য জ্যামিতিক সূত্রগুলো প্রয়োগ করা হয়।.radius (ত্রিজ্যা) দিয়ে উভয় মান বের করা যায়।
সূত্রগুলো
- সারফেস এরিয়া (পৃষ্ঠফল): A = 4πr²
- ভলিউম (ঘনফল): V = (4/3)πr³
এখানে π (পাই) এর মান প্রায় ৩.১৪১৫৯ বা ২২/৭ ব্যবহার করা হয়।
বেসিক উদাহরণ
using System;
public class SphereCalculator
{
public static void Main()
{
double r = 15; // ত্রিজ্যা
double pi = Math.PI; // .NET-এ Math.PI = 3.14159265358979...
// সারফেস এরিয়া = 4πr²
double surfaceArea = 4 * pi * r * r;
// ভলিউম = (4/3)πr³
double volume = (4.0 / 3.0) * pi * r * r * r;
Console.WriteLine($"ত্রিজ্যা: {r}");
Console.WriteLine($"সারফেস এরিয়া: {surfaceArea:F2}");
Console.WriteLine($"ভলিউম: {volume:F2}");
// ২২/৭ ব্যবহার করে (অনুমানিক)
double piApprox = 22.0 / 7.0;
double areaApprox = 4 * piApprox * r * r;
double volApprox = (4.0 / 3.0) * piApprox * r * r * r;
Console.WriteLine($"\n২২/৭ দিয়ে (অনুমানিক):");
Console.WriteLine($"সারফেস এরিয়া: {areaApprox:F2}");
Console.WriteLine($"ভলিউম: {volApprox:F2}");
}
}
আউটপুট
ত্রিজ্যা: 15
সারফেস এরিয়া: 2827.43
ভলিউম: 14137.17
২২/৭ দিয়ে (অনুমানিক):
সারফেস এরিয়া: 2828.57
ভলিউম: 14142.86
নোট: মূল উদাহরণের বাগ
মূল কোডে `(22 / 7)` লেখা হয়েছে যা ইন্টিজার ডিভিশন করে ৩ রিটার্ন করে (২২/৭ = ৩ ইন্টিজারে)। সঠিক হচ্ছে `22.0 / 7.0` বা `22 / 7.0`।
// ভুল
double cal_area = 4 * (22 / 7) * r * r; // 4 * 3 * 225 = 2700 ❌
// সঠিক
double cal_area = 4 * (22.0 / 7.0) * r * r; // 4 * 3.1428... * 225 ≈ 2828.57 ✓
রিয়usable মেথড তৈরি
public static class SphereMath
{
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;
// আউটপুট ফরম্যাটিংসহ
public static void PrintSphereInfo(double radius)
{
Console.WriteLine($"=== গোলক তথ্য (r = {radius}) ===");
Console.WriteLine($"সারফেস এরিয়া: {SurfaceArea(radius):F4}");
Console.WriteLine($"ভলিউম: {Volume(radius):F4}");
Console.WriteLine($"ডায়ামিটার: {2 * radius:F4}");
Console.WriteLine($"পরিধি (Great Circle): {2 * Math.PI * radius:F4}");
}
}
// ব্যবহার
SphereMath.PrintSphereInfo(15);
ইনপুট ভ্যালিডেশনসহ ভার্সন
public static (double SurfaceArea, double Volume) CalculateSphere(double radius)
{
if (radius < 0)
throw new ArgumentException("ত্রিজ্যা নেগেটিভ হতে পারে না", nameof(radius));
if (double.IsNaN(radius) || double.IsInfinity(radius))
throw new ArgumentException("ত্রিজ্যা অবৈধ", nameof(radius));
return (4 * Math.PI * radius * radius, (4.0 / 3.0) * Math.PI * radius * radius * radius);
}
সারসংক্ষেপ
- সূত্র: Surface = 4πr², Volume = ⁴⁄₃πr³
- পাই মান: `Math.PI` ব্যবহার করুন (২২/৭ অনুমানিক)
- ইন্টিজার ডিভিশন ট്ര্যাপ: `22/7` → ৩, `22.0/7.0` → ৩.১৪২৮...
- ফরম্যাটিং: `:F2` বা `:F4` দিয়ে ডেসিমেল প্লেস কন্ট্রোল করুন