Advertisement
klasscho

Untitled

Dec 15th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. program Project12;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8. System.SysUtils;
  9.  
  10. function Epsilon(LimitEps: Real): Real;
  11. var
  12. Eps: Real;
  13. IsCorrect: Boolean;
  14. begin
  15. Writeln('Enter the precision value:');
  16. Readln(Eps);
  17. repeat
  18. try
  19. if (Eps < 1) and (Eps > LimitEps) then
  20. begin
  21. IsCorrect := True;
  22. end
  23. else
  24. Writeln('Enter a value between (1; 0.000001)');
  25. except
  26. IsCorrect := False;
  27. Writeln('Enter a number!');
  28. end;
  29. until IsCorrect ;
  30. Epsilon := Eps;
  31. end;
  32.  
  33. function FunctionArgument(LimitX: Real): Real;
  34. var
  35. x: Real;
  36. IsCorrect: Boolean;
  37. begin
  38. Writeln('Enter the value of the function argument:');
  39. Readln(x);
  40. repeat
  41. try
  42. if (x < 0) and (x > LimitX) then
  43. begin
  44. IsCorrect := True;
  45. end
  46. else
  47. Writeln('Enter a value between (0; 10)');
  48. except
  49. IsCorrect := False;
  50. Writeln('Enter a number!');
  51. end;
  52. until IsCorrect ;
  53. FunctionArgument := x;
  54. end;
  55.  
  56. function MaclaurinSeries(Eps, x: Real): Real;
  57. var
  58. y, an: Real;
  59. n: Integer;
  60. begin
  61. y := x;
  62. an := x;
  63. n := 0;
  64. while abs(an) > Eps do
  65. begin
  66. Inc(n);
  67. an := -an * sqr(x)/ ( 2 * n * (2 * n + 1));
  68. y := y + an;
  69. end;
  70. MaclaurinSeries := y;
  71. end;
  72.  
  73. procedure Input(Eps, x, y: Real);
  74. var
  75. i, n: Integer;
  76. begin
  77. Dec(n);
  78. for i := 0 to n do
  79. begin
  80. WriteLn('x= ',x: 8: 4, ' eps= ',eps: 8: 4, ' y= ',y: 8: 4);
  81. end;
  82. Writeln;
  83. end;
  84.  
  85. procedure WriteToFile(const y: Real; var NewFile: TextFile);
  86. var
  87. i, n: Integer;
  88. begin
  89. Dec(n);
  90. for i := 0 to n do
  91. begin
  92. Write(NewFile, 'y= ',y: 8: 4 );
  93. Write(NewFile, ' ');
  94. end;
  95. CloseFile(NewFile);
  96. Writeln('Saved to file. ');
  97. end;
  98.  
  99. const
  100. LimitEps = 0.000001;
  101. LimitX = 100;
  102. var
  103. Eps, x, y: Real;
  104. MyTFile: TextFile;
  105. begin
  106. Eps := Epsilon(LimitEps);
  107. x := FunctionArgument(LimitX);
  108. y := MaclaurinSeries(Eps, x);
  109. Input(Eps, x, y);
  110. WriteToFile(y, MyTFile);
  111. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement