// C    1-80  FATİH
// http://www.engr.uky.edu/rtl/Catalog/tablecon.html#C1

import javax.swing.*;
import java.util.*;

public class shapeFactor
{
public double[] input_df(int no)
{ String s=name_df(no)+"\nenter : ";
  String s1[]=varible_df(no);
  for(int i=0;i<s1.length;i++) {s+=s1[i]+" ";}
  String s2=JOptionPane.showInputDialog(s);
  StringTokenizer token=new StringTokenizer(s2);
     int n=token.countTokens()-1;
     int m=n+1;
     double a[]=new double[m];
     int j=0;           
     while(token.hasMoreTokens())
     {
     Double ax=new Double(token.nextToken());
     a[j++]=ax.doubleValue();
     }
     return a;
     }
     public double[] input_ff(int no)
{ String s=name_ff(no)+"\nenter : ";
  String s1[]=varible_ff(no);
  for(int i=0;i<s1.length;i++) {s+=s1[i]+" ";}
  String s2=JOptionPane.showInputDialog(s);
  StringTokenizer token=new StringTokenizer(s2);
     int n=token.countTokens()-1;
     int m=n+1;
     double a[]=new double[m];
     int j=0;           
     while(token.hasMoreTokens())
     {
     Double ax=new Double(token.nextToken());
     a[j++]=ax.doubleValue();
     }
     return a;
     }
public double F_dd(int no,double x[])
{ double z=0;
 if(no==1)
 {z=Math.cos(x[0])*Math.cos(x[1])/(Math.PI*x[2]*x[2])*x[3];}
 return z;
}
public String[] varible_dd(int no)
{  String y[]={""};
   if(no==1)
   {String y1[]={'\u0398'+"1",'\u0398'+"2","S","dA2"};y=y1;}
   return y;
}
public String name_dd(int n)
{String x[]=
{"Two elemental areas in arbitrary configuration",
"Two elemental areas lying on parallel lines",
"Corner element on end of square channel to sectional element on channel wall",
"Plane element to a differential coaxial ring parallel to the element",
"Plane element on and normal to axis to inside of coaxial differential circular ring",
"Bounding element on wall of tapered duct to element further along duct",
"Element on interior surface of right circular cylinder to coaxial differential ring in cylinder base",
"Element on interior surface of right circular cone to coaxial differential ring in cone base",
"Differential element on interior of hemisphere to a coaxial differential ring element on the base"};
return x[n];
}
public double F_df(int no,double x[])
{ double z=0;
 if(no==1)
 {z=0.5*(1.0+Math.cos(x[0]));}
 else if(no==2)
 {z=0.5*(1.0+Math.cos(x[0]));}
 else if(no==3)
 { double A=x[0]/x[2];
   double B=x[1]/x[2];
   double A1=Math.sqrt(1+A*A);
   double B1=Math.sqrt(1+B*B);
	 z=1.0/(2.0*Math.PI)*(A/A1*Math.atan(B/A1)+B/B1*Math.atan(A/B1));
 }
 return z;
}
public String[] varible_df(int no)
{  String y[]={""};
   if(no==1)
   {String y1[]={""+'\u03A6'};y=y1;}
   else if(no==2)
   {String y1[]={""+'\u03BB'};y=y1;}
   else if(no==3)
   {String y1[]={"a","b","c"};y=y1;}
   return y;
}

public String name_ff(int n)
{String x[]=
{

"","Two infinitely long, directly opposed parallel plates of the same finite width.",
"Two infinitely long parallel plates of different widths; centerlines of plates are connected by perpendicular between plates.",
"Two infinitely long plates of unequal widths h and w, having one common edge, and at an angle of 90o to each other.",
"Two infinitely long plates of equal widths having one common edge and an included angle a.",
"Two infinitely long plates of unequal width having a common edge with an included angle a.",
"Infinitely long enclosure formed by three planar or convex surfaces.",
"Infinite plane to row of parallel cylinders, or rows of in-line cylinders",
"Infinite plane to first, second, and first plus second rows of infinitely long parallel tubes of equal diameter in equilateral triangular array.",
"Top surface of finite rectangle tilted relative to an infinite plane.",
"Rectangles having a common edge and forming an arbitrary angle; one rectangle infinitely long.",
"Identical, parallel, directly opposed rectangles.",
"Coaxial parallel squares of different edge length.",
"Rectangle to rectangle in a parallel plane; all boundaries are parallel or perpendicular to x and x boundaries.",
"Two finite rectangles of same length, having one common edge, and at an angle of 90o to each other.",
"Rectangle to disk in perpendicular plane. Disk is symmetrically centered with rectangle, and touches rectangle center",
"Two rectangles with one common edge and included angle of o.",
"Rectangle 1 to rectangle 2 in a plane intersecting the plane containing rectangle 1. All rectangle edges are parallel or perpendicular to the line of intersection of the containing planes.",
"Parallel areas on interior ends of tapered duct",
"Right triangle to perpendicular rectangle with common side.",
"Isosceles triangle to perpendicular rectangle: Base of triangle and rectangle have common edge.",
"Right triangle with side of length one-half that of perpendicular rectangle to rectangle.",
"Perpendicular right triangles with one equal edge.",
"Right triangle to perpendicular right triangle with common edge; apexes at common point.",
"Right triangle to perpendicular right triangle with common edge; apexes at opposite ends.",
"Triangle to perpendicular rectangle.",
"Right triangle to perpendicular right triangle of unequal size; apexes at opposite ends of shared edge.",
"Right triangle to perpendicular right triangle of unequal size; apexes at common point.",
"Right isosceles triangle to adjacent congruent perpendicular triangle connected along short side.",
"Parallel directly opposed right triangles.",
"Parallel directly opposed rectangles with triangular extensions.",
"Floor to end wall with triangular extension.",
"Side wall to end wall with triangular extension.",
"Between all combinations of surfaces in a hexagonal prism.",
"Between parallel regular polygons.",
"One side of rectangle to one quarter of parallel cylinder of same length as rectangle; cylinder is bisected longitudinally by plane containing rectangle.",
"Rectangle to perpendicular circular segment.",
"Horizontal panel to adjacent vertical panel with circular segment on top.",
"Side wall to end wall with circular segment extension.",
"Circular disk to parallel right triangle; normal from center of circle passes through one acute vertex.",
"Disk to parallel coaxial disk of same radius.",
"Disk to parallel coaxial disk of unequal radius.",
"Disk to second coaxial disk inside cone.",
"Nonintersecting disks with intersecting axes; axes intersect between disks; and disks can be inscribed in sphere of radius r3 (i.e. r12 + h12 = r22 + h22 = r32)",
"Nonintersecting disks with intersecting axes; axes do not intersect between disks. Disks can be inscribed in sphere of radius r3 (i.e. r12 + h12 = r22 + h22 = r32)",
"Sector of circular disk to sector of parallel circular disk.",
"Parallel opposed circular segments.",
"Disk to coaxial annular ring on parallel disk.",
"Disk to coaxial cone.",
"Annular Disk to coaxial truncated cone; cone can be convergent (+a) or divergent (-a).",
"Disk to a coaxial paraboloid.",
"Disk to coaxial ellipsoid.",
"Ring to parallel coaxial ring.",
"Disk to coaxial disk of equal radius with intervening coaxial cylinder",
"Coaxial annular rings separated by coaxial cylinder.",
"Annular ring between two concentric cylinders to inside of outer cylinder; inner radius of ring is equal to radius of inner cylinder.",
"Ring on annulus between coaxial cylinders to inner surface of outer cylinder.",
"Annular ring around base of hemisphere to hemisphere.",
"Ring around base of hemisphere to section of hemisphere.",
"Annular ring to attached coaxial paraboloid.",
"Annular ring to attached coaxial ellipsoid.",
"Exterior of infinitely long cylinder to symmetrically placed infinitely long parallel rectangle.",
"Exterior of infinitely long cylinder to unsymmetrically placed infinitely long parallel plate.",
"Concentric cylinders of infinite length.",
"Exterior of infinitely long cylinder to interior of concentric semicylinder.",
"Interior of infinitely long semicylinder to itself when concentric coaxial cylinder is present.",
"Interior of infinitely long semicylinder 1 to interior of semicylinder 2 when concentric parallel cylinder 3 is present.",
"Infinitely long cylinder to non-concentric cylindrical enclosure.",
"Infinitely long parallel cylinders of the same diameter.",
"Infinite parallel cylinders of different radius.",
"Infinitely long facing parallel semicylinders of equal radius.",
"Infinitely long semicylinder to parallel infinitely long semicylinder of same radius.",
"Infinitely long cylinder to other cylinders in square array of parallel cylinders of equal diameter.",
"Infinitely long cylinder to other cylinders in equilateral triangular array of parallel cylinders of equal diameter.",
"Finite-length cylinder to rectangle with two edges parallel to cylinder axis and of length equal to cylinder.",
"Finite cylinder to finite rectangle of same length.",
"Outside surface of cylinder to perpendicular right triangle; triangle is in plane of cylinder base with one vertex of triangle at center of base.",
"Outer surface of cylinder to annular disk at end of cylinder.",
"Inner surface of right circular cylinder to itself.",
"Base of right circular cylinder to inside surface of cylinder.",
"Disk in cylinder base or top to inside surface of right circular cylinder."

};
return x[n];
}
public double F_ff(int no,double x[])
{ double z=0;
 if(no==1)
 {double H=x[0]/x[1];
 z=Math.sqrt(1.0+H*H)-H;}
 else if(no==2)
 {double B=x[1]/x[0];
 double C=x[2]/x[0];
 z=(1/(2*B))*(Math.sqrt((B+C)*(B+C)+4)-Math.sqrt((C-B)*(C-B)+4));}
  else if(no==3)
 {double H=x[0]/x[1];
 z=0.5*(1+H-Math.sqrt(1+H*H));}
 else if(no==4)
 { z=1-Math.sin(x[0]/2);}
  else if(no==5)
  {double A=x[0]/x[1];
  z=(A+1-Math.sqrt(A*A+1-2*A*Math.cos(x[2])))/2;}
  else if(no==6)
  {double A1=x[0];
  double A2=x[1];
  double A3=x[2];
  z=(A1+A2-A3)/(2*A1);}
  else if(no==7)
  {double D=x[0]/x[1];
   z= 1-Math.sqrt(1-D*D)+D*Math.atan(Math.sqrt((1-D*D)/D*D));}
  else if(no==8)
  {double R=x[0]/x[1];
   z= R;}
  else if(no==9)
  { z=(1-Math.cos(x[0]))/2;}
  else if(no==10)
  { double A=x[0]/x[1];
  z=A;
  }
  else if(no==11)
  {double X=x[0]/x[2];
  double Y=x[1]/x[2];
  double x1=Math.sqrt(((1+X*X)*(1+Y*Y))/(1+X*X+Y*Y));
  double x2=X*Math.sqrt(1+Y*Y);
  double x3=Math.sqrt(1+Y*Y);
  double x4=Y*Math.sqrt(1+X*X);
  double x5=Math.sqrt(1+X*X);
  z=2.0/(Math.PI*X*Y)*(Math.log(x1)+x2*Math.atan2(X,x3)+x4*Math.atan2(Y,x5)
  -X*Math.atan(X)-Y*Math.atan(Y));}
  else if(no==12)
  {double A=x[0]/x[2];
   double B=x[1]/x[0];
   double X=A*(1+B);
   double Y=A*(1-B);
  z=(1/Math.PI*A*A)*(Math.log(Math.pow((A*A*(1+B*B)+2),2)/((Y*Y+2)*(X*X+2)))+Math.sqrt(Y*Y+4)*(Y*Math.atan(Y/Math.sqrt(Y*Y+4)-X*Math.atan(X/Math.sqrt(Y*Y+4)))+Math.sqrt(X*X+4)*(X*Math.atan(X/Math.sqrt(X*X+4)-Y*Math.atan(Y/Math.sqrt(X*X+4))))));
  }
  else if(no==13)
  {
  z=0.00;
  }
  else if(no==14)
  {double H=x[0]/x[2];
  double W=x[1]/x[2];  
  z=(1/W*Math.PI)*(W*Math.atan(1/W)+H*Math.atan(1/H)-Math.sqrt(H*H-W*W)*Math.atan(Math.sqrt(1/(H*H+W*W)))+(1/4)*Math.log((1+W*W)*(1+H*H)/(1+W*W+H*H)*Math.pow(W*W*(1+W*W+H*H)/(1+W*W)/(W*W+H*H),W*W)*Math.pow(H*H*(1+W*W+H*H)/(1+H*H)/(W*W+H*H),H*H)));
  }
  else if(no==15)
  { double B=x[0];
  	double L=x[1];
  z=(0.5974*Math.pow(0.5*L+L*L,0.4976)*Math.pow(0.05*B+B*B,0.2091)+0.5974*Math.pow(0.1*B*L+(B*L*B*L),0.0613))/(Math.pow(L+L*L*L*L,0.4685)+Math.pow(B+B*B*B*B,0.30775)+Math.pow(B*L+(B*L*B*L),0.7457));
  }
  else if(no==16)
  {double A=x[0]/x[2];
   double B=x[1]/x[2];
   double C=A*A+B*B-2*A*B*Math.cos(x[3]);
   double D=Math.sqrt(1+A*A*Math.sin(x[3]));
   double q=x[3];
  z=-Math.sin(x[3])/4*Math.PI*B*(A*B*Math.sin(x[3])+(Math.PI/2-x[3])*(A*A+B*B)+B*B*Math.atan((A-B*Math.cos(x[3]))/(B*Math.sin(x[3])))+A*A*Math.atan((B-A*Math.cos(x[3]))/A*Math.sin(x[3])));
  }
  else if(no==17)
  { z=0.00;}
  else if(no==18)
  { double A=x[0]/x[3];
    double B=x[1]/x[3];
    double H=x[2]/x[3];
	z=(x[3]/Math.PI/A)*(Math.log(((B+A)*(B+A)+4)*((B-A)*(B-A)+4*(1+H*H))/((B-A)*(B-A)+4)*((B+1)*(B+1)+4*(1+H*H))));
	} //eksik
  else if(no==19)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
   else if(no==20)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
  if(no==21)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
   if(no==22)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
  if(no==23)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
  if(no==24)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
   if(no==25)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
    if(no==26)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
  if(no==27)
  { double L=x[0]/x[1];
    double W=x[2]/x[1];
  z=0.00;}
   if(no==28)
  {z=(1/2)*(1-(1/Math.sqrt(3)));}
  if(no==29)
  { double C=x[0]/x[1];
  z=0.00;}
    if(no==30)
  { double A=x[0]/x[1];
    double C=x[2]/x[1];
  z=0.00;}
   if(no==31)
  { double A=x[0]/x[1];
    double C=x[2]/x[1];
  z=0.00;}
  if(no==32)
  { double A=x[0]/x[1];
    double C=x[2]/x[1];
  z=0.00;}
  if(no==33)
  { double L=x[0]/x[1];
  z=0.00;}
  if(no==34)
  { double L=x[0]/x[1];
  z=0.00;}
  if(no==35)
  { double S=x[0]/x[3];
  	double L=x[1]/x[3];
  	double W=x[2]/x[3];
  z=0.00;}
  if(no==36)
  { double C=x[0]/x[1];
  z=0.00;}
  if(no==37)
  { double A=x[0]/x[1];
    double C=x[2]/x[1];
  z=0.00;}
  if(no==38)
  { double A=x[0]/x[1];
    double C=x[2]/x[1];
  z=0.00;}
  if(no==39)
  { double X=x[0]/x[1];
    double Y=x[1]/x[2];
    double Z=x[1]/x[3];
  z=0.00;}
  if(no==40)
  { double R=x[0]/x[1];
    double X=(2*R*R+1)/(R*R);
  z=1/2*(X-Math.sqrt(X*X-4));}
  if(no==41)
  { double R1=x[2];
    double R2=x[3];
    double X=1+(1+x[3]*x[3])/(x[2]*x[2]);
  z=1/2*(X-Math.sqrt(X*X-4*(R2*R2/R1*R1)));}
   if(no==42)
  { double X=x[0]/x[1];
  	double Q=Math.toRadians(x[2]);
  z=(1+X*X-2*X*Math.cos(Q/2)-(1-X)*Math.sqrt((X+1)*(X+1)-4*X*Math.cos(Q/2)))/(2*X*X*Math.sin(Q/2));}
  if(no==43)
  { double H1=x[0]/x[3];
  	double H2=x[1]/x[3];
  	double R=x[2]/x[3];
  z=((1-H1)*(1-H2)/(R*R));}
  if(no==44)
  { double H1=x[0]/x[3];
  	double H2=x[1]/x[3];
  	double R=x[2]/x[3];
  z=((1-H1)*(1-H2)/(R*R));}
  if(no==45)
  { double R=x[0]/x[1];
  	double Q=x[2];
  	double B=x[3];
  z=0.00;} 
  if(no==46)
  { double C=x[0]/x[1];
  	double Q=x[2];
  z=0.00;}
  if(no==47)
  { double H=x[0]/x[1];
  	double R2=x[2]/x[1];
  	double R3=x[3]/x[1];
  z=(1/2)*(R3*R3-R2*R2-Math.sqrt(Math.pow(1+R3*R3+H*H,2)-4*R3*R3)+Math.sqrt(Math.pow(1+R2*R2+H*H,2)-4*R2*R2));}
  if(no==48)
  { double S=x[0]/x[1];
  	double R=x[2]/x[1];
  	double a=Math.toRadians(x[3]);
  	double X=S+(R*Math.cos(a)/Math.sin(a));
  	double A=Math.sqrt(X*X+Math.pow(1+R,2));
  	double B=Math.sqrt(X*X+Math.pow(1-R,2));
  	double C=Math.sqrt(Math.cos(a)+S*Math.sin(a));
  	double D=Math.sqrt(Math.cos(a)-S*Math.sin(a));
  	double E=R*Math.cos(a)/Math.sin(a)-S;
  z=1/2*Math.sqrt(R*R+X*X+1-Math.pow(1+R*R+X*X,2)-4*R*R);}
  if(no==49)
  { double H=x[0]/x[1];
  	double R=x[2]/x[1];
  	double a=Math.toRadians(x[3]);
  	double B=Math.sqrt(H*H+Math.pow(1-R,2));
  	double C=Math.sqrt(Math.cos(a)+R*Math.sin(a));
  	z=1/2*Math.sqrt(R*R+H*H+1-Math.pow(1+R*R+H*H,2)-4*B*C);}
  if(no==50)
  { double E=x[0]/x[1];
  	double S=x[2]/x[1];
  	double L=x[3]/x[1];
  	z=0.00;}
  if(no==51)
  { double A=x[0]/x[1];
  	double S=x[2]/x[1];
  	double R=x[3]/x[1];
  	z=0.00;}
  if(no==52)
  { double H=x[0]/x[1];
  	double R2=x[2]/x[1];
  	double R3=x[3]/x[1];
  	double R4=x[4]/x[1];
  	z=(1/2*(R2*R2-1))*(Math.sqrt(Math.pow(R2*R2+R3*R3+H*H,2)-Math.pow(2*R3*R2,2))-Math.sqrt(Math.pow(R2*R2+R4*R4+H*H,2)-Math.pow(2*R2*R4,2)));}
  if(no==53)
  { double R1=x[0]/x[1];
  	double R2=x[2]/x[1];
  	double L=x[3]/x[1];
  	z=(1-(Math.pow(R2*L-R1,2)/Math.pow(R1*(L-1),2)))*(1-(L/R1)*(Math.sqrt(Math.pow(L/(2*L),2)+1)-L/(2*R1)));}
  if(no==54)
  { double P1=x[0]/x[1];
  	double P2=x[2]/x[1];
  	double R1=x[3]/x[1];
  	double R2=x[4]/x[1];
  	double R=x[5]/x[1];
  	z=0.00;}
  if(no==55)
  { double R1=x[0]/x[1];
  	double R2=x[2]/x[1];
  	double Rc=x[3]/x[1];
  	double A=R1*R1-Rc*Rc;
  	double B=R2*R2-Rc*Rc;
  	double C=R2+R1;
  	double D=R2-R1;
  	double Y=Math.sqrt(A)+Math.sqrt(B);
  	z=0.00;}
  if(no==56)
  { double H=x[0]/x[2];
  	double R1=x[1]/x[2];
  	double P1=x[3]/x[2];
  	double P2=x[4]/x[2];
  	double Y=(P2-R1)/(1-R1);
  	z=0.00;}
  if(no==57)
  { double R=x[1]/x[0];
  	double Z=Math.sqrt(R*R-1);
  	z=(1/(Z*Z*Math.PI))*(-(Math.PI/2)-Z+R*R*Math.atan(1/Z)+2*Math.atan(Z));}
  if(no==58)
  { double R=x[1]/x[0];
  	double H=x[2]/x[0];
  	double alfa=Math.asin(H);
  	z=0.00;}
  if(no==59)
  { double L=x[1]/x[0];
  	double E=x[2]/x[0];
  	double H=x[3]/x[0];
  	z=0.00;}
  if(no==60)
  { double A=x[0]/x[1];
  	double D=x[2]/x[1];
  	double R=x[3]/x[1];
  	z=0.00;}
  if(no==61)
  { double B=x[1]/x[0];
  	z=(1/Math.PI)*Math.atan(B);}
  if(no==62)
  { double B1=x[1]/x[0];
    double B2=x[2]/x[0];
  	z=(1/(2*Math.PI))*(Math.atan(B1)-Math.atan(B2));}
  if(no==63)
  { double D1=x[0];
    double D2=x[1];
  	z=1-D1/D2;}
  if(no==64)
  { double r1=x[0];
    double r2=x[1];
  	z=0.5;}
  if(no==65)
  { double R=x[0]/x[1];
  	z=1-(2/Math.PI)*(Math.sqrt(1-R*R)+R*Math.asin(R));}
  if(no==66)
  { double R=x[0]/x[1];
  	z=(2/Math.PI)*(Math.sqrt(1-R*R)+R*Math.asin(R))-R;}
  if(no==67)
  { double E=x[0]/x[1];
  	double alfa1=Math.toRadians(x[2]);
  	double alfa2=Math.toRadians(x[3]);
  	z=(1/(2*Math.PI))*((alfa2-alfa1)/2+Math.atan(((1+E)/(1-E)*Math.tan(alfa2/2)))-Math.atan((1+E)/(1-E)*Math.tan(alfa1/2)));}
  if(no==68)
  { double X=1+x[0]/(2*x[1]);
   	z=(1/(2*Math.PI)*(Math.sqrt(X*X-1)+Math.asin(1/X-X)));}
  if(no==69)
  { double R=x[0]/x[1];
  	double S=x[2]/x[1];
  	double C=1+R+S;
   	z=(C/(Math.PI)*Math.asin(1/C)*Math.asin(R/C));}
  if(no==70)
  { double X=1+x[0]/(2*x[1]);
   	z=(2/(Math.PI)*(Math.sqrt(X*X-1)+((Math.PI/2)-Math.acos(1/X)-X)));}
  if(no==71)
  { double R=x[0]/x[1];
   	z=1-(2/(Math.PI))-(4/R*(Math.PI)*(1-Math.sqrt(R+1)+R/2*Math.acos(R/(R+2))));}
  if(no==72)
  { double P=x[0]/x[1];
   	z=0.00;}
  if(no==73)
  { double P=x[0]/x[1];
   	z=0.00;}
  if(no==74)
  { double A=x[0]/x[1];
  	double B=x[2]/x[1];
  	double C=x[3]/x[1];
   	z=0.00;}
  if(no==75)
  { double L=x[0]/x[1];
  	double N=x[2]/x[1];
  	double Z=x[3]/x[1];
   	z=0.00;}
  if(no==76)
  { double W=x[0]/x[1];
  	double U=x[0]/x[2];
  	double V=x[0]/x[3];
   	z=0.00;}
  if(no==77)
  { double R=x[0]/x[1];
  	double H=x[2]/x[1];
  	double A=H*H+R*R-1;
  	double B=H*H-R*R+1;
   	z=B/(8*R*H)+1/(2*(Math.PI))*(Math.acos(A/B)-1/(2*H)*(Math.sqrt(Math.pow(A+2,2)/(R*R)-4)))*(Math.cos(A*R/B)-(A/(2*R*H)*Math.asin(R)));}
  if(no==78)
  { double H=x[0]/(2*x[1]);
  	z=(1+H)-Math.sqrt(1+H*H);}
  if(no==79)
  { double H=x[0]/(2*x[1]);
  	z=2*H*(Math.sqrt(1+H*H)-H);}
  if(no==80)
  { double R=x[0]/x[1];
  	double H=x[2]/x[1];
  	z=(1/2)*(1-R*R-H*H+Math.sqrt(Math.pow(1+R*R+H*H,2)-4*R*R));}
  	
  return z;
 
}

public String[] varible_ff(int no)
{  String y[]={""};
   if(no==1)
   {String y1[]={"h","w"};y=y1;}
   else if(no==2)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==3)
   {String y1[]={"h","w"};y=y1;}
   else if(no==4)
   {String y1[]={""+'\u03B1'};y=y1;}
   else if(no==5)
   {String y1[]={"a,b",","+'\u03B1'};y=y1;}
   else if(no==6)
   {String y1[]={"A1,A2,A3"};y=y1;}
   else if(no==7)
   {String y1[]={"d,b"};y=y1;}
   else if(no==8)
   {String y1[]={"p,d"};y=y1;}
   else if(no==9)
   {String y1[]={""+'\u03B7'};y=y1;}
   else if(no==10)
   {String y1[]={"a,b",","+'\u03A6'};y=y1;}
   else if(no==11)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==12)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==13)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==14)
   {String y1[]={"h,w,l"};y=y1;}
   else if(no==15)
   {String y1[]={"B,L"};y=y1;}
   else if(no==16)
   {String y1[]={"a,b,c",","+'\u03A6'};y=y1;}
   else if(no==17)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==18)
   {String y1[]={"a,b,h,z"};y=y1;}
   else if(no==19)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==20)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==21)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==22)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==23)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==24)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==25)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==26)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==27)
   {String y1[]={"l,d,w"};y=y1;}
   else if(no==28)
   {String y1[]={"h"};y=y1;}
   else if(no==29)
   {String y1[]={"c,b"};y=y1;}
   else if(no==30)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==31)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==32)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==33)
   {String y1[]={"l,h"};y=y1;}
   else if(no==34)
   {String y1[]={"l,h"};y=y1;}
   else if(no==35)
   {String y1[]={"s,l,w,r"};y=y1;}
   else if(no==36)
   {String y1[]={"c,b"};y=y1;}
   else if(no==37)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==38)
   {String y1[]={"a,b,c"};y=y1;}
   else if(no==39)
   {String y1[]={"r,d,l1,l2"};y=y1;}
   else if(no==40)
   {String y1[]={"r,a"};y=y1;}
   else if(no==41)
   {String y1[]={"R1,R2"};y=y1;}
   else if(no==42)
   {String y1[]={"\u03B6,x,Q"};y=y1;}
   else if(no==43)
   {String y1[]={"h1,h2,r1,r3"};y=y1;}
   else if(no==44)
   {String y1[]={"h1,h2,r1,r3"};y=y1;}
   else if(no==45)
   {String y1[]={"r,h,\u03F4,\u03B2"};y=y1;}
   else if(no==46)
   {String y1[]={"c,b,\u03F4"};y=y1;}
   else if(no==47)
   {String y1[]={"a,r1,r2,r3"};y=y1;}
   else if(no==48)
   {String y1[]={"s,r1,r2,\u03B1"};y=y1;}
   else if(no==49)
   {String y1[]={"h,r1,r2,\u03B1"};y=y1;}
   else if(no==50)
   {String y1[]={"e,r,s,l"};y=y1;}
   else if(no==51)
   {String y1[]={"a,b,s,r"};y=y1;}
   else if(no==52)
   {String y1[]={"a,r1,r2,r3,r4"};y=y1;}
   else if(no==53)
   {String y1[]={"r1,z,r2,l"};y=y1;}
   else if(no==54)
   {String y1[]={"p1,h,p2,r1,r2,r"};y=y1;}
   else if(no==55)
   {String y1[]={"r1,h,r2,rc"};y=y1;}
   else if(no==56)
   {String y1[]={"h,r1,r2,p1,p2"};y=y1;}
   else if(no==57)
   {String y1[]={"r1,r2"};y=y1;}
   else if(no==58)
   {String y1[]={"r1,r2"};y=y1;}
   else if(no==59)
   {String y1[]={"r,l,e,h"};y=y1;}
   else if(no==60)
   {String y1[]={"a,b,d,r"};y=y1;}
   else if(no==61)
   {String y1[]={"a,b"};y=y1;}
   else if(no==62)
   {String y1[]={"a,b1,b2"};y=y1;}
   else if(no==63)
   {String y1[]={"D1,D2"};y=y1;}
   else if(no==64)
   {String y1[]={"r1,r2"};y=y1;}
   else if(no==65)
   {String y1[]={"r1,r2"};y=y1;}
   else if(no==66)
   {String y1[]={"r1,r2"};y=y1;}
   else if(no==67)
   {String y1[]={"e,r,\u03B11,\u03B12"};y=y1;}
   else if(no==68)
   {String y1[]={"s,r"};y=y1;}
   else if(no==69)
   {String y1[]={"r2,r1,s"};y=y1;}
   else if(no==70)
   {String y1[]={"s,r"};y=y1;}
   else if(no==71)
   {String y1[]={"r,l"};y=y1;}
   else if(no==72)
   {String y1[]={"p,d"};y=y1;}
   else if(no==73)
   {String y1[]={"p,d"};y=y1;}
   else if(no==74)
   {String y1[]={"a,r,b,c"};y=y1;}
   else if(no==75)
   {String y1[]={"l,d,n,z"};y=y1;}
   else if(no==76)
   {String y1[]={"h,r,l1,l2"};y=y1;}
   else if(no==77)
   {String y1[]={"r1,r2,h"};y=y1;}
   else if(no==78)
   {String y1[]={"h,r"};y=y1;}
   else if(no==79)
   {String y1[]={"h,r"};y=y1;}
   else if(no==80)
   {String y1[]={"r2,r1,h"};y=y1;}
return y;
}
public String name_df(int n)
{String x[]=
{"","Differential element of any length to semi-infinite plane. Plane containing element and receiving semi-infinite plane intersect at angle t at edge of semiinfinite plane. ",
"Differential planar element touching any convex one-, two-, or three-dimensional surface at tangent angle l. ",
"Differential planar element to finite parallel rectangle. Normal to element passes through corner of rectangle. ",
};
return x[n];
}
public static void main(String arg[])
{
shapeFactor sf=new shapeFactor();
double x[]=sf.input_ff(80);
Text.print(x);
System.out.println(sf.F_ff(1,x));	
}

}