Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em Java dados dois pontos pertencentes à retaQuantidade de visualizações: 1349 vezes |
Nesta dica de Java veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Java completo para esta tarefa: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ // vamos usar a classe Scanner para ler os dados Scanner entrada = new Scanner(System.in); // vamos ler as coordenadas do primeiro ponto System.out.print("Coordenada x do primeiro ponto: "); double x1 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do primeiro ponto: "); double y1 = Double.parseDouble(entrada.nextLine()); // vamos ler as coordenadas do segundo ponto System.out.print("Coordenada x do segundo ponto: "); double x2 = Double.parseDouble(entrada.nextLine()); System.out.print("Coordenada y do segundo ponto: "); double y2 = Double.parseDouble(entrada.nextLine()); String sinal = "+"; // vamos calcular o coeficiente angular da reta double m = (y2 - y1) / (x2 - x1); // vamos calcular o coeficiente linear double n = y1 - (m * x1); // coeficiente linear menor que zero? O sinal será negativo if (n < 0){ sinal = "-"; n = n * -1; } // mostra a equação reduzida da reta System.out.println("Equação reduzida: y = " + m + "x" + " " + sinal + " " + n); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de C - Escreva um programa C que pede um número inteiro e informa se o número informado é um número de ArmstrongQuantidade de visualizações: 920 vezes |
Pergunta/Tarefa: Um número é chamado de número de Armstrong quando a soma de cada um dos seus dígitos, elevado à quantidade de dígitos do número, equivale ao próprio número. Por exemplo, 153 e 93084 são números de Armstrong, já que: 153 = 13 + 53 + 33 93084 = 95 + 35 + 05 + 85 + 45 Escreva um programa C que pede para o usuário informar um número inteiro e informa se o número informado é um número de Armstrong ou não. Seu código deve usar apenas os operadores matemáticos disponíveis na linguagem C. Sua saída deverá ser parecida com: Informe um número inteiro: 153 O número informado é um número de Armstrong Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <math.h> int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int numero, quant_digitos = 0, temp, resto, soma = 0; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um número printf("Informe um número inteiro: "); scanf("%d", &numero); // o primeiro passo é obter a quantidade de dígitos que o número informado // possui temp = numero; while(temp != 0) { quant_digitos = quant_digitos + 1; temp = temp / 10; } // agora efetuamos o cálculo que verifica se o número é um número // de Armstrong ou não temp = numero; while(temp > 0){ resto = temp % 10; soma = soma + (int)(pow(resto, quant_digitos)); temp = temp / 10; } if(soma == numero){ printf("O número informado é um número de Armstrong"); } else{ printf("O número informado não é um número de Armstrong"); } printf("\n\n"); system("PAUSE"); return 0; } |
AngularJS ::: Angular / AngularJS + JavaScript ::: AngularJS Services (Serviços AngularJS) |
Aprenda a ler dados de um servidor remoto usando o serviço $http do AngularJSQuantidade de visualizações: 1559 vezes |
O serviço $http do AngularJS pode ser usado quando precisamos ler informações vindas de um servidor remoto. Esta comunicação é feita por meio do objeto XMLHttpRequest ou via JSONP. A funcionalidade deste serviço é semelhante às requisições AJAX do jQuery. Vamos ver um exemplo no qual enviamos dois números para uma página PHP e ela nos retorna a soma destes números como uma resposta JSON. Primeiro veja o código PHP que gera o JSON: <?php header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header('Content-type: application/json'); $numero1 = $_GET["numero1"]; $numero2 = $_GET["numero2"]; $soma = $numero1 + $numero2; // vamos gerar o JSON com a soma $res = json_encode(array("soma" => $soma)); // vamos retornar o JSON para a página que chamou esta echo $res; ?> Salve este código como somar.php e experimente chamá-la no seu navegador fornecendo os dois valores a serem somados. Veja: http://localhost/somar.php?numero1=37&numero2=3 Se tudo correr bem, o seguinte resultado será exibido: {"soma":40} Aqui eu usei PHP no servidor remoto, mas você pode usar Java, Perl, Node.js, ASP.NET, etc, desde que o retorno seja JSON. Agora vamos à aplicação AngularJS. Veja o código completo: <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Cadastro de Alunos AngularJS</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.9/angular.min.js"> </script> </head> <body> <script type="text/javascript"> // vamos criar uma nova aplicação var app = angular.module('MinhaApp', []); // vamos criar o controller HttpTesteController app.controller('HttpTesteController', function($scope, $http){ // vamos fazer a conexão remota $http.get("http://localhost/somar.php?numero1=37&numero2=3") .then(function(response){ $scope.resultado = response.data.soma; } ); }); </script> <div ng-app="MinhaApp" ng-controller="HttpTesteController"> <h1>A soma dos valores é: {{resultado}}</h1> </div> </body> </html> Abra esta página no seu navegador web. Você deverá ver um resultado parecido com: A soma dos valores é: 40 Note que usamos o método get() do serviço $http para fazer uma requisição GET para a página PHP. Em dicas dessa seção mostro como fazer requisições POST e também tratar os possíveis erros que podem ocorrer nesta operação. |
Delphi ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter strings em valores TDateTime usando as funções StrToDate() e StrToDateDef() do DelphiQuantidade de visualizações: 18457 vezes |
A função StrToDate() da unit SysUtils é usada quando queremos converter strings em valores TDateTime. No Delphi 2009 esta função possui duas assinaturas:function StrToDate(const S: string): TDateTime; overload; function StrToDate(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload; A primeira versão de StrToDate() recebe uma string contendo uma data e retorna um objeto TDateTime. Veja o seguinte trecho de código: procedure TForm1.Button1Click(Sender: TObject); var data: string; data2: TDateTime; begin // vamos converter a data 22/02/2005 data := '22/02/2005'; // a conversão acontece aqui. Note que, caso a conversão // não seja possível, uma exceção do tipo EConvertError será // disparada (lançada) try data2 := StrToDate(data); ShowMessage(DateTimeToStr(data2)); except on e: EConvertError do ShowMessage('Não foi possível efetuar a conversão: ' + e.Message); end; end; Note que a função StrToDate() lançará uma exceção do tipo EConvertError se a string não possuir uma data válida. Os valores de strings representando datas válidas incluem mês/dia/ano, dia/mês/ano e ano/mês/dia. A ordem de dia, mês e ano é determinada pela variáve global ShortDateFormat. Se fornecermos valores apenas para o dia e o mês a função incluirá o ano atual. Não podemos esquecer a barra de separação de datas. Se seu aplicativo foi desenvolvido para rodar em outras localidades, obtenha o separador de datas por meio da variável global DateSeparator. A primeira versão da função StrToDate() não é segura em relação a threads (thread-safe) devido ao uso de informações de localização contidas em variáveis globais, ou seja, se uma thread modificar os valores de tais variáveis, código sendo executado em outras threads sofrerão as consequencias. Para evitar isso podemos usar a segunda versão de StrToDate(), que usa um objeto FormatSettings para guardar as informações de localização. Veja um exemplo: procedure TForm1.Button1Click(Sender: TObject); var data: string; data2: TDateTime; formato: TFormatSettings; begin // vamos converter a data 22/02/2005 data := '22/02/2005'; // a conversão acontece aqui. Note que, caso a conversão // não seja possível, uma exceção do tipo EConvertError será // disparada (lançada) try GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formato); data2 := StrToDate(data, formato); ShowMessage(DateTimeToStr(data2)); except on e: EConvertError do ShowMessage('Não foi possível efetuar a conversão: ' + e.Message); end; end; A função StrToDateDef() é similar à função StrToDate(). A diferença é que, se a string possuir uma data inválida, a função StrToDateDef() retorna uma data padrão, ou seja, não haverá nenhuma exceção atirada. Veja: procedure TForm1.Button1Click(Sender: TObject); var data: string; data2: TDateTime; begin // vamos converter a data 2s2/02/2005 (inválida) data := '2s2/02/2005'; // a conversão acontece aqui. Note que, caso a conversão // não seja possível, a data atual será retornada data2 := StrToDateDef(data, Now); ShowMessage(DateTimeToStr(data2)); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C# ::: Windows Forms ::: DataGridView |
Como ocultar ou exibir os títulos das colunas de um DataGridView do C# Windows Forms usando a propriedade ColumnHeadersVisibleQuantidade de visualizações: 8040 vezes |
Os títulos das colunas de um DataGridView podem ser ocultados definindo-se o valor false para a propriedade ColumnHeadersVisible. Veja:dataGridView1.ColumnHeadersVisible = false; Para exibir os títulos das colunas novamente só precisamos fornecer o valor true. Veja: dataGridView1.ColumnHeadersVisible = true; |
JavaScript ::: DOM (Document Object Model) ::: Eventos JavaScript + DOM (Document Object Model) |
Como usar o evento DOMContentLoaded para verificar se o DOM (Document Object Model) já está disponível para manipulação via JavaScriptQuantidade de visualizações: 2386 vezes |
Em algumas situações nós precisamos iniciar a manipulação dos elementos de uma página HTML a partir de nossos códigos JavaScript mas não sabemos com certeza se os elementos do DOM (Document Object Model) já estão disponíveis para acesso. Para essas situações nós podemos usar o evento DOMContentLoaded, que é disparado quando todo o conteúdo DOM já estiver carregado, mesmo que imagens e folhas de estilo CSS ainda estejam pendentes de carregamento. Vamos ver um exemplo? Considere o código JavaScript abaixo (incluindo o código HTML): <html> <head> <title>Estudos PHP</title> <script type="text/javascript"> // vamos obter uma referência ao elemento DIV var divElem = document.getElementById("m_div"); // vamos a cor do texto da DIV divElem.style.color = 'blue'; </script> </head> <body> <div id="m_div">Sou um elemento DIV</div> </body> </html> Veja que temos um elemento DIV na parte <body> do página e, na parte <head> temos um código JavaScript que tenta alterar a cor do texto da DIV. Como já era de se esperar, ao abrirmos este documento HTM no navegador, teremos o seguinte erro: Uncaught TypeError: Cannot read property 'style' of null at index.html:9 Isso aconteceu porque o código JavaScript foi executado antes que o elemento DIV fosse inserido no DOM da página. Para evitar isso, só precisamos usar o evento DOMContentLoaded. Veja a nova versão do código: <html> <head> <title>Estudos PHP</title> <script type="text/javascript"> // vamos tratar o evento DOMContentLoaded document.addEventListener('DOMContentLoaded', function(e){ // vamos obter uma referência ao elemento DIV var divElem = document.getElementById("m_div"); // vamos a cor do texto da DIV divElem.style.color = 'blue'; }); </script> </head> <body> <div id="m_div">Sou um elemento DIV</div> </body> </html> Agora execute o exemplo novamente e veja como o texto do elemento DIV é colorido de azul, uma boa indicação de que o evento DOMContentLoaded foi disparado com sucesso. Note ainda como usamos o método addEventListener() do objeto document para fazer a associação do evento. |
VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço Do...While...Loop do VB.NETQuantidade de visualizações: 17672 vezes |
Um instrução de repetição (também chamada de laço ou loop) permite que um bloco de códigos seja executado repetidamente até que uma condição seja satisfeita. O laço Do...While...Loop é usado quando queremos testar uma condição e, executar um bloco de código repetidamente enquanto esta condição for verdadeira. Lembre-se de que, se a condição já for falsa, o laço nunca será executado. Veja um exemplo de laço Do...While...Loop que nos permite exibir os números de 0 a 10: Dim numero As Integer = 0 Do While numero <= 10 Console.WriteLine(numero) numero += 1 Loop Veja uma nova versão deste código, desta vez contando de 10 a 0: Dim numero As Integer = 10 Do While numero >= 0 Console.WriteLine(numero) numero -= 1 Loop Aqui nós estamos novamente avaliando uma condição, ou seja, se o resultado da condição for True, a execução do laço continua. Se for False, o laço pára. Veja um exemplo no qual a condição booleana está bem explícita: Dim pode As Boolean = True Dim valor As Integer = 1 Do While pode Console.WriteLine(valor) valor += 1 If valor > 20 Then pode = False End If Loop |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como excluir o item ou itens selecionados em uma TListBox do Delphi usando a função DeleteSelectedQuantidade de visualizações: 13398 vezes |
Em algumas ocasiões nós precisamos excluir o item ou os itens selecionados em uma TListBox. Isso pode ser feito com o auxílio do método DeleteSelected da classe TListBox. Veja um trecho de código no qual excluímos apenas o item selecionado:procedure TForm3.FormCreate(Sender: TObject); begin // vamos adicionar alguns itens na ListBox ListBox1.Items.Add('Goiânia'); ListBox1.Items.Add('Curitiba'); ListBox1.Items.Add('Brasilia'); end; procedure TForm3.Button1Click(Sender: TObject); begin // vamos excluir o item selecionado ListBox1.DeleteSelected; end; É possível conseguir o mesmo resultado usando o método Delete() do objeto Items (do tipo TStrings). Veja: procedure TForm3.Button1Click(Sender: TObject); begin // vamos excluir o item selecionado ListBox1.Items.Delete(ListBox1.ItemIndex); end; Note que o método Delete() do objeto Items exige o índice do elemento a ser removido. Com o método DeleteSelected da classe TListBox esta exigência não existe. Além disso, o método DeleteSelected permite excluir mais de um elemento selecionado, ou seja, ele excluir todos os elementos selecionados. Veja: procedure TForm3.FormCreate(Sender: TObject); begin // vamos adicionar alguns itens na ListBox ListBox1.Items.Add('Goiânia'); ListBox1.Items.Add('Curitiba'); ListBox1.Items.Add('Brasilia'); // para que este exemplo funcione corretamente, a ListBox // deverá permitir seleção múltipla ListBox1.MultiSelect := True; end; procedure TForm3.Button1Click(Sender: TObject); begin // vamos excluir todos os itens selecionados ListBox1.DeleteSelected; end; Execute este código, selecione mais de um item e clique no botão para verificar o resultado. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
PHP ::: Boletos Bancários, Arquivos de Remessa e Retornos do Banco ::: Caixa Econômica Federal - Banco 104 |
Boleto Bancário PHP - Como calcular o dígito verificador da conta corrente - Módulo 11 - Boleto Caixa Econômica CNAB240Quantidade de visualizações: 1896 vezes |
Nesta dica mostrarei, passo-a-passo, como calcular o dígito verificador da conta corrente para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104) de acordo com o Manual de Leiaute de Arquivo Eletrônico Padrão CNAB 240 - Cobrança Bancária Caixa - SIGCB - Versão 67.118 v024 micro. Tenha certeza de verificar sua versão do manual antes de usar o código abaixo. O Dígito Verificador da Conta é um código adotado pelo banco, em nosso caso a Caixa Econômica, para verificação da autenticidade do número da conta corrente, e tal número deverá ser calculado através do módulo 11. Mostro abaixo o código completo para o cálculo do dígito verificador. Note que só precisamos informar o número da conta (sem o dígito) e o código se encarrega de calcular o dígito. Aqui eu informei o número da conta em uma variável, mas você pode modificar o código para que o valor venha de um formulário ou do banco de dados. Eis o código PHP: <?php // função que recebe o número da conta e devolve // o dígito verificador function digitoVerificadorConta($conta){ // primeiro vamos remover os espaços do número da conta $conta = trim($conta); // agora precisamos adicionar os zeros necessários // para completar 12 posições $conta = sprintf("%012d", $conta); // agora vamos definir os índices de múltiplicação $indices = "543298765432"; // e aqui a soma da multiplicação coluna por coluna $soma = 0; // fazemos a multiplicação coluna por coluna agora for($i = 0; $i < strlen($conta); $i++){ $soma = $soma + ((int)($conta[$i])) * ((int)($indices[$i])); } // obtemos o resto da divisão da soma por onze $resto = $soma % 11; // subtraímos onze pelo resto da divisão $digito = 11 - $resto; // atenção: Se o resultado da subtração for // maior que 9 (nove), o dígito será 0 (zero) if($digito > 9){ $digito = 0; } return $digito; } // vamos obter o dígito verificador para a conta a seguir $conta = "109990"; $digito = digitoVerificadorConta($conta); echo "O dígito verificador para a conta " . $conta . " é: " . $digito; ?> Ao executar este código PHP nós teremos o seguinte resultado: O dígito verificador para a conta 109990 é: 6 É importante observar que o dígito verificador da agência e também do par agência/conta são sempre informados pela Caixa, geralmente pela agência na qual nossos clientes possuem conta. |
JavaScript ::: Desafios e Lista de Exercícios Resolvidos ::: JavaScript Básico |
Exercício Resolvido de JavaScript - Como somar dois números em JavaScript - O operador de adição da linguagem JavaScriptQuantidade de visualizações: 1771 vezes |
Pergunta/Tarefa: Escreva um programa JavaScript para somar dois números, ou seja, dois valores numéricos inteiros. O usuário deverá informar os dois valores. Para efetuar a leitura dos números você pode usar a função window.prompt() e, para exibir o resultado, use a função window.alert(). Sua saída deverá ser parecida com: Informe o primeiro número: 7 Informe o segundo número: 3 A soma dos números é: 10 Veja a resolução comentada deste exercício em JavaScript: <!doctype html> <html> <head> <title>Exercícios de JavaScript</title> </head> <body> <script type="text/javascript"> // vamos ler dois números do usuário var num1 = Number.parseInt(window.prompt( "Informe o primeiro número:")); var num2 = Number.parseInt(window.prompt( "Informe o segundo número:")); // agora vamos somar os dois números var soma = num1 + num2; // e mostramos o resultado window.alert("A soma dos números é: " + soma); </script> </body> </html> |
Nossas 20 dicas & truques de programação mais populares |
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 |