fork download
  1. program IterativeSeries;
  2. var
  3. S, Si, y, x, eps, A, V: real;
  4. i, j: integer;
  5. begin
  6. // Введення аргументу функції і точності
  7. writeln('Enter x and eps (наприклад: 0.5 1e-5):');
  8. readln(x, eps);
  9.  
  10. // Початкові значення
  11. i := 1;
  12. j := 2;
  13. Si := -x / 2; // перший доданок
  14. S := 1 + Si; // сума ряду з першим доданком
  15.  
  16. // Обчислення ряду
  17. while abs(Si) > eps do
  18. begin
  19. i := i + 2;
  20. j := j + 2;
  21. Si := Si * (-1) * (i - 1) / j * x;
  22. S := S + Si;
  23. end;
  24.  
  25. // Точне значення функції
  26. y := sqrt(1 - x);
  27.  
  28. // Обчислення похибок
  29. A := abs(S - y); // абсолютна похибка
  30. V := A / abs(y) * 100; // відносна похибка у %
  31.  
  32. // Вивід результатів
  33. writeln('Approximated S = ', S:0:10);
  34. writeln('Exact y = ', y:0:10);
  35. writeln('Absolute error A = ', A:0:10);
  36. writeln('Relative error V = ', V:0:5, '%');
  37. end.
Success #stdin #stdout 0.01s 5296KB
stdin
0.5 1e-5
stdout
Enter x and eps (наприклад: 0.5 1e-5):
Approximated S = 0.7972659590
Exact y = 0.7071067812
Absolute error A = 0.0901591778
Relative error V = 12.75043%