Funções Matemáticas com PHP

Fala galera, hoje nesse artigo vou tentar ensinar algumas funções matemáticas para ajudar nos calculos. Para isso, você terá que conhecer ao menos um pouco da linguagem. No final do artigo disponibilizarei os arquivos para download. Antes de mais nada, vamos lembrar dos conceitos matematicos:

Fatorial:
3! = 3 * 2 * 1
5! = 5 * 4 * 3 * 2 * 1
9! = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1

Exponenciação:
52 = 5 * 5
25 = 2 * 2 * 2 * 2 * 2

Equação de Segundo Grau:
Forma Geral: ax2 + bx + c = 0
Fórmula de Delta: b2 – 4 * a * c
Calculando X: -(b) +- (Raiz quadrada de Delta) / 2 * a

Saiba mais clicando aqui

Vamos aos códigos.

1. Fatorial

<!--?php 
// Numero que será calculado o fatorial
$num = 5;

// Caso seja fatorial de 0
if ($num == 0) {
$num = 1;
}

// Calculando o fatorial
for($i = $num; $i --> 1; $i--) {
$num = $num * ($i - 1);
}

// Exibindo Resultado
echo $num;
?>

Bom, agora vamos entender a lógica:

Linha 3: Esse será o numero da qual vamos calcular o fatorial;

Linha 6, 7 e 8: Devemos lembrar que o fatorial de 0 é igual a 1, portanto definimos: Se $num for igual a 0, seu novo valor será 1;

Linha 11, 12 e 13: é aqui que se acontece tudo, primeiramente for() é utilizado para gerar loops enquanto uma condição for verdadeira. Portanto, estamos dizendo que: $i é igual a $num (definimos o valor); que $i é maior que 1 (condição); que $i vai sofrer um decremento a cada loop. Então o loop vai acontecer da seguinte forma, o $i vai sofrer um decremento e vai multiplicar pelo $num, enquanto o valor de $i ser maior que 1. Podemos visualizar melhor da seguinte maneira:

Inicio do Loop
1° Loop: $i = 4 * $num = 5
2° Loop: $i = 3 * $num = 20
3° Loop: $i = 2 * $num = 60
Fim do Loop

Veja em prática clicando aqui


2. Exponenciação

<!--?php 
// Recebe o numero
$num = 2;
$inicial = $num;

// Recebe o expoente
$exp = 3;

// Caso o valor da exponenciação seja diferente de 0
if ($exp != 0) {
// Calculando o valor
for ($i = 1; $i < $exp; $i++) {
$num = $inicial * $num;
// Caso o valor da exponenciação seje igual a 0
}
} else {
$num = "1";
}

// Exibindo o resultado
echo $num;
?-->

Bom, esse segue o mesmo conceito praticamente, vamos a explicação:

Linha 3: O número que receberá a exponenciação;

Linha 4: Fazemos uma cópia do numero inicial, pois ele terá que ser utilizado no loop;

Linha 7: O número que será elevado;

Linha 10: Verificamos se o valor é diferente de 0, pois todo número elevado a 0 é igual a 1;

Linha 12 e 13: Como já foi dito, o for() vai gerar loops, ou seja, $i = 1; $i é menor que o numero que será elevado; $i receberá um incremento a cada loop. Então:

Inicio do Loop
1° Loop: $i = 1 / $num = 2 * $inicial = 2
2° Loop: $i = 2 / $num = 4 * $inicial = 2
Fim do Loop

Linha 16: Se o valor for igual a 0, o resultado passa a ser 1;

Veja em prática clicando aqui


3. Equação de Segundo Grau

Antes de mais nada, veja em prática clicando aqui

<!--?php 
// Valores
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];

// Descobrindo Delta
$delta = ($b * $b) - ((4 * $a) * $c);

// Calculando os valores de X
$x1 = (-$b + sqrt($delta)) / (2 * $a);
$x2 = (-$b - sqrt($delta)) / (2 * $a);

// Se delta não for negativo, exibe os valores
if ($x1 != "NAN" and $x2 != "NAN") {
// Exibindo os valores
echo "x1 = " . $x1 . "<br ?-->";
echo "x2 = " . $x2;
// Caso delta seja negativo
} else {
echo "Impossivel calcular o valor,
delta negativo (".$delta.")";
}
?>

Linha 3, 4 e 5: Recebe os valores dos campos (a, b e c);

Linha 8: Calcula o valor de delta;

Linha 11 e 12: Calcula os valores de X, a função sqrt() calcula raiz quadrada;

Linha 15: Se os valores de X forem diferente de NAN, ou seja, se o delta for positivo, ele exibe os resultados de x1 e x2;

Linha 20: Caso os valores de X sejem iguais a NAN, ou seja, o delta for negativo, não será possível calcular os valores de X;

Download dos arquivos