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: 1216 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 |
C# ::: Dicas & Truques ::: Data e Hora |
Como testar se um ano é bissexto em C# usando a função IsLeapYear() da classe DateTimeQuantidade de visualizações: 14438 vezes |
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:static void Main(string[] args){ // vamos verificar se o ano 2008 // é bissexto int ano = 2008; if(DateTime.IsLeapYear(ano)){ Console.WriteLine("O ano informado é bissexto"); } else{ Console.WriteLine("O ano informado NÃO é bissexto"); } // pausa o programa Console.ReadKey(); } Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um diretório existe em PHP usando a função file_exists()Quantidade de visualizações: 18993 vezes |
Em algumas situações nós precisamos verificar se um determinado diretório existe no sistema antes de efetuarmos alguma operação. Para isso nós podemos usar a função file_exists(). Esta função retorna um valor true se o diretório existir e false em caso contrário. Veja um código PHP completo demonstrando o seu uso: <?php $diretorio = "arquivo/imagens"; if(file_exists($diretorio)){ echo "O diretório já existe."; } else{ echo "O diretório não existe ainda."; } ?> |
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: 7554 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() |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como retornar o item selecionado em uma ListBox do Delphi usando a propriedade ItemIndexQuantidade de visualizações: 20407 vezes |
O item selecionado em uma TListBox pode ser obtido fornecendo-se o índice do ítem selecionado como índice para a propriedade Items (do tipo TStrings) da ListBox. Veja como isso é feito no trecho de código abaixo:procedure TForm1.Button1Click(Sender: TObject); var item_selecionado: String; begin // vamos obter o item selecionado na ListBox item_selecionado := ListBox1.Items[ListBox1.ItemIndex]; // mostra o resultado ShowMessage('O item selecionado é: ' + item_selecionado); end; Contudo, este código provocará uma exceção do tipo EStringListError com a mensagem "List index out of bonds(-1)" se nenhum item estiver selecionado na ListBox. Para evitar tal erro, certifique-se de verificar se algum item foi selecionado antes de tentar obtê-lo. Veja: procedure TForm1.Button1Click(Sender: TObject); var item_selecionado: String; begin // vamos obter o item selecionado na ListBox if ListBox1.ItemIndex > -1 then begin item_selecionado := ListBox1.Items[ListBox1.ItemIndex]; // mostra o resultado ShowMessage('O item selecionado é: ' + item_selecionado); end else ShowMessage('Nenhum item selecionado.'); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como criar, preencher e exibir os valores de uma matriz de duas dimensões de inteiros em Java - RevisadoQuantidade de visualizações: 12423 vezes |
Nesta dica mostrarei como declarar e instanciar uma matriz (array) de duas dimensões de ints em Java. Note que temos duas linhas e cada linha possui duas colunas. Neste exemplo os valores da matriz já estão pré-definidos, mas você pode ver mais dicas nessa seção para aprender como solicitar que o usuário informe os valores de cada linha de coluna. Veja o código completo: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ int valores[][] = {{1, 2, 3}, {4, 5, 6}}; // varre todos os elementos do array e os // exibe usando linhas e colunas for(int lin = 0; lin < valores.length; lin++){ for(int col = 0; col < valores[lin].length; col++){ System.out.printf("%d ", valores[lin][col]); } System.out.println(); } System.exit(0); } } Ao executar este exemplo nós teremos o seguinte resultado: 1 2 3 4 5 6 Esta dica foi revisada e testada no Java 8. |
JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como remover elementos duplicados de um array em JavaScript usando as funções filter() e indexOf() do objeto ArrayQuantidade de visualizações: 4967 vezes |
Em várias ocasições temos códigos JavaScript envolvendo arrays (vetores, matrizes) e gostaríamos de eliminar os valores duplicados, ou seja, retornar um novo vetor sem elementos repetidos. Para isso podemos usar os métodos filter() e indexOf(). Como pode ser visto em dicas nesta mesma seção, o método filter() é usado para retornar apenas os elementos do vetor que se encaixem em uma determinada condição. O método indexOf(), por sua vez, retorna o índice da primeira ocorrência do elemento no vetor. Assim, a combinação desses dois métodos é perfeita para esta situação, ainda que você consiga fazer de outras formas. Veja o trecho de código a seguir: <script type="text/javascript"> function removerDuplicados(valor, indice, vetor){ // o índice desse elemento é o primeiro encontrado // no vetor? if(indice == vetor.indexOf(valor)){ return true; } return false; } var valores = new Array(6, 6, 1, 7, 3, 7, 1, 7, 4, 3, 5); // vamos obter um vetor sem repetições var novoVetor = valores.filter(removerDuplicados); // vamos mostrar o resultado window.alert(novoVetor); </script> Execute este código e veja que apenas os valores únicos serão retornados. Note agora como o mesmo código pode ser escrito de forma mais reduzida: <script type="text/javascript"> var valores = new Array(8, 8, 1, 7, 3, 7, 1, 7, 8, 3, 5); // vamos obter um vetor sem repetições var novoVetor = valores.filter(function(val, ind, vet){ return vet.indexOf(val) == ind; }); // vamos mostrar o resultado window.alert(novoVetor); </script> |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Portugol - Faça um algoritmo em Portugol que leia 9 números inteiros, guarde-os em uma matriz 3x3 e mostre os números paresQuantidade de visualizações: 1079 vezes |
Pergunta/Tarefa: Faça um algoritmo em Portugol que leia 9 números inteiros e guarde-os em uma matriz 3x3. Imprima a matriz no formato tabular, usando a melhor formatação que você conseguir. Em seguida, percorra a matriz novamente e imprima somente os números que são pares, todos na mesma linha e separados por espaço. Sua saída deverá ser parecida com: Linha 1 e coluna 1: 8 Linha 1 e coluna 2: 1 Linha 1 e coluna 3: 5 Linha 2 e coluna 1: 3 Linha 2 e coluna 2: 9 Linha 2 e coluna 3: 30 Linha 3 e coluna 1: 7 Linha 3 e coluna 2: 23 Linha 3 e coluna 3: 10 Valores na matriz 8 1 5 3 9 30 7 23 10 Os valores pares são: 8 30 10 Veja a resolução completa para o exercício em Portugol, comentada linha a linha (fiz a resolução no Portugol Webstudio): // Um algoritmo que lê uma matriz 3x3 programa { funcao inicio() { // variáveis usadas na resolução do problema inteiro matriz[3][3] inteiro i, j // vamos pedir para o usuário informar os valores // dos elementos da matriz, uma linha de cada vez para (inteiro i = 0; i < 3; i++) { para (inteiro j = 0; j < 3; j++) { escreva("Linha ", (i + 1), " e coluna ", (j + 1), ": ") leia(matriz[i][j]) } } // vamos mostrar a matriz da forma que ela foi informada escreva("\nValores na matriz:\n\n") para (inteiro i = 0; i < 3; i++) { para (inteiro j = 0; j < 3; j++) { escreva(matriz[i][j], " ") } // passa para a próxima linha da matriz escreva("\n") } // agora vamos percorrer a matriz novamente e mostrar // apenas os valores pares escreva("\nOs valores pares são: ") para (inteiro i = 0; i < 3; i++) { para (inteiro j = 0; j < 3; j++) { // é um número par? se (matriz[i][j] % 2 == 0) { escreva(matriz[i][j], " ") } } } } } |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Apostila Java para iniciantes - Como substituir um caractere em uma string usando o método setCharAt() da classe StringBuffer do JavaQuantidade de visualizações: 151 vezes |
Nesta dica mostrarei como podemos usar o método setCharAt() da classe StringBuffer da linguagem Java para substituir caracteres individuais em uma palavra, frase ou texto. Veja um código completo, no qual trocamos a letra "j" por "J": package arquivodecodigos; public class Estudos{ public static void main(String[] args){ StringBuffer frase = new StringBuffer("Programar em java."); System.out.println(frase); frase.setCharAt(13, 'J'); // troca 'j' por 'J' System.out.println(frase); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Programar em java. Programar em Java. |
JavaScript ::: Dicas & Truques ::: Mouse e Teclado |
Como obter o código da tecla pressionada em um elemento HTML usando o evento onkeypress do JavaScriptQuantidade de visualizações: 270 vezes |
Nesta dica eu mostrarei como é possível usar o evento onkeypress do HTML + JavaScript para obter o código da tecla pressionada pelo usuário. Note que usei a propriedade keyCode do objeto event para capturar o código da tecla. Veja o código JavaScript completo, incluindo a página HTML: <html> <head> <title>Estudando JavaScript</title> </head> <body> <p>Experimente pressionar qualquer tecla e uma mensagem mostrará o código da tecla pressionada.</p> <script type="text/javascript"> function tecla(){ window.alert("O código da tecla pressionada foi: " + event.keyCode); } document.body.onkeypress = tecla; </script> </body> </html> Abra esta página no seu navegador e experimente pressionar uma tecla. Se você presssionar, por exemplo, a tecla "a", teremos a seguinte mensagem: O código da tecla pressionada foi: 97 |
Nossas 20 dicas & truques de programação mais populares |
MySQL - Como excluir a chave primária de uma tabela MySQL usando o comando ALTER TABLE DROP PRIMARY KEY C - Como alocar memória para instâncias de uma estrutura (struct) e acessá-las usando ponteiros em C |
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 |