Advertisement
pendekar_langit

biseksi sukses

Nov 20th, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.01 KB | None | 0 0
  1. // biseksi.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. //This is the main DLL file.
  5.  
  6. #include "stdafx.h"
  7. #include "stdio.h"
  8. #include "math.h"
  9. #include "stdlib.h"
  10. double f(double x){
  11.        return (exp(-x)-x);
  12. }
  13. void main() {
  14.     double h[100],a,b,e,fa,fb,xr,fx;
  15.     int n,i;
  16.  
  17.     printf("\t\t****************\n");
  18.     printf("\t\t|Metode Biseksi|\n");
  19.     printf("\t\t****************\n");
  20.     printf("Input batas bawah(a)\t\t:");
  21.     scanf_s("%lf",&a);
  22. //masukkan nila a
  23.     printf("Input batas atas(b)\t\t:");
  24.     scanf_s("%lf",&b);
  25. //masukkan nilai b
  26.     printf("Input toleransi error\t\t:");
  27.     scanf_s("%lf",&e);
  28. //masukkan e
  29.     printf("Input iterasi maksimum(N)\t:");
  30.     scanf_s("%d",&n);
  31. //masukkan N
  32.     fa=f(a);
  33.     fb=f(b);
  34.     if(fa*fb>0)     //cek apakah (fa*fb>0)
  35.         printf("tidak ditemukan akar\n");       //jika benar,maka print tdk ditemukan akar
  36.     else{
  37.             i=0;    //cek lagi, apakah I=0
  38.             printf("----------------------------------------------------------------\n");
  39.             printf("|%3s|%11s|%11s|%11s|%11s|%11s|\n","i","a","b","xr","f(a)","f(xr)");
  40.             printf("----------------------------------------------------------------\n");
  41.                     //cetak hasil
  42.     while (i<=n)        //ketika i<n
  43.         {
  44.             xr=(a+b)/2;     //maka hitung nilai xr
  45.             h[i]=f(xr);
  46.             fx=f(xr);
  47. printf("|%3d|%11lf|%11lf|%11lf|%11lf|%11lf|\n",i+1, a, b, xr,fa,f(xr)); //cetak hasil
  48.     if(h[i]*fa<0){      //cek apakah (h[i]*fa<0)
  49.             b=xr;//jika ya maka b=xr dan fb= f(xr)
  50.             fb= f(xr);
  51.           }
  52.             else{ //jika tidak maka a=xr dan fa= f(xr)
  53.                     a=xr;
  54.                     fa= f(xr);
  55.         }
  56.  
  57.         i++;
  58. if (fabs(b-a)<=e || i>(n-1))    //cek apakah (fabs(b-a)<=e|| i>(n-1))&dimutlakkan
  59.             break;              //jika yaa maka berhenti pada looping
  60.     }
  61.     printf("----------------------------------------------------------------\n");
  62.     printf("Akar persamaan adalah %lf\n",xr);       //cetak akar
  63.     if(f(xr)<0){        //cek apakah f(xr)<0
  64.     fx=f(xr)*-1;        //jika yaa,hitung nilai fx
  65.     printf("Nilai error = %lf\n",fx);               //cetak error
  66.         }
  67.     else        //jika tidak
  68.     printf("Nilai error = %lf\n",fx);               //tetap cetak error
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement