8.1.28 (a) Escreva um subprograma de função para calcular a razão de fatoriais duplos
. Inclua provisão para
e para rejeição e uma mensagem de erro se
for negativo. Calcule e tabule essa razão para
.
(b) Verifique o cálculo de seu subprograma de função para 199!!/200!!. em comparação com o valor obtido pela série de Stirling (Seção 8.3).
(b) Verifique o cálculo de seu subprograma de função para 199!!/200!!. em comparação com o valor obtido pela série de Stirling (Seção 8.3).
Passo 1
O enunciado pede um subprograma de função que, dado um inteiro
, calcule a razão de fatoriais duplos
com a condição de que, se
, o programa rejeite a entrada com uma mensagem de erro, e que para
a função retorne
. Em seguida devemos usar esse subprograma para tabular
para
. Por fim, em (b) verificamos o valor de
comparando-o com a aproximação dada pela série de Stirling.
Passo 2
Para evitar overflow e manter estabilidade numérica, note que
logo
com o produto vazio definido como
quando
.
Passo 3
Esboço do subprograma de função (pseudo-código):
. Entrada: inteiro
.
. Se
então imprimir “Erro:
negativo” e encerrar.
. Se
então retornar
.
. Inicializar
.
. Para
de
até
:
Passo 4
Pseudocódigo detalhado:
função R(N: inteiro) \(\to\) real:
se N < \(0\) então
escreva "Erro: N negativo"
pare
se N = \(0\) então
retorne \(1\)
razão \(\gets\) \(1\)
para k de \(1\) até N faça
razão \(\gets\) razão \cdot \frac{2 \cdot k - 1}{2 \cdot k}
fim para
retorne razão
fim função
Passo 5
Para tabular
de
a
, basta chamar dentro de um laço:
para N de \(1\) até \(100\) faça
escreva N, R(N)
fim para
O programa imprimirá uma tabela com dois campos:
e
.
Passo 6
Em particular, para
obtemos
Pela série de Stirling,
segue-se que para
grande
Para
,
que concorda bem com
.