Fatorial em Portugol com para (VisuAlg)
O fatorial de n (escrito n!) é o produto de todos os inteiros de 1 até n: 5! = 1 × 2 × 3 × 4 × 5 = 120.
O laço para i de 1 ate n faca multiplica o acumulador fat por cada valor de i. O acumulador começa em 1, e não em 0, porque é usado em uma multiplicação.
Código em Portugol
algoritmo "fatorial"
var
n, i, fat: inteiro
inicio
escreva("Digite um número: ")
leia(n)
fat <- 1
para i de 1 ate n faca
fat <- fat * i
fimpara
escreval("O fatorial de ", n, " é ", fat)
fimalgoritmo
Saída do programa
Digitando 5 quando o programa pede:
Digite um número: 5
O fatorial de 5 é 120
Tradução para outras linguagens
O editor traduz qualquer programa em Portugol para C, Java e JavaScript. Veja como fica este exemplo:
O mesmo programa em C
// Algoritmo "fatorial" — traduzido do Portugol para C.
// Para compilar: gcc programa.c -o programa
#include <stdio.h>
int main(void) {
int n = 0;
int i = 0;
int fat = 0;
printf("Digite um número: ");
scanf("%d", &n);
fat = 1;
for (i = 1; i <= n; i++) {
fat = fat * i;
}
printf("O fatorial de %d é %d\n", n, fat);
return 0;
}
O mesmo programa em Java
// Algoritmo "fatorial" — traduzido do Portugol para Java.
// Salve como Main.java e execute: java Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int n = 0;
int i = 0;
int fat = 0;
System.out.print("Digite um número: ");
n = Integer.parseInt(entrada.nextLine().trim());
fat = 1;
for (i = 1; i <= n; i++) {
fat = fat * i;
}
System.out.println("O fatorial de " + n + " é " + fat);
}
}
O mesmo programa em JavaScript
// Algoritmo "fatorial" — traduzido do Portugol para JavaScript.
// Para executar (Node.js): node programa.js
const readline = require('node:readline');
// Lê uma linha digitada no teclado.
const teclado = readline.createInterface({ input: process.stdin });
const linhas = teclado[Symbol.asyncIterator]();
async function leia() {
const linha = await linhas.next();
return linha.done ? '' : linha.value;
}
async function main() {
let n = 0;
let i = 0;
let fat = 0;
process.stdout.write("Digite um número: ");
n = parseInt(await leia(), 10);
fat = 1;
for (i = 1; i <= n; i++) {
fat = fat * i;
}
console.log(`O fatorial de ${n} é ${fat}`);
teclado.close();
}
main();