
Fortran - написать подпрограмму для вычисления бесконечной суммы с заданной точностью е=0.00001.
S=Σ(-1)^i/(2*i)!

Ответы на вопрос

subroutine SumSer(eps, res)
real eps
real(8) res
real(8) :: sgn = -1, z = 1, a
integer :: i = 1
res = 0
do
z = z * (2 * i) * ( 2 * i - 1)
a = sgn / z
if (abs(a) <= eps) then
exit
endif
res = res + a
sgn = -sgn
i = i + 1
enddo
end subroutine SumSer
program MainProg
real :: eps = 0.00001
real(8) y
call SumSer(eps, y)
write(*,'(1X,F9.6)') y
end program MainProg




Конечно! Вот пример подпрограммы на языке Fortran для вычисления бесконечной суммы с заданной точностью:
fortranprogram InfiniteSum implicit none integer :: i real :: term, sum, error ! Инициализация переменных sum = 0.0 error = 1.0 i = 0 do while (error > 0.00001) ! Вычисление очередного члена суммы term = (-1.0)**i / real(factorial(2*i), kind=8) ! Используется 8-байтовый тип для большей точности ! Обновление суммы sum = sum + term ! Проверка условия окончания суммирования error = abs(term) ! Переход к следующему члену i = i + 1 end do print *, "Сумма:", sum print *, "Число слагаемых:", i contains ! Функция для вычисления факториала recursive function factorial(n) result(fact) integer, intent(in) :: n integer :: fact if (n == 0) then fact = 1 else fact = n * factorial(n-1) end if end function factorial end program InfiniteSum
В этом примере мы используем цикл do while
, чтобы продолжать вычисления, пока ошибка (абсолютное значение текущего члена) больше заданной точности 0.00001
. Каждый член суммы вычисляется с помощью формулы (-1)^i / (2*i)!, где i
- номер члена. Мы также используем рекурсивную функцию factorial
для вычисления факториала.
После выполнения программы будет выведено значение суммы и количество слагаемых, необходимых для достижения заданной точности. Обратите внимание, что для повышения точности используется 8-байтовый тип данных real
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili