Fatorial
Fatorial é definido apenas para números inteiros positivos.
Observação: Pode-se fazer o produto dos fatores de duas formas:
•
•
partindo-se de N e chegar a 1 ou partindo-se de 1 e chegar a N
nesse nosso primeiro exemplo, partimos de N e chegamos a 1.
Abaixo está o algoritmo aceito pelo interpretador hall, veja. algoritmo ()
{
inteiro N; inteiro fat; inteiro aux;
// o numero a ser lido
// o fatorial do numero lido
// auxiliar para gerar os fatores
leia ( "informe o valor de N: ", N ); aux := N; fat := 1;
// comecando com N
// elemento neutro da multiplicacao
enquanto ( aux > 1 )
{
fat := fat * aux; aux := aux - 1;
}
escreva ( "O fatorial e: ", fat);
}
O que está acontecendo...
O algoritmo inicia com a declaração de três variáveis do tipo inteiro. Veja abaixo: inteiro N; inteiro fat; inteiro aux;
// o numero a ser lido
// o fatorial do numero lido
// auxiliar para gerar os fatores
Como você pode observar, o papel desempenhado por elas está descrito na linha de comentário logo após a sua declaração. A linha de comentário é
Interpretador Hall
aquela que começa com os caracteres // (barra-barra). Como a definição de fatorial envolve produtório (vários fatores em multiplicação) é necessário definir uma variável para gerar os vários fatores, em nosso exemplo essa variável é aux. Nesse exemplo estamos fazendo o produtório em ordem decrescente, isto é, partimos de N e chegamos a 1. Desse modo, N é o primeiro fator e por isso fizemos a atribuição inicial à variável aux com esse valor. Veja a linha: aux := N;
// comecando com N
O valor do fatorial será calculado na variável fat através do produtório. O processo se passa da seguinte forma: gera-se gera-se gera-se ... gera-se o primeiro fator, N, o segundo fator, N-1, o terceiro fator, N-2, o n-ésimo fator, N-(N-1)
e, a cada