Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program zad3
- integer n, m, b
- real a, S, d, e
- data a,b,S,d/0,0,1,0/
- print *, 'Vvedite tochnost' !Вводим точность и максимальное кол-во шагов с клавиатуры
- read *, e
- print *, 'Vvedite max kol-vo shagov'
- read *, m
- print *, 'Nomer shaga | Factorial | Summa ryada ' !Начинаем формировать таблицу
- print 12
- n = 1
- do while(n.LE.m)
- n = n+1
- b = n
- call fc(b) !Вычисляем факториал с помощью подпрограммы-функции
- a = 1./b !Вычисляем член последовательности
- S = S + a*(-1)**n !Вычисляем сумму, меняя знак путем возведения -1 в степень числа итераций
- c = abs(d-a) !Вычисляем точность
- if(c.LE.e) then !Если полученная точность ниже заданной, то прерываем цикл и выводим сообщение о выходе по точности
- goto 121
- endif
- d = a !Задаем вспомогательной переменной значение предыдущего члена последовательности для вычисления точности
- print 11, n-1,b,S
- print 12
- enddo
- print *, 'Vihod - po kol-vy shagov' !Если цикл завершился успешно, значит предел по точности не был достигнут, выводим сообщение об этом и останавлиаем программу
- stop !Остановка программы нужна затем, чтобы не было вывода сообщения о выходе по точности
- 121 print *, 'Vihod - po tochnosti'
- 11 format (I12,x,'|',x,I15,x,'|',x,F12.10)
- 12 format (46('-'))
- end
- subroutine fc(b) !fc - FaCtroial, подпрограмма-функция для вычисления факториала
- integer b, nm
- nm = 1
- do i=1, b !Простое вычисление факториала числа
- nm = nm*i
- enddo
- b = nm
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement