SHARE
TWEET

pr6

starm100 Dec 4th, 2018 (edited) 37 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. program pr6
  2. integer::i,imax,n,nmax
  3. real::x0,xk,h,eps,x,u,S,y,d
  4. print*, 'Input x0,xk,h,eps,nmax'
  5. read(*,*) x0,xk,h,eps,nmax
  6. write(*,'(a55)') '|    i    |    xi    |    ni    |    yi    |    d     |' !первый символ теряется из-за компилятора, в моем все нормально
  7. imax=nint((xk-x0)/h+0.5)
  8. do i=1,imax
  9.     x=x0+(i-1)*h
  10.     if (abs(x)<=1) then !почему-то криво работает в нашем компиляторе   задайте свое условие
  11.         u=-2*x**2 !первый член ряда
  12.         S=-2*x**2 !посчитать
  13.         do n=2,nmax
  14.             if (abs(u)>eps*abs(S)) then
  15.                 u=(-u*4*x**2)/(2*n*(2*n-1)) !выразить последующий член ряда из предыдущего
  16.                 S=S+u
  17.             else
  18.                 y=1+S/2 !Сумма из формулы в задании
  19.                 goto 10
  20.             end if
  21.         end do
  22.         write(*,*) 'error, n>nmax,',y
  23.         stop
  24.     else
  25.         write(*,*) 'Error, |x|>1'
  26.         stop
  27.     end if
  28. 10  d=y-cos(x)**2 !вычисление погрешности для вашей функции
  29.     write(*,20) i,x,n,y,d
  30. 20  format("|",I9,"|",f10.3,"|",I10,"|",f10.3,"|",3x,1pe7.0,"|") ! 1-ый символ
  31. end do
  32. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top