import java.text.*;
import java.util.*;
import java.io.*;

public class Rorberegn

{

	public static void main(String args[])

	{
		
	try{
		
		int i;	

		double [] tabelDiameter = {17.2, 21.3, 26.9, 31.8, 33.7, 38, 42.4, 44.5, 48.3, 57, 60.3, 70, 76.1, 88.9, 101.6, 108, 
								114.3, 133, 139.7, 159, 168.3, 193.7, 219.1, 244.5, 273, 32.9, 355.6, 406.4, 508 };
		
		int [] tabelRadius 		= {20, 28, 29, 35, 38, 45, 48, 51, 57, 72, 76, 92, 95, 115, 134, 143, 
								153, 181, 191, 216, 229, 270, 305, 340, 381, 457,534, 610, 762 };
		
				
		NumberFormat form =  NumberFormat.getInstance();// afrunder decimaler
		form.setMaximumFractionDigits(0);
		//System.out.println (tabelRadius.length);
						
		for ( i = 0; i<tabelRadius.length ; i++) //lykke der styrer filantal 
		
		{

			double rorDiam = tabelDiameter[i];
			int radius =  tabelRadius[i];
			
			int taeller = radius * 2;
			
			double L_Bue;
			double S_Bue;
			double byglg = 0;
			double vinkel;
			double byglgS = 0;
						
			//---
			String filNavnS = "";
			String tabTypeS = "";	
			filNavnS = "S_slag_"+ rorDiam+".rtf";
			tabTypeS = "S_slag, rørdiameter = " 
			+ rorDiam + " mm. " + "  radius = "+ radius + " mm.";
			FileWriter 	filS 	= new FileWriter(filNavnS);
			PrintWriter udS 	= new PrintWriter(filS);
			//---						
				
			String filNavnP = "";
			String tabTypeP = "";	
			filNavnP = "P_slag_"+ rorDiam+".rtf";
			tabTypeP = "P_slag, rørdiameter = " 
			+ rorDiam + " mm. " + "  radius = "+ radius + " mm.";			
			FileWriter 	filP 	= new FileWriter(filNavnP);
			PrintWriter udP 	= new PrintWriter(filP);
						
			//-- S-slag		
			udS.println ("Denne tabel anvendes på eget ansvar.\n\nCopyright © Tommy Balle 2003.");
			udS.println ();
			udS.println (tabTypeS);
			udS.println ();
			udS.println ();
			udS.println ("Spring\tGrader\tLille bue\tStore bue\tByggelængde" );
			udS.println ("----------------------------------------------------------------------");
			//-- P-slag		
			udP.println ("Denne tabel anvendes på eget ansvar.\n\nCopyright © Tommy Balle 2003.");
			udP.println ();
			udP.println (tabTypeP);
			udP.println ();
			udP.println ();
			udP.println ("Spring\tGrader\tLille bue\tStore bue\tByggelængde" );
			udP.println ("----------------------------------------------------------------------");
			
		
		for ( int j = 10; j <= taeller; j = j+10) 
			
		{	
//--------------------------------------------------------- S-slag		
		 	byglgS = Math.sqrt (j * (4*radius - j));
			vinkel = Math.asin(byglgS/(2*radius));
			vinkel = Math.toDegrees (vinkel);
			
			double vS = vinkel;	
					
			L_Bue = (((radius*2-(rorDiam))*Math.PI)/360)*vS; 
			S_Bue = (((radius*2+(rorDiam))*Math.PI)/360)*vS;						
			udS.println (j + "\t" +form.format (vS)+ "\t" 
			+ form.format(L_Bue)+ "\t" + form.format(S_Bue)+ "\t"+form.format (byglgS));//print slut
//--------------------------------- p_slag
				
			int r2 = radius * radius;
			int i2 = j*j;
			byglg = Math.sqrt (r2-i2+2*j*radius);			
			vinkel = Math.atan( (j-radius)/byglg);			
			vinkel = Math.toDegrees (vinkel);			
			vinkel = vinkel + 45;
							
			double vP = vinkel;			
			L_Bue = (((radius*2-(rorDiam))*Math.PI)/360)*vP; 
			S_Bue = (((radius*2+(rorDiam))*Math.PI)/360)*vP;						
			udP.println (j + "\t" +form.format (vP)+ "\t" 
			+ form.format(L_Bue)+ "\t" + form.format(S_Bue)+"\t"+ form.format (byglg));//print slut
//--------------------------------------------	

		} //--- indre lykke slut 
			
				udS.close(); // lukker filer
				udP.close(); 
				
		} // -- ydre lykke slut
		
		
		} catch (IOException e) {}
	
	} // --- main metode slut
	

}
