Categorias

Teorema de Pitágoras em PHP

Esse script foi desenvolvido com base no Teorema de
Pitágoras, que é usado para encontrar os valores das medidas dos lados do
triângulo reto. Para quem não sabe, sua fórmula é a² = b²+c² que é a
representação da lógica “hipotenusa ao quadrado é igual a soma dos catetos ao
quadrado”. Baseado nessa fórmula, desenvolvi esse Teorema em um script PHP, que
tem como estruturas:

Formulário para a
inserção dos valores dos lados do triângulo

É um formulário simples que utiliza o método post, no
qual seus valores são armazenados em variáveis (mais precisamente as variáveis
a, b e c).

Construção da
fórmula em PHP utilizando as funções pow e sqrt

A função pow permite trabalhar com exponenciais em PHP.
Sendo os dados da fórmula do Teorema elevados ao quadrado, utilizamos essa
função para elevar ao quadrado os dados inseridos nos campos do formulário.
Assim, quando digo que $aquad = pow ($a, 2) estou atribuindo à variável aquad o
valor de a elevado ao quadrado (o expoente desse valor é o 2 da função pow).


a função sqrt é o oposto da função pow, e em PHP é a raiz quadrada da
matemática. Essa função é necessária para que se finalize a equação da fórmula
do Teorema de Pitágoras, pois, já que os dados da fórmula, como já dito, estão
elevados ao quadrado, o resultado da fórmula também estará ao quadrado sem a
definição dessa função. Por exemplo: se eu digo que a² = 20² + 15² eu terei
como resultado a² = 625 e a fórmula, no script terminaria por aí. Mas, como o
resultado da equação pede o valor de a, e não o valor a², utilizamos a função
sqrt para achar a raiz quadrada desse valor. Logo temos que a = raiz quadrada
de a².

Conjunto de
perguntas e respostas que serão enviadas ao usuário segundo os dados inseridos

Esse conjunto de perguntas e respostas foi baseado no que
é verdadeiro e no que é falso em um triângulo reto. Por exemplo: temos que a
hipotenusa NUNCA, em um triângulo reto, é menor do que UM dos catetos. Se isso
acontecer, esse triângulo não é reto e o Teorema de Pitágoras não vale para
essa questão.

Para esse problema, quando
a < b ou a < c, é exibido o resultado “Valor da Hipotenusa menor do que o
valor do outro cateto inserido. Preencha os campos com os valores das medidas
nas caixas correspondentes.” e não é exibido nenhum valor para o lado
procurado.

Obs:

Eu não me preocupei em formatar o script por achar que
isso fica a gosto de cada um. Somente estilizei as respostas, destacando-as em
vermelho.

Teorema de Pitágoras

Hipotenusa (A):

Cateto (B):

Cateto (C):

0)) { echo "Resultado:
Impossível calcular com apenas um valor.

"; } else if ((@$_POST["a"] > 0) && (@$_POST["b"] == 0) && (@$_POST["c"] == 0)) { echo "Resultado:
Impossível calcular com apenas um valor.

"; } else if ((@$_POST["a"] == 0) && (@$_POST["b"] > 0) && (@$_POST["c"] == 0)) { echo "Resultado:
Impossível calcular com apenas um valor.

"; } else if ((@$_POST["a"] < 0) or (@$_POST["b"] < 0) or (@$_POST["c"] < 0)) { echo "Resultado:
Triângulo inexistente

"; } else if ((@$_POST["a"] != 0) && (@$_POST["b"] != 0) && (@$_POST["c"] != 0)) { echo "Resultado:
Três valores já inseridos. Não há o que calcular.

"; } else if ((@$_POST["b"]) && (@$_POST["c"])) { $a = sqrt ($bquad + $cquad); echo "Resultado:
Hipotenusa (A) = $a
Cateto (B) = $b
Cateto (C) = $c

"; } else if ((@$_POST["a"]) && (@$_POST["c"])) { if ($a < $c) { echo "Resultado:
Valor da Hipotenusa menor do que o valor do outro cateto inserido. Preencha os campos com os valores das medidas nas caixas correspondentes.

"; } else { $b = sqrt ($aquad - $cquad); echo "Resultado:
Hipotenusa (A) = $a
Cateto (B) = $b
Cateto (C) = $c

"; } } else if ((@$_POST["a"]) && (@$_POST["b"])) { if ($a < $b) { echo "Resultado:
Valor da Hipotenusa menor do que o valor do outro cateto inserido. Preencha os campos com os valores das medidas nas caixas correspondentes.

"; } else { $c = sqrt ($aquad - $bquad); echo "Resultado:
Hipotenusa (A) = $a
Cateto (B) = $b
Cateto (C) = $c

"; } } else if (($a > $b + $c) or ($b > $a + $c) or ($c > $a + $b)) { echo "Resultado:
Triângulo inexistente.

"; } else { echo "Insira os valores na caixa de texto acima para obter as medidas dos lados do triângulo pedido.


"; } ?>
Script originalmente desenvolvido por Davidson Bruno da Silva - [email protected]