roof1rte.pas 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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.
  60. program roof1rte;
  61. uses
  62. typ,
  63. spe,
  64. roo;
  65. const
  66. num = 4;
  67. var
  68. term, i, j, n, p: ArbInt;
  69. a, b, ae, re, x: ArbFloat;
  70. function f(x: ArbFloat): ArbFloat;
  71. begin
  72. case i of
  73. 1: f := spepow(x - 1, 3);
  74. 2: f := cos(x);
  75. 3: f := sin(x) - x / 2;
  76. 4: f := exp(x) - sqr(sqr(x))
  77. end;
  78. end;
  79. begin
  80. Write(' program results roof1rte');
  81. case sizeof(ArbFloat) of
  82. 4: writeln('(single)');
  83. 6: writeln('(real)');
  84. 8: writeln('(double)');
  85. end;
  86. writeln;
  87. writeln(' number of examples:', num: 3);
  88. writeln;
  89. if sizeof(ArbFloat) = 6 then
  90. p := 8
  91. else
  92. p := 10;
  93. writeln(' ': 2, 'a', ' ': 5, 'b', ' ': 5, 'ae', ' ': p, 're',
  94. ' ': p - 2, 'term', ' ': 2, 'root', ' ': numdig - 2, 'f(root)');
  95. for i := 1 to num do
  96. begin
  97. Write('Locating the root of the equation ');
  98. case i of
  99. 1: writeln('(x-1)**3 = 0');
  100. 2: writeln('cos(x) = 0');
  101. 3: writeln('sin(x) = x/2');
  102. 4: writeln('exp(x)=x**4');
  103. end;
  104. Read(n);
  105. for j := 1 to n do
  106. begin
  107. Read(a, b, ae, re);
  108. roof1r(@f, a, b, ae, re, x, term);
  109. Write(a: 4: 1, ' ': 2, b: 4: 1, ' ': 2, ae: p, ' ': 2, re: p, ' ': 2, term: 1);
  110. if term < 3 then
  111. writeln(' ': 2, x: numdig, ' ': 2, f(x): numdig)
  112. else
  113. writeln;
  114. end;
  115. end;
  116. Close(input);
  117. Close(output);
  118. end.