PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em PHP - Como calcular Bhaskara em PHPQuantidade de visualizações: 1386 vezes |
|
Como resolver uma equação do 2º grau usando PHP Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem PHP. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso código PHP vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código PHP. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:
<?php
// para executar abra uma janela de comando
// cmd e dispare o comando abaixo:
// C:\xampp\php>php c:\estudos_php\estudos.php
// para ler a entrada do usuário
$entrada = fopen("php://stdin","r");
// vamos pedir para o usuário informar os valores dos coeficientes
echo "Valor do coeficiente a: ";
$a = trim(fgets($entrada));
echo "Valor do coeficiente b: ";
$b = trim(fgets($entrada));
echo "Valor do coeficiente c: ";
$c = trim(fgets($entrada));
// vamos calcular o discriminante
$discriminante = ($b * $b) - (4 * $a * $c);
// a equação possui duas soluções reais?
if($discriminante > 0){
$raiz1 = (-$b + sqrt($discriminante)) / (2 * $a);
$raiz2 = (-$b - sqrt($discriminante)) / (2 * $a);
echo "Existem duas raizes: x1 = " . $raiz1 .
" e x2 = " . $raiz2;
}
// a equação possui uma única solução real?
else if($discriminante == 0){
$raiz1 = $raiz2 = -$b / (2 * $a);
echo "Existem duas raizes iguais: x1 = " . $raiz1 .
" e x2 = " . $raiz2;
}
// a equação não possui solução real?
else if($discriminante < 0){
$raiz1 = $raiz2 = -$b / (2 * $a);
$imaginaria = sqrt(-$discriminante) / (2 * $a);
echo "Existem duas raízes complexas: x1 = " . $raiz1 .
" + " . $imaginaria . " e x2 = " . $raiz2 . " - " . $imaginaria;
}
?>
Ao executar este código PHP nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1 e x2 = -3 |
Java ::: Coleções (Collections) ::: HashMap |
Java Collections - Como usar a classe HashMap da linguagem JavaQuantidade de visualizações: 37371 vezes |
|
A classe HashMap, do pacote java.util, é uma das principais implementações da interface Map. Além de fornecer todas as operações opcionais de um map, esta classe permite a inserção de chaves e valores com o valor null. Em realidade, a classe HashMap é bem similar à classe Hashtable, com a diferença que HashMap não é sincronizada (tenha cuidado ao usuá-la em ambiente de múltiplas threads) e permite valores e chaves null. Veja sua posição na hierarquia de classes Java:
java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
O uso principal da classe HashMap é quando queremos associar chaves e valores e, posteriormente, recuperar valores baseados em suas chaves. Veja um exemplo no qual temos cidades e habitantes:
package arquivodecodigos;
import java.util.*;
public class Estudos{
@SuppressWarnings("unchecked")
public static void main(String[] args){
// cria uma nova instância de HashMap
HashMap cidadesHabitantes = new HashMap();
// vamos adicionar algumas chaves e seus valores
cidadesHabitantes.put("Goiânia", new Integer(4334598));
cidadesHabitantes.put("São Paulo", new Integer(49282768));
cidadesHabitantes.put("Brasília", new Integer(96736887));
// vamos obter uma view dos mapeamentos
Set set = cidadesHabitantes.entrySet();
// obtemos um iterador
Iterator i = set.iterator();
// e finalmente exibimos todas as chaves e seus valores
while(i.hasNext()){
Map.Entry entrada = (Map.Entry)i.next();
System.out.println("Chave: " + entrada.getKey() +
" - Valor: " + entrada.getValue());
}
System.exit(0);
}
}
Ao executar este código nós teremos o seguinte resultado: Chave: Goiânia - Valor: 4334598 Chave: Brasília - Valor: 96736887 Chave: São Paulo - Valor: 49282768 Uma observação importante em relação à classe HashMap é que esta não honra nenhuma ordem específica de seus elementos, ou seja, a ordem dos pares chave-valor em uma operação de exibição pode ser bem diferente da ordem de inserção. |
Python ::: wxPython ::: Controles Visuais Básicos do wxPython |
Como exibir um botão em uma janela wx.Frame do wxPython, detectar um clique no botão e exibir uma caixa de mensagem wx.MessageDialogQuantidade de visualizações: 7743 vezes |
|
Nesta dica mostrarei como podemos usar a função Bind() do wxPython para indicar o código que será chamado ao clicar em um botão, ou seja, ao disparar um evento wx.EVT_BUTTON. Para isso criei uma função OnBtnClick() que é chamada e usa uma caixa de diálogo wx.MessageDialog para exibir uma mensagem indicando que o botão foi clicado. Veja o código wxPython completo para o exemplo:
# vamos importar a biblioteca wxPython
import wx
class Janela(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1,
"Usando wx.Button", size=(350, 200))
# Cria um painel
panel = wx.Panel(self)
# Cria um botão e o adiciona no painel
btn = wx.Button(panel, label="Clique Aqui",
pos=(10, 10), size=(100, 25))
# Anexa um evento ao botão
self.Bind(wx.EVT_BUTTON, self.OnBtnClick, btn)
# Método que será chamado ao clicar o botão
def OnBtnClick(self, event):
dlg = wx.MessageDialog(None, "Você clicou no botão!",
"Usando wx.Button", wx.OK | wx.ICON_INFORMATION)
result = dlg.ShowModal()
dlg.Destroy()
if __name__ == "__main__":
app = wx.App()
janela = Janela()
janela.Show(True)
app.MainLoop()
|
PHP ::: Fundamentos da Linguagem ::: Tipos de Dados |
PHP para iniciantes - Como usar o tipo de dados float do PHPQuantidade de visualizações: 13003 vezes |
|
Números de ponto-flutuante, ou float (também conhecido com double ou real) representam números com casas decimais. Assim como o tipo integer, a faixa de limite deste tipo depende da arquitetura da máquina na qual o PHP está sendo executado. A faixa de números de ponto-flutuante em PHP equivale à faixa do tipo de dados double de seu compilador C. Geralmente esta faixa está entre 1.7E-308 e 1.7E+308 com 15 dígitos de precisão. Se precisarmos de uma precisão ainda maior, podemos usar as extensões BC e GMP. O PHP reconhece números de ponto-flutuante escritos de duas formas diferentes. Eis a que usamos mais comumente: 3.14 0.017 -7.1 E a forma usando notação científica: 0.314E1 // 0.314*101, ou 3.14 17.0E-3 // 17.0*10-3, ou 0.017 Valores de ponto-flutuante são apenas representações aproximadas de números. Por exemplo, em muitos sistemas, 3,5 é na verdade representado como 3,4999999999. Isso quer dizer que devemos ter cuidado ao comparar valores de ponto-flutuante usando ==. O mais correto é comparar usando várias casas decimais:
if(int($a * 1000) == int($b * 1000)){
// comparação baseada em três casas decimais
}
Se quisermos verificar se uma variável é do tipo float, podemos usar as funções is_float() ou is_real(). Veja:
<?
$valor = 0.6;
if(is_float($valor)){
echo 'A variável $valor é do tipo float';
}
?>
|
Nossas 20 dicas & truques de programação mais populares |
|
jQuery - jQuery para iniciantes - Como obter o conteúdo de um elemento HTML usando a função html() do jQuery Delphi - Como obter a quantidade de dias para um determinado ano usando a função DaysInAYear() do Delphi VB.NET - Como usar o laço While em VB.NET |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





