Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program pr6
- integer::i,imax,n,nmax
- real::x0,xk,h,eps,x,u,S,y,d
- print*, 'Input x0,xk,h,eps,nmax'
- read(*,*) x0,xk,h,eps,nmax
- write(*,'(a55)') '| i | xi | ni | yi | d |' !первый символ теряется из-за компилятора, в моем все нормально
- imax=nint((xk-x0)/h+0.5)
- do i=1,imax
- x=x0+(i-1)*h
- if (abs(x)<=1) then !почему-то криво работает в нашем компиляторе задайте свое условие
- u=-2*x**2 !первый член ряда
- S=-2*x**2 !посчитать
- do n=2,nmax
- if (abs(u)>eps*abs(S)) then
- u=(-u*4*x**2)/(2*n*(2*n-1)) !выразить последующий член ряда из предыдущего
- S=S+u
- else
- y=1+S/2 !Сумма из формулы в задании
- goto 10
- end if
- end do
- write(*,*) 'error, n>nmax,',y
- stop
- else
- write(*,*) 'Error, |x|>1'
- stop
- end if
- 10 d=y-cos(x)**2 !вычисление погрешности для вашей функции
- write(*,20) i,x,n,y,d
- 20 format("|",I9,"|",f10.3,"|",I10,"|",f10.3,"|",3x,1pe7.0,"|") ! 1-ый символ
- end do
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement