fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. // Определение функции f(x) = 5 * (1 - e^(-0.5 * x)) * cos(2 * pi * x)
  7. double f(double x) {
  8. return 5 * (1 - exp(-0.5 * x)) * cos(2 * M_PI * x);
  9. }
  10.  
  11. int main() {
  12. double a, b; // Границы интервала
  13. int n; // Количество точек
  14.  
  15. // Ввод данных
  16. cout << "Enter the interval limits a and b: ";
  17. cin >> a >> b;
  18. cout << "Enter the number of points n: ";
  19. cin >> n;
  20.  
  21. // Расчет шага
  22. double h = (b - a) / (n - 1);
  23.  
  24. double product = 1; // Переменная для произведения положительных значений
  25. bool has_positive_values = false; // Флаг наличия положительных значений
  26. double epsilon = 1e-6; // Порог для определения малых значений как нулевых
  27.  
  28. // Вычисление и вывод значений функции на интервале
  29. cout << "Table of function values f(x):\n";
  30. for (int i = 0; i < n; ++i) {
  31. double x = a + i * h;
  32. double value = f(x);
  33. cout << "f(" << x << ") = " << value << endl;
  34.  
  35. // Игнорируем значения, которые близки к нулю или отрицательны
  36. if (value > epsilon) {
  37. product *= value;
  38. has_positive_values = true;
  39. }
  40. }
  41.  
  42. // Вывод произведения положительных значений
  43. if (has_positive_values) {
  44. cout << "Product of all positive values of the function: " << product << endl;
  45. } else {
  46. cout << "No positive values of the function in the interval." << endl;
  47. }
  48.  
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Enter the interval limits a and b: Enter the number of points n: Table of function values f(x):
No positive values of the function in the interval.