- Beranda
- Komunitas
- Tech
- Programmer Forum
Belajar Bahasa C/C++ part 3
TS
fwhyn
Belajar Bahasa C/C++ part 3
Trigonometri
Hallo gan, kali ini ane mau share tentang trigonometri, oke lets cekidot
Awal mulanya sih ada temen yang nyuruh nayri sin alpha atau cos alpha, tapi gak pake #include <math.h> library. Bingung kan? Katanya pake deret gitu. Dan setelah ane liat-liat dari beberapa sumber, ternyata ada cara nyari sin ato cos alpha dengan menggunakan metode deret bilangan.
Prinsipnya sederhana sih gan,
rumusnya kayak gini:
Cuman, biar hasilnya lebih teliti,rumusnya ane ubah, jadi kayak gini:
Terus ane buat algoritma dalam bentuk C++ nya, dan lumayan membuat otak ane pusing juga gan . Dan finally, kodenya selesai, bagi agan yang pengen nyoba, kodenya tinggal copas di bawah ini:
Sebenernya ini kode masih dalam tahap pengembangan, soalnya masih kurang teliti&kodenya menurut ane itu kebanyakan . So, bagi agan/sisti yang mau bantu, silakan kasih komentar/sarannya biar ane bisa ngembangin itu kode. Semoga bermanfaat.
Hallo gan, kali ini ane mau share tentang trigonometri, oke lets cekidot
Awal mulanya sih ada temen yang nyuruh nayri sin alpha atau cos alpha, tapi gak pake #include <math.h> library. Bingung kan? Katanya pake deret gitu. Dan setelah ane liat-liat dari beberapa sumber, ternyata ada cara nyari sin ato cos alpha dengan menggunakan metode deret bilangan.
Prinsipnya sederhana sih gan,
rumusnya kayak gini:
Cuman, biar hasilnya lebih teliti,rumusnya ane ubah, jadi kayak gini:
Terus ane buat algoritma dalam bentuk C++ nya, dan lumayan membuat otak ane pusing juga gan . Dan finally, kodenya selesai, bagi agan yang pengen nyoba, kodenya tinggal copas di bawah ini:
Code:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
double sin,cos,x,n,m,o,p,q,faktor_n,faktor_n1,faktor_n2,bagi_faktor,pangkat,total,sudut;
int i,j;
char a;
double faktorial(double n)
{
faktor_n=n;
for (n--;1<n;n--)
faktor_n=faktor_n*n;
}
double x_pangkat(double x,double e)
{
pangkat=x;
for(i=1;i<e;i++)
pangkat=pangkat*x;
}
double sin_x(double theta)
{
if (sudut>=270)
sudut=-(360-sudut);
if (sudut>=180)
sudut=-(sudut-180);
if (sudut>90)
sudut=180-sudut;
x=sudut*22/(7*180);
n=15;
o=n;
p=n;
q=n;
faktorial(n);
total=x*faktor_n;
m=3;
j=1;
for (o;3<=o;o=o-2)
{
faktorial(p);
faktor_n1=faktor_n;
faktorial(m);
faktor_n2=faktor_n;
bagi_faktor=faktor_n1/faktor_n2;
x_pangkat(x,m);
if (j%2==0)
total=total+pangkat*bagi_faktor;
else
total=total-pangkat*bagi_faktor;
m=m+2;
j++;
}
faktorial(q);
sin=total/faktor_n;
}
double cos_x(double theta)
{
if (sudut>=270)
sudut=360-sudut;
if (sudut>=180)
sudut=sudut-180;
if (sudut>90)
sudut=180-sudut;
x=sudut*22/(7*180);
n=14;
o=n;
p=n;
q=n;
faktorial(n);
total=faktor_n;
m=2;
j=1;
for (o;3<=o;o=o-2)
{
faktorial(p);
faktor_n1=faktor_n;
faktorial(m);
faktor_n2=faktor_n;
bagi_faktor=faktor_n1/faktor_n2;
x_pangkat(x,m);
if (j%2==0)
total=total+pangkat*bagi_faktor;
else
total=total-pangkat*bagi_faktor;
m=m+2;
j++;
}
faktorial(q);
cos=total/faktor_n;
if (sudut==90)
cos=1;
}
main()
{
system("cls");
printf("masukkan sudut : ");
scanf("%lf",&sudut);
printf("a. sin theta\n");
printf("b. cos theta\n");
a=getch();
if (a=='a')
{
while (sudut>=360)
sudut=sudut-360;
sin_x(x);
printf("sin theta = %.3lf\n",sin);
}
else if (a=='b')
{
while (sudut>=360)
sudut=sudut-360;
if (sudut<=90)
{
cos_x(x);
printf("cos theta = %.3lf\n",cos);
}
if (sudut>=270)
{
cos_x(x);
printf("cos theta = %.3lf\n",cos);
}
if (sudut>=180)
{
cos_x(x);
printf("cos theta = %.3lf\n",-cos);
}
if (sudut>90)
{
cos_x(x);
printf("cos theta = %.3lf\n",-cos);
}
}
else
{
printf("pilihan salah!\n");
getch();
return main();
}
getch();
return main();
}
Sebenernya ini kode masih dalam tahap pengembangan, soalnya masih kurang teliti&kodenya menurut ane itu kebanyakan . So, bagi agan/sisti yang mau bantu, silakan kasih komentar/sarannya biar ane bisa ngembangin itu kode. Semoga bermanfaat.
nona212 memberi reputasi
1
1.6K
9
Komentar yang asik ya
Urutan
Terbaru
Terlama
Komentar yang asik ya
Komunitas Pilihan