roof1rte.pas 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. program roof1rte;
  2. uses
  3. typ,
  4. spe,
  5. roo;
  6. const
  7. num = 4;
  8. var
  9. term, i, j, n, p: ArbInt;
  10. a, b, ae, re, x: ArbFloat;
  11. function f(x: ArbFloat): ArbFloat;
  12. begin
  13. case i of
  14. 1: f := spepow(x - 1, 3);
  15. 2: f := cos(x);
  16. 3: f := sin(x) - x / 2;
  17. 4: f := exp(x) - sqr(sqr(x))
  18. end;
  19. end;
  20. begin
  21. Write(' program results roof1rte');
  22. case sizeof(ArbFloat) of
  23. 4: writeln('(single)');
  24. 6: writeln('(real)');
  25. 8: writeln('(double)');
  26. end;
  27. writeln;
  28. writeln(' number of examples:', num: 3);
  29. writeln;
  30. if sizeof(ArbFloat) = 6 then
  31. p := 8
  32. else
  33. p := 10;
  34. writeln(' ': 2, 'a', ' ': 5, 'b', ' ': 5, 'ae', ' ': p, 're',
  35. ' ': p - 2, 'term', ' ': 2, 'root', ' ': numdig - 2, 'f(root)');
  36. for i := 1 to num do
  37. begin
  38. Write('Locating the root of the equation ');
  39. case i of
  40. 1: writeln('(x-1)**3 = 0');
  41. 2: writeln('cos(x) = 0');
  42. 3: writeln('sin(x) = x/2');
  43. 4: writeln('exp(x)=x**4');
  44. end;
  45. Read(n);
  46. for j := 1 to n do
  47. begin
  48. Read(a, b, ae, re);
  49. roof1r(@f, a, b, ae, re, x, term);
  50. Write(a: 4: 1, ' ': 2, b: 4: 1, ' ': 2, ae: p, ' ': 2, re: p, ' ': 2, term: 1);
  51. if term < 3 then
  52. writeln(' ': 2, x: numdig, ' ': 2, f(x): numdig)
  53. else
  54. writeln;
  55. end;
  56. end;
  57. Close(input);
  58. Close(output);
  59. end.