fork download
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. int parent1[2], parent2[2], offspring[2];
  8.  
  9. // Input sifat dari kedua orang tua
  10. cout << "Masukkan sifat orang tua 1 (tinggi, jumlah anakan): ";
  11. cin >> parent1[0] >> parent1[1];
  12. cout << "Masukkan sifat orang tua 2 (tinggi, jumlah anakan): ";
  13. cin >> parent2[0] >> parent2[1];
  14.  
  15. // Input sifat keturunan yang ingin dihitung
  16. cout << "Masukkan sifat keturunan yang diinginkan (tinggi, jumlah anakan): ";
  17. cin >> offspring[0] >> offspring[1];
  18.  
  19. // Total kombinasi genotipe
  20. int total_combinations = 16;
  21.  
  22. // Hitung kemungkinan fenotipe untuk tinggi tanaman
  23. int tall_count = 0; // Tinggi
  24. if (parent1[0] == 2 && parent2[0] == 2) tall_count = 4; // TT x TT
  25. else if (parent1[0] == 2 && parent2[0] == 1) tall_count = 3; // TT x Tt
  26. else if (parent1[0] == 2 && parent2[0] == 0) tall_count = 2; // TT x tt
  27. else if (parent1[0] == 1 && parent2[0] == 1) tall_count = 2; // Tt x Tt
  28. else if (parent1[0] == 1 && parent2[0] == 0) tall_count = 1; // Tt x tt
  29. else if (parent1[0] == 0 && parent2[0] == 0) tall_count = 0; // tt x tt
  30. else if (parent1[0] == 0 && parent2[0] == 1) tall_count = 1; // tt x Tt
  31. else if (parent1[0] == 0 && parent2[0] == 2) tall_count = 2; // tt x TT
  32.  
  33. // Hitung kemungkinan fenotipe untuk jumlah anakan
  34. int many_count = 0; // Jumlah anakan
  35. if (parent1[1] == 2 && parent2[1] == 2) many_count = 4; // BB x BB
  36. else if (parent1[1] == 2 && parent2[1] == 1) many_count = 3; // BB x Bb
  37. else if (parent1[1] == 2 && parent2[1] == 0) many_count = 2; // BB x bb
  38. else if (parent1[1] == 1 && parent2[1] == 1) many_count = 2; // Bb x Bb
  39. else if (parent1[1] == 1 && parent2[1] == 0) many_count = 1; // Bb x bb
  40. else if (parent1[1] == 0 && parent2[1] == 0) many_count = 0; // bb x bb
  41. else if (parent1[1] == 0 && parent2[1] == 1) many_count = 1; // bb x Bb
  42. else if (parent1[1] == 0 && parent2[1] == 2) many_count = 2; // bb x BB
  43.  
  44. // Hitung jumlah kombinasi yang berhasil
  45. int successful_combinations = 0;
  46.  
  47. // Untuk tinggi
  48. if (offspring[0] == 0) successful_combinations += (tall_count == 0) ? 1 : 0; // tt
  49. else if (offspring[0] == 1) successful_combinations += (tall_count > 0) ? tall_count : 0; // Tt
  50. else if (offspring[0] == 2) successful_combinations += tall_count; // TT
  51.  
  52. // Untuk jumlah anakan
  53. if (offspring[1] == 0) successful_combinations += (many_count == 0) ? 1 : 0; // bb
  54. else if (offspring[1] == 1) successful_combinations += (many_count > 0) ? many_count : 0; // Bb
  55. else if (offspring[1] == 2) successful_combinations += many_count; // BB
  56.  
  57. // Hitung persentase
  58. double percentage = (double)successful_combinations / total_combinations * 100;
  59.  
  60. // Output persentase
  61. cout << fixed << setprecision(2) << percentage << "%" << endl;
  62.  
  63. return 0;
  64. }
  65.  
Success #stdin #stdout 0s 5284KB
stdin
2 2
0 0
0 0
stdout
Masukkan sifat orang tua 1 (tinggi, jumlah anakan): Masukkan sifat orang tua 2 (tinggi, jumlah anakan): Masukkan sifat keturunan yang diinginkan (tinggi, jumlah anakan): 0.00%