frain8

Untitled

Nov 21st, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.28 KB | None | 0 0
  1. // Program untuk menghitung sisi - sisinya jika diketahui semua sudutnya
  2.  
  3. /*  Programmer  : William Handi Wijaya          Tanggal diselesaikan : 21 November 2019
  4.     NRP         : 05111940000087                Kelas                : Dasar Pemograman C */
  5.  
  6. #define M_PI 3.14159
  7. #include<stdio.h>
  8. #include<math.h>        //definisi fungsi library math.h
  9.  
  10. void getSisi(double *a, double *b, double *c);
  11. double getCos(double a, double b, double c);
  12. double getSudut(double cos);
  13.  
  14. int main(void)
  15. {
  16.     double  a,          //sisi pertama dari segitiga
  17.             b,          //sisi kedua dari segitiga
  18.             c,          //sisi ketiga dari segitiga
  19.  
  20.             sudut_a,    //besar nilai sudut sisi pertama
  21.             sudut_b,    //besar nilai sudut sisi kedua
  22.             sudut_c,    //besar nilai sudut sisi ketiga
  23.  
  24.             cos_a,cos_b,cos_c; //variabel yang menyimpan nilai cos
  25.  
  26.     printf("----------------------Sudut - sudut pada segitiga----------------------\n\n");
  27.  
  28.     do
  29.     {
  30.         //Masukkan sisi - sisi dari segitiga
  31.         printf("\n\n------Angka yang dimasukkan harus bernilai positif--------\n\n");
  32.         getSisi(&a, &b, &c);
  33.     }
  34.     while(a <= 0 || b <= 0 || c <= 0); // Jika input bernilai negatif -> ulangi
  35.    
  36.     //Hitung sudut - sudut yang ada pada segitiga
  37.         //Pertama
  38.         cos_a = getCos(b, c, a);
  39.        
  40.         //Kedua
  41.         cos_b = getCos(a, c, b);
  42.  
  43.         //ketiga
  44.         cos_c = getCos(a, b, c);
  45.  
  46.     //Hitung nilai dari acos dalam satuan derajad
  47.         //pertama
  48.         sudut_a = getSudut(cos_a);
  49.  
  50.         //kedua
  51.         sudut_b = getSudut(cos_b);
  52.  
  53.         //ketiga
  54.         sudut_c = getSudut(cos_c);
  55.  
  56.     //Tampilkan hasilnya pada layar
  57.     printf("Besar nilai sudut antara titik b dan c adalah %0.2f derajat\n", sudut_a);
  58.     printf("Besar nilai sudut antara titik a dan c adalah %0.2f derajat\n", sudut_b);
  59.     printf("Besar nilai sudut antara titik a dan b adalah %0.2f derajat\n", sudut_c);
  60.  
  61.     return 0;
  62. }
  63.  
  64. double getSudut(double cos)
  65. {
  66.     double sudut;
  67.     sudut = acos(cos) * (180 / M_PI);
  68.     return sudut;
  69. }
  70.  
  71. double getCos(double a, double b, double c)
  72. {
  73.     double cos;
  74.     cos = (pow(a,2) + pow(b,2) - pow(c,2) ) / (2 * a * b);
  75.     return cos;
  76. }
  77.  
  78. void getSisi(double *a, double *b, double *c)
  79. {
  80.     printf("Masukkan sisi pertama dari segitiga dalam satuan cm => ");
  81.     scanf("%lf", a);
  82.  
  83.     printf("Masukkan sisi kedua dari segitiga dalam satuan cm => ");
  84.     scanf("%lf", b);
  85.  
  86.     printf("Masukkan sisi ketiga dari segitiga dalam satuan cm => ");
  87.     scanf("%lf", c);
  88. }
Advertisement
Add Comment
Please, Sign In to add comment