Câu 1: ( 3đ )
Vẽ lưu đồ cho chương trình EULSUM.F95 dưới đây:
PROGRAM eulsum
INTEGER::j,n
REAL::sum,t,dum,tmp
REAL,ALLOCATABLE::wk(:)
WRITE(*,*)'Input n'
READ(*,*)n
WRITE(*,*)'Input t'
READ(*,*)t
ALLOCATE(wk(n+1))
WRITE(*,*)'Input matrix wk'
READ(*,*)wk
sum=0
IF (n==1) THEN
wk(1)=t
sum=t/2
ELSE
tmp=wk(1)
wk(1)=t
DO j=1,n-1
dum=wk(j+1)
wk(j+1)=(wk(j)+tmp)/2
tmp=dum
END DO
wk(n+1)=(wk(n)+tmp)/2
IF (abs(wk(n+1))<=abs(wk(n))) THEN
sum=sum+0.5*wk(n+1)
ELSE
sum=sum+wk(n+1)
END IF
END IF
WRITE(*,*)wk,sum
END
Câu 2: ( 2đ )
Với chương trình ở câu 1, nếu các giá trị nhập vào ban đầu là: n=3; wk=(1, 2, 3, 4); t nhận một trong các giá trị sau: 0,2; 0,3; 0,4; 0,5 (SV chọn một trong các giá trị này để tính). Hãy cho biết giá trị của biến wk và sum sau khi kết thúc chương trình.
Câu 3: ( 3đ )
Hãy tìm 6 lỗi sai và đề xuất cách sửa cho chương trình dưới đây (không cần chép lại cả đề, chỉ viết lại dòng bị sai, gạch dưới chỗ bị lỗi và đề xuất cách sửa)
1 PROGRAM Noi suy Lagrange
2 IMPLICIT NONE
3 INTEGER::j,n
4 REAL::i,P,xnhap
5 PRINT*,'Moi ban nhap bac cua da thuc noi suy ='
6 READ*,n
7 REAL, ALLOCATABLE::x(:),y(:)
8 Do i=0,n
9 PRINT*,'moi ban nhap x_',i,'='
10 READ*,x(i)
11 PRINT*,'moi ban nhap y_',i,'='
12 READ*,y(i)
13 END DO
14 PRINT*,'Moi ban nhap diem x ma ban muon xac dinh gia tri ham'
15 READ*,xnhap
16 P=0
17 DO i=0,n
18 L=1.
19 DO j=0,n
20 IF i/=j THEN
21 L=L*(xnhap-x(j))/(x(i)-x(j))
22 END IF
23 END DO
24 P=P+L*y(i)
25 END DO
26 PRINT*, 'y(',xnhap,')=', P
27 END PROGRAM
Câu 4: ( 2đ )
Tìm nghiệm tại điểm x=0.1 và x=0.2 cho bài toán Cauchy dưới đây bằng phương pháp Euler cải tiến với bước nhảy là h = 0.1:
\begin{cases} y'=e^{-2x}-2y+4x, 0\leq x\leq 2\\ y(0)=0.1\end{cases}
\begin{cases} y'=e^{-2x}-2y+4x, 0\leq x\leq 2\\ y(0)=0.1\end{cases}
........................................Hết........................................
like trang này
Trả lờiXóachẹp hông ku
)
Xóa
>
Xóa