Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project12;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- function Epsilon(LimitEps: Real): Real;
- var
- Eps: Real;
- IsCorrect: Boolean;
- begin
- Writeln('Enter the precision value:');
- Readln(Eps);
- repeat
- try
- if (Eps < 1) and (Eps > LimitEps) then
- begin
- IsCorrect := True;
- end
- else
- Writeln('Enter a value between (1; 0.000001)');
- except
- IsCorrect := False;
- Writeln('Enter a number!');
- end;
- until IsCorrect ;
- Epsilon := Eps;
- end;
- function FunctionArgument(LimitX: Real): Real;
- var
- x: Real;
- IsCorrect: Boolean;
- begin
- Writeln('Enter the value of the function argument:');
- Readln(x);
- repeat
- try
- if (x < 0) and (x > LimitX) then
- begin
- IsCorrect := True;
- end
- else
- Writeln('Enter a value between (0; 10)');
- except
- IsCorrect := False;
- Writeln('Enter a number!');
- end;
- until IsCorrect ;
- FunctionArgument := x;
- end;
- function MaclaurinSeries(Eps, x: Real): Real;
- var
- y, an: Real;
- n: Integer;
- begin
- y := x;
- an := x;
- n := 0;
- while abs(an) > Eps do
- begin
- Inc(n);
- an := -an * sqr(x)/ ( 2 * n * (2 * n + 1));
- y := y + an;
- end;
- MaclaurinSeries := y;
- end;
- procedure Input(Eps, x, y: Real);
- var
- i, n: Integer;
- begin
- Dec(n);
- for i := 0 to n do
- begin
- WriteLn('x= ',x: 8: 4, ' eps= ',eps: 8: 4, ' y= ',y: 8: 4);
- end;
- Writeln;
- end;
- procedure WriteToFile(const y: Real; var NewFile: TextFile);
- var
- i, n: Integer;
- begin
- Dec(n);
- for i := 0 to n do
- begin
- Write(NewFile, 'y= ',y: 8: 4 );
- Write(NewFile, ' ');
- end;
- CloseFile(NewFile);
- Writeln('Saved to file. ');
- end;
- const
- LimitEps = 0.000001;
- LimitX = 100;
- var
- Eps, x, y: Real;
- MyTFile: TextFile;
- begin
- Eps := Epsilon(LimitEps);
- x := FunctionArgument(LimitX);
- y := MaclaurinSeries(Eps, x);
- Input(Eps, x, y);
- WriteToFile(y, MyTFile);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement