Lập trình để tính tích phân xác định của hàm f(x) từ a đến b (a,b nhập từ bàn phím). Thử với hàm f(x)=sin(x)+cos(x).
Giải
Const e=0.00001;
Var a,b,h,X,k,Sn,Sn1:Real; n,k:Longint; Xong:Boolean;
Function f(x:Real):Real;
Begin
f:=sin(x)+cos(x);
End;
BEGIN
Write(' Nhap a,b: '); Readln(a,b);
n:=1; Sn:=(f(a)+f(b))*((b-a)/2); Xong:=False;
Repeat
n:=n+1; h:=(b-a)/n; Sn1:=h*(f(a)+f(b))/2;
For k:=1 to (n-1) do
Begin
Xk:=a+k*h; Sn1:=Sn1+f(Xk)*h;
End;
If Abs(Sn1 - Sn) > e Then
Begin
Xong:=False; Sn:=Sn1;
End
Else Xong:=True;
Until Xong;
Writeln('=> Tich phan tu ',a:6:1,' den ',b:6:1,' cua ham so sinx+cosx = ',Sn:10:2); Readln;
END.
No comments:
Post a Comment
Cảm ơn bạn đã nhận xét