O que você vai aprender neste tutorial
- O que é o Fatorial na matemática e qual a sua lógica.
- Como criar um algoritmo em PHP para calcular o fatorial de qualquer número.
- Implementações práticas utilizando os laços
WHILE,FORe o temidoDO WHILE.
O que é o Fatorial de um Número?
O fatorial de um número inteiro positivo (representado pelo símbolo !), é o resultado da multiplicação desse número por todos os seus antecessores maiores que zero.
Por exemplo, chamamos fatorial de um número n, representado por n!, o seguinte cálculo matemático:
n! = 1 x 2 x 3 x ... x (n-1) x n
Vamos ver isso na prática, calculando os primeiros fatoriais:
- 2! = 2 x 1 = 2
- 3! = 3 x 2 x 1 = 6
- 4! = 4 x 3 x 2 x 1 = 24
- 5! = 5 x 4 x 3 x 2 x 1 = 120
A lógica de programação por trás disso é muito simples: se o usuário insere um valor n, basta multiplicarmos 1 por 2, por 3, por 4... até chegar no valor limite n. O fatorial é o produto final de todas essas multiplicações acumuladas.
Script em PHP: Como calcular o Fatorial
Para construir nosso código, precisaremos de algumas variáveis fundamentais. Vamos armazenar em $n o número digitado pelo usuário através do nosso formulário HTML.
O resultado das multiplicações será guardado na variável $fatorial. ⚠️ Atenção: Diferente de somas, onde inicializamos variáveis com 0, na multiplicação precisamos iniciar a variável $fatorial com 1. Se iniciarmos com zero, qualquer multiplicação por zero será zero, e nosso script falharia!
Por fim, usaremos uma variável de controle chamada $count, que começará em 1 e irá até o valor de $n, aumentando de um em um.
1. Cálculo de Fatorial usando o laço WHILE
Nesta abordagem, o laço WHILE (enquanto) verifica a condição antes de executar o bloco. Adicionamos a função intval() para garantir a segurança dos dados recebidos.
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Fatorial com WHILE - PHP Progressivo</title>
</head>
<body>
<form action="" method="get">
<label for="number">Fatorial de:</label>
<input type="number" name="number" id="number" min="0" required />
<input type="submit" value="Calcular" />
</form>
<?php
if (isset($_GET['number'])) {
$n = intval($_GET['number']);
$fatorial = 1;
$count = 1;
while ($count <= $n) {
$fatorial *= $count; // Equivalente a: $fatorial = $fatorial * $count;
$count++;
}
echo "<h3>O fatorial de $n é: $fatorial</h3>";
}
?>
</body>
</html>
2. Cálculo de Fatorial usando o laço FOR
Muitos programadores preferem usar o laço FOR para este tipo de problema matemático. O motivo? Ele é mais compacto e permite declarar a variável de controle, a condição de parada e o incremento na mesma linha de código.
<?php
// Assumindo que o formulário HTML já existe acima
if (isset($_GET['number'])) {
$n = intval($_GET['number']);
$fatorial = 1;
// O laço FOR agrupa a inicialização, a condição e o incremento
for ($count = 1; $count <= $n; $count++) {
$fatorial *= $count;
}
echo "<h3>O fatorial de $n é: $fatorial</h3>";
}
?>
3. Desafio: Consegue resolver usando DO WHILE?
O laço do while é ligeiramente diferente, pois ele executa o bloco de código pelo menos uma vez antes de verificar a condição. Veja como fica a solução para gerar o nosso fatorial:
<?php
if (isset($_GET['number'])) {
$n = intval($_GET['number']);
$fatorial = 1;
$count = 1;
// Tratativa especial: se for 0!, o fatorial é 1 e pulamos o laço
if ($n > 0) {
do {
$fatorial *= $count;
$count++;
} while ($count <= $n);
}
echo "<h3>O fatorial de $n (usando Do While) é: $fatorial</h3>";
}
?>
🛠️ Dica de Mestre: Note que, no do while, precisamos fazer uma verificação extra com if ($n > 0). Como o bloco do é executado antes da verificação, se o usuário digitasse 0, o script multiplicaria o fatorial e incrementaria a variável desnecessariamente. Dominar essas pequenas diferenças lógicas é o que separa um iniciante de um programador sênior!
Nenhum comentário:
Postar um comentário