// [このプログラムの目的]卵型の体積計算,
// 2009年11月29日(日)

// 曲線の方程式:(x*x+y*y)**2=a*(x**3)+(a-b)*x*(y**2)
// a=4, b=3.2 (a=1, b=0.8 でも実質的に同じ形) 
// の場合が最も実際の卵に近い。

// なお、一般的条件は b<=a で、b=0 のときは円となる。

// file name: volume.c

#include< stdio.h>
#include< math.h>

void main(void)
{
	double a,b,v1,v2.v3,v,pi;

//  定数設定
	for(;;)
	{
		printf("定数 a の入力; a= ? ");
		scanf("%lf",&a);
		if(a>0)
		{
			break;
		}
		else
		{
printf("a を正の値で再入力して下さい。\n");
		}
	}
	for(;;)
	{
		printf("定数 b の入力; b= ? ");
		scanf("%lf",&b);
		if(b>=0&&b<=a)
		{
			break;
		}
		else
		{
printf("bを0=< b <=aの値で再入力して下さい。\n");
		}
	}

	printf("\n");

	pi=3.1415927;

//  計算実行
	if(b==0)
	{
		v=pi*a*a*a/6;
	}
	else
	{
v1=(a+b)*(a+b)*(a+b)*a/(6*b);
v2=(a+b)*(a+b)*(a+b)*(a+b)*(a+b);
v3=(a-b)*(a-b)*(a-b)*(a-b)*(a-b);
v=(pi/2)*(v1-a*a*a/6-a*a*b/2-(v2-v3)/(60*b*b));
	}

	printf("この卵の体積は; V=%lf\n",v);
	printf("\n");

	printf("end\n");
}// the end of the program



戻る