Este programa calcula o fatorial de um numero inteiro n:
n! = 1 * 2 * 3 * ... * (n-1) * n.
Endereço |
Instrução |
Comentário |
Instrução |
00 |
LER 30 |
Pede o índice do termo a calcular |
3130 |
01 |
CEA 33 |
Carrega acumulador |
1133 |
02 |
ADE |
|
6100 |
03 |
ADE |
|
6100 |
04 |
ADE |
|
6100 |
05 |
ADE |
|
6100 |
06 |
SOM 32 |
|
2132 |
07 |
MUL 31 |
Calcula f(i) |
2331 |
08 |
CAE 32 |
Armazena f(i) |
1232 |
09 |
ADD |
|
6200 |
10 |
ADD |
|
6200 |
11 |
ADD |
|
6200 |
12 |
ADD |
|
6200 |
13 |
CAE 33 |
|
1233 |
14 |
CEA 31 |
i <- i+1 |
1131 |
15 |
SOM 34 |
|
2134 |
16 |
CAE 31 |
|
1231 |
17 |
SUB 30 |
|
2230 |
18 |
DNZ 1 |
salta se i<=n |
5301 |
19 |
IMP 33 |
|
4132 |
20 |
IMP 32 |
|
4133 |
21 |
PAR |
|
7000 |
30 |
|
n |
0 |
31 |
|
i |
1 |
32 |
|
f(n) - lo |
1 |
33 |
|
f(n) - hi |
0 |
34 |
|
1 |
1 |
End. |
Rótulo |
Assembly |
Fluxograma |
|
|
|
|
#include <stdio.h
void main ()
{
int n, f, i;
printf("Digite o numero desejado: ");
scanf("%d", &n);
f = 1;
i = 1;
do {
f = f*i;
i = i + 1;
} while(i <= n);
printf("\nFatorial de %d = %d\n", n,f);
}