Selasa, 17 April 2012

Contoh Metode Bisection dengan Bahasa C/C++

Silahkan dicoba...

#include
#include
#include
int main()
{
    float m,x,y,i,g,Vo,yo,z1,z2,Hasil,pi,a,b;
    float Te1,Te2,Te3;
    pi=acos(-1);
x=35;
g=9.81;
Vo=20;
yo=2;
printf("Program Bisection\ntan(sudut)*35-(9.81*35^2/(2*20*20*(cos(sudut))^2)+1=0\n\n");
for (a=1;a<3;a++)
{
    printf("Masukkan tebakan kiri  (dalam sudut) : ");
    scanf("%f",&Te1);
    printf("Masukkan tebakan kanan (dalam sudut) : ");
    scanf("%f",&Te2);
    Te1=Te1*pi/180;
    Te2=Te2*pi/180;
    Te3=Te1;
    z1=(tan(Te1)*x)-((g*x*x)/(2*Vo*Vo*cos(Te1)*cos(Te1)))+1;
    z2=(tan(Te2)*x)-((g*x*x)/(2*Vo*Vo*cos(Te2)*cos(Te2)))+1;
    if (z1<0)
    {
       Te1=Te1;
       Te2=Te2;
    }
    else
    {
         Te1=Te2;
         Te2=Te3;
    }

    if (z1*z2<0)
    {
       for (i=1;i<100;i++)
       {
           y=(Te1+Te2)/2;
           m=(tan(y)*x)-((g*x*x)/(2*Vo*Vo*cos(y)*cos(y)))+1;
           if (m<0)
           {
              Te1=y;
              Te2=Te2;
           }
           else
           {
              Te2=y;
              Te1=Te1;
           }
       Hasil=(Te1*180)/pi;
       printf("\nHasilnya adalah %f derajat\n\n",Hasil);

       }
    }
    else printf("gagal");
}
system("pause");
}

Ada komentar, kritik, saran, atau request?