-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFuncionSeno.java
More file actions
106 lines (92 loc) · 3.03 KB
/
FuncionSeno.java
File metadata and controls
106 lines (92 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*
Nombre: Ana Laura Madrigal García
Matrícula: 1902563A
Programa: Este programa, obtiene la tabla del seno natural de 0 a 90 grados, y regresa un archivo de excel con todos los datos obtenidos.
*/
import java.io.*;
public class FuncionSeno{
public static void main(String [] args){
double pi=3.1416;
double x=pi/2;
double seno=0;
double senoMinuto=0;
double DiezMinutos=conversionRad(0.1667); //convertimos los 10 minutos a grados para convertirlos a radianes
double senoNoventa=0;
//LA FUNCIÓN SENO ES UN MÉTODO QUE HICE A BASE DE EL MÉTODO FACTORIAL Y POTENCIA QUE TAMBIÉN HICE YO
senoMinuto= funcionSeno(DiezMinutos); //calcularemos el seno de 10 minutos, para irlo sumando en nuestra tabla
float senoMinutoX= (float)senoMinuto; //0.0029
senoNoventa= funcionSeno(x); //calcule el seno de 90° aparte porque no sé porque no me lo imprime el ciclo :(
FileWriter tab_sen=null;
PrintWriter dat_sen=null;
try{
tab_sen= new FileWriter("Tabla_Seno_MadrigalGarcia.csv");
dat_sen=new PrintWriter(tab_sen);
dat_sen.println("'TABLA DEL SENO NATURAL DE 0 A 90 GRADOS");
dat_sen.println("Grados, o' , 10' , 20' , 30' , 40' , 50' ");
for(float j=0; j<=pi/2; j+= 0.02){
seno= funcionSeno(j);
dat_sen.print(conversionSexag(j)+" ");
dat_sen.print(" , "+(seno)+" , "+(seno+senoMinutoX)+" , "+(seno+2*senoMinutoX)+" , "+(seno+3*senoMinutoX)+" , "+(seno+4*senoMinutoX)+" , "+(seno+5*senoMinutoX));
dat_sen.print("\n");
}
dat_sen.print("90.0 "+", "+(senoNoventa)+" , ");
dat_sen.print("\n");
}
catch(Exception e){
e.printStackTrace();
System.out.println("Algo no funcionó con la escritura del archivo");
}
finally{
try{
if(null!=tab_sen) tab_sen.close();
}
catch(Exception e2){
e2.printStackTrace();
}
}
}
static double factorial(double n){ //método de factorial
double fact=1;
for(int i=1;i<=n;i++){
fact=fact*i;
}
return fact;
}
static double conversionRad(double sexag){ //método conversión de radianes a sexagesimal
double pi= 3.1416;
double grados=0;
grados=(sexag*2*pi)/360;
return grados;
}
static double conversionSexag(double rad){ //método conversión de sexagesimal a radianes
double pi= 3.1416;
double radianes=0;
radianes=(rad*360)/(2*pi);
int radianesR= (int) radianes;
return radianesR;
}
static double potencia(double x, double n){ //método de calcular la potencia de cualquier número
double p=1;
if(n==0) p=1;
else if(x==0 && n!=0) p=0;
else{
for(int i=1; i<=n; i++){
p=p*x;
}
}
return p;
}
static double funcionSeno(double a){ //método de seno a base de los otros métodos para solo invocarlo durante el código
double sen=0;
double pi=3.1416;
if(a==0) sen=0.0;
else if(a==pi/2) sen=1.00;
else{
for(int i=0; i<=100; i++){
sen+= ((potencia(-1,i))*(potencia(a, (2*i)+1)))/factorial(2*i +1);
}
}
float senC= (float)sen;
return senC;
}
}