Sagot :
Olá,
você não disse qual sintaxe utiliza, então pode ser que tenha que alterar a resposta conforme o que viu em sala. Por exemplo, alguns autores usam IMPRIMA ao invés de ESCREVA, ou então usam { e } ao invés de INÍCIO e FIM, etc.
Coloquei "." no início das linhas para simular a identação e ficar mais fácil de entender.
INICIO
..INTEIRO n,i,resultado;
..ESCREVA("Digite um numero inteiro: ");
..LEIA(n);
..SE n<0 ENTÃO
....ESCREVA("Não há fatorial para numeros negativos!");
..SENÃO SE n>12 ENTÃO
..........ESCREVA("O programa não pode resolver o fatorial para o numero informado!");
........SENÃO SE n<2 ENTÃO
................ESCREVA(n,"! = ");
..............SENÃO
................ESCREVA("Calculo de fatorial ",n,"! = ");
................resultado = 1;
................PARA i DE n ATÉ 2 FAÇA
..................resultado = resultado * i;
..................ESCREVA(i," X ");
................FIMPARA
................SE n>1 ENTÃO ESCREVA (1," = ");
................ESCREVA(resultado);
..............FIMSENÃO
FIM
Para testar o algoritmo, usei o código C:
void main()
{
int n,i,resultado;
//printf("Digite um numero inteiro: ");
//scanf("%d",&n);
n = 5;
if (n<0) printf("Não há fatorial para numeros negativos!");
else if (n>12)
printf("O programa não pode resolver o fatorial para o numero informado!");
else{
if (n<2) printf("%d! = ",n); else printf("Calculo de fatorial %d! = ",n);
resultado = 1;
for (i=n;i>=2;i--){
resultado = resultado * i;
printf("%d X ",i);
}
if (n>1) printf("1 = ");
printf("%d",resultado);
}
}
no qual substituí o LEIA por uma atribuição direta pois usei o compilador online codepad.org.
Para testar os diversos valores de n fui substituindo o comando n=5 por, por ex, n=-1, n=0,
n=12, etc.
Explicando melhor: você pode entrar na página codepad.org e colar o código acima (com a opção da linguagem C marcada). Aí clica em Submit e o site executa o seu código. Só não funcionam comandos de entrada, como scanf (ou seja: LEIA).
Obs: resolvi o exercício conforme solicitado, entretanto uma solução mais "elegante" seria
utilizar uma função recursiva para o fatorial. Caso o tópico de estudo sejam funções
recursivas, por favor escreva outra pergunta deixando isso claro!