fork download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iomanip>
  4.  
  5. using namespace std;
  6.  
  7. // Definisikan nilai Pi untuk konversi sudut (M_PI ada di cmath, tapi terkadang perlu diaktifkan)
  8. #ifndef M_PI
  9. #define M_PI 3.14159265358979323846
  10. #endif
  11.  
  12. // Tetapkan Gravitasi sesuai deskripsi
  13. const double G = 10.0;
  14.  
  15. void prediksi_ketinggian_boro() {
  16. int S, T;
  17. double V;
  18.  
  19. // Ambil Input
  20. cin >> S >> V >> T;
  21.  
  22. // 1. Konversi Sudut dari Derajat ke Radian
  23. // Rumus: radian = derajat * (PI / 180)
  24. double S_radian = S * (M_PI / 180.0);
  25.  
  26. // 2. Hitung Ketinggian Maksimum (H)
  27. // Rumus: H = (V * sin(S))^2 / (2 * g)
  28. double V_sin_S = V * sin(S_radian);
  29. double H = (V_sin_S * V_sin_S) / (2 * G);
  30.  
  31. // 3. Tentukan Status
  32. // Status 1: H >= T, Status 0: H < T
  33. int status;
  34. if (H >= T) {
  35. status = 1;
  36. } else {
  37. status = 0;
  38. }
  39.  
  40. // 4. Bulatkan Ketinggian Maksimum ke dua desimal
  41. // Catatan: Pembulatan menggunakan operator matematika, bukan hanya setprecision
  42. // Karena nilai 181.08162... dibulatkan menjadi 181.09.
  43. double H_bulat = round(H * 100.0) / 100.0;
  44.  
  45. // 5. Tampilkan Output
  46. cout << "Status : " << status << endl;
  47. cout << "Ketinggian : " << fixed << setprecision(2) << H_bulat << endl;
  48. }
  49.  
  50. int main() {
  51. // Pengaturan untuk I/O cepat (opsional)
  52. ios_base::sync_with_stdio(false);
  53. cin.tie(NULL);
  54.  
  55. prediksi_ketinggian_boro();
  56.  
  57. return 0;
  58. }
Success #stdin #stdout 0s 5320KB
stdin
5
10
15
stdout
Status : 0
Ketinggian : 0.04