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
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
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;
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;