![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
JavaScript ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como testar se um ponto está dentro de um círculo em JavaScript - Desenvolvimento de Games com JavaScriptQuantidade de visualizações: 1703 vezes |
Quando estamos trabalhando com computação gráfica, geometria e trigonometria ou desenvolvimento de jogos em JavaScript, é comum precisarmos verificar se um determinado ponto (uma coordenada x, y) está contido dentro de um círculo. Para melhor entendimento, veja a imagem a seguir: ![]() Veja que temos um círculo com raio igual a 115 e com centro nas coordenadas (x = 205; y = 166). Temos também dois pontos. O ponto vermelho está nas coordenadas (x = 140; y = 90) e o ponto azul está nas coordenadas (x = 330; y = 500. Como podemos ver na imagem, o ponto vermelho está dentro do círculo, enquanto o ponto azul está fora. E nosso intenção nesta dica é escrever o código JavaScript que permite fazer essa verificação. Tenha em mente que está técnica é muito útil para o teste de colisões no desenvolvimento de games. Veja o código completo para o exemplo: <!doctype html> <html> <head> <title>Desenvolvimento de Games usando HTML5 e JavaScript</title> </head> <body> <script type="text/javascript"> // vamos declarar a classe Circulo class Circulo{ constructor(xc, yc, raio){ this.xc = xc; // x do centro this.yc = yc; // y do centro this.raio = raio; // raio do círculo } } // agora vamos declarar a classe Ponto class Ponto{ constructor(x, y){ this.x = x; // coordenada x this.y = y; // coordenada y } } // vamos criar um objeto Circulo var c = new Circulo(90, 50, 115); // vamos criar um objeto Ponto var p = new Ponto(140, 90); // vamos verificar se o ponto está dentro do // círculo var dx = p.x - c.xc; var dy = p.y - c.yc; if((Math.pow(dx, 2) + Math.pow(dy, 2)) < Math.pow(c.raio, 2)){ document.writeln("O ponto está dentro do círculo"); } else{ document.writeln("O ponto NÃO está dentro do círculo"); } </script> </body> </html> Ao executar este código nós teremos o seguinte resultado: O ponto está dentro do círculo. Experimente com círculos de raios e coordenadas centrais diferentes e também com pontos em várias coordenadas e veja como os resultados são interessantes. |
VB.NET ::: Dicas & Truques ::: Data e Hora |
Como retornar o mês da data atual em VB.NET usando a propriedade Month da classe DateTimeQuantidade de visualizações: 8733 vezes |
A propriedade Month da classe DateTime do VB.NET é usada quando queremos retornar o mês de uma determinada data como um número inteiro, ou seja, esta propriedade retorna um valor inteiro na faixa de 1 até 12. Veja o código VB.NET completo para o exemplo: Imports System Module Program Sub Main(args As String()) ' Este exemplo mostra como extrair o mês da data ' atual. Lembre-se de que o mês começa em 1 (janeiro) Dim agora As DateTime = DateTime.Now 'obtém o mês. Dim mes As Integer = agora.Month Console.WriteLine("O mês para esta data é: " & mes) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: O mês para esta data é: 7 |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar herança em Java usando extends - Programação orientada a objetos em JavaQuantidade de visualizações: 29353 vezes |
Quando estamos projetando as classes que farão parte de um sistema, é aconselhável ter em mente um conceito muito importante da programação orientada a objetos: a herança. O que um aluno, um professor e um funcionário possuem em comum? Todos eles são pessoas e, portanto, compartilham alguns dados comuns. Todos têm nome, idade, endereço, etc. E, o que diferencia um aluno de uma outra pessoa qualquer? Um aluno possui uma matrícula; Um funcionário possui um código de funcionário, data de admissão, salário, etc; Um professor possui um código de professor e informações relacionadas à sua formação. É aqui que a herança se torna uma ferramenta de grande utilidade. Podemos criar uma classe Pessoa, que possui todos os atributos e métodos comuns a todas as pessoas e herdar estes atributos e métodos em classes mais específicas, ou seja, a herança parte do geral para o mais específico. Comece criando uma classe Pessoa (Pessoa.java) como mostrado no código a seguir: public class Pessoa{ public String nome; public int idade; } Esta classe possui os atributos nome e idade. Estes atributos são comuns a todas as pessoas. Veja agora como podemos criar uma classe Aluno que herda estes atributos da classe Pessoa e inclui seu próprio atributo, a saber, seu número de matrícula. Eis o código: public class Aluno extends Pessoa{ public String matricula; } Observe que, em Java, a palavra-chave usada para indicar herança é extends. A classe Aluno agora possui três atributos: nome, idade e matricula. Veja um aplicativo demonstrando este relacionamento: public class Estudos{ public static void main(String args[]){ // cria um objeto da classe Aluno Aluno aluno = new Aluno(); aluno.nome = "Osmar J. Silva"; aluno.idade = 36; aluno.matricula = "AC33-65"; // Exibe o resultado System.out.println("Nome: " + aluno.nome + "\n" + "Idade: " + aluno.idade + "\n" + "Matrícula: " + aluno.matricula); } } Ao executar este código nós teremos o seguinte resultado: Nome: Osmar J. Silva Idade: 36 Matrícula: AC33-65 A herança nos fornece um grande benefício. Ao concentrarmos características comuns em uma classe e derivar as classes mais específicas a partir desta, nós estamos preparados para a adição de novas funcionalidades ao sistema. Se mais adiante uma nova propriedade comum tiver que ser adicionada, não precisaremos efetuar alterações em todas as classes. Basta alterar a superclasse e pronto. As classes derivadas serão automaticamente atualizadas. Esta dica foi testada no Java 8. |
VB.NET ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é primo em VB.NETQuantidade de visualizações: 1511 vezes |
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos. É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par. Veja agora um código VB.NET completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não: Imports System Module Program Sub Main(args As String()) Dim primo As Boolean = True ' Vamos assumir que o número é primo ' vamos solicitar um número inteiro positivo Console.Write("Informe um número inteiro positivo: ") Dim numero As Integer = Integer.Parse(Console.ReadLine()) ' o número é negativo? If numero < 0 Then Console.WriteLine("Número inválido.") ' é 0 ou 1? ElseIf ((numero = 0) Or (numero = 1)) Then Console.WriteLine("Número válido, mas não é primo.") ' passou até aqui. Vamos testar se o número é primo Else For i As Integer = 2 To (numero / 2) Step 1 ' se passar no teste, não é primo If (numero Mod i = 0) Then primo = False ' recebe False Exit For End If Next If (primo) Then Console.WriteLine("O número informado é primo") Else Console.WriteLine("O número informado não é primo") End If End If Console.WriteLine("\nPressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: Informe um número inteiro positivo: 9 O número informado não é primo |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como transformar em letras maiúsculas as iniciais de cada palavra em uma string C# usando o método ToTitleCase() da classe TextInfoQuantidade de visualizações: 14283 vezes |
O método ToTitleCase() da classe TextInfo da linguagem C# nos permite converter para letras maiúsculas as inicias de cada uma das palavras que compoem uma frase ou texto. Esta técnica é muito útil quando estamos trabalhando com o processamento de strings em C#. Veja um exemplo completo do uso dessa função: using System; using System.Globalization; namespace Estudos { class Program { static void Main(string[] args) { string frase = "gosto de java e c#"; Console.WriteLine("Frase original: " + frase); // vamos converter cada letra inicial para maiúsculas frase = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(frase); Console.WriteLine("Depois do método ToTitleCase(): " + frase); Console.WriteLine("\n\nPressione qualquer tecla para sair..."); // pausa o programa Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Frase original: gosto de java e c# Depois do método ToTitleCase(): Gosto De Java E C# |
Python ::: Python para Engenharia ::: Engenharia Civil - Concreto, Concreto Armado e Concretos Especiais |
Como calcular a Resistência à Tração do Concreto usando Python - Python para Engenharia Civil e Cálculo EstruturalQuantidade de visualizações: 323 vezes |
A resistência à tração do concreto é a capacidade máxima de tensão de tração que o material pode suportar antes de se romper. Ela é menor que a resistência à compressão do concreto, podendo representar cerca de 10% dela. O concreto pode falhar rapidamente quando submetido a força de tração, como dobramento ou alongamento. Isso acontece porque o concreto é composto por agregados e pasta de cimento, e sua estrutura nunca é completamente homogênea. A resistência à tração direta do concreto é muito útil na determinação da armadura de tração mínima em uma viga de concreto armado, e usada também nos cálculos estruturais em geral (ABNT NBR 6118). Assim, a resistência à tração média do concreto pode ser calculada pela seguinte fórmula: \[f_\text{ctk,m} = 0,3 \cdot \sqrt[3]{{f_\text{ck}}^2}\] Onde: fctk,m é a resistência à tração média do concreto em Mpa; fck é a resistência à compressão do concreto em Mpa. Note que, uma vez obtida a resistência à tração média do concreto (que é um método estatístico), podemos obter seus limites inferior e superior usando as seguintes fórmulas: \[f_\text{ctk,inf} = 0,7 \cdot f_\text{ctk,m}\]\[f_\text{ctk,sup} = 1,3 \cdot f_\text{ctk,m}\] Veja agora o código Python que pede para o usuário informar o FCK do concreto e calcula o fctk,m, fctk,inf e fctk,sup: # vamos importar o módulo Math import math # função principal do programa def main(): # vamos pedir para o usuário informar o FCK do concreto fck = float(input("Informe o FCK do concreto em Mpa: ")) # agora vamos calcular a resistência à tração média # do concreto fctk_m = 0.3 * math.pow(fck, 2.0 / 3.0) # vamos calcular o limite inferior fctk_inf = 0.7 * fctk_m # vamos calcular o limite superior fctk_sup = 1.3 * fctk_m # e mostramos os resultados print("\nO fctk,m é: {0} Mpa ({1} kN/cm2)".format(round(fctk_m, 5), round(fctk_m / 10.0, 5))) print("O fctk,inf é: {0} Mpa ({1} kN/cm2)".format(round(fctk_inf, 5), round(fctk_inf / 10.0, 5))) print("O fctk,sup é: {0} Mpa ({1} kN/cm2)".format(round(fctk_sup, 5), round(fctk_sup / 10.0, 5))) if __name__ == "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe o FCK do concreto em Mpa: 30 O fctk,m é: 2.89647 Mpa (0.28965 kN/cm2) O fctk,inf é: 2.02753 Mpa (0.20275 kN/cm2) O fctk,sup é: 3.76541 Mpa (0.37654 kN/cm2) |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercício Resolvido de Java - A classe Produto (construtores, métodos, getters e setters e encapsulamento)Quantidade de visualizações: 17486 vezes |
Pergunta/Tarefa: Crie uma classe Produto para representar um produto do mundo real. Sua classe deverá conter os seguintes atributos e métodos: 1) Um campo de dados privado do tipo String chamado nome, que representará o nome do produto. 2) Um campo de dados privado do tipo double chamado precoCusto, que guardará o preço de custo do produto. 3) Um campo de dados privado do tipo double chamado precoVenda, que guardará o preço de venda do produto. 4) Um campo de dados privado do tipo double chamado margemLucro, que guardará a margem de lucro do produto. 5) Métodos públicos get() e set() para os atributos acima. Modifique o método setPrecoVenda() para que o preço de venda não seja inferior ao preço de compra. Caso isso aconteça, exiba uma mensagem alertando o usuário. 6) Crie um método chamado calcularMargemLucro() que calculará a margem de lucro do produto. 7) Crie um método chamado getMargemLucroPorcentagem() que retornará a margem de lucro como percentual. Para finalizar, no método main() da classe de teste, crie um novo objeto da classe Produto, peça para o usuário informar os preços de custo e de venda e exiba a margem de lucro em moeda e em percentual. Sua saída deverá ser algo parecido com o mostrado na imagem abaixo: Informe o preço de custo: 120 Informe o preço de venda: 195 Preço de custo: 120.0 Preço de Venda: 195.0 Margem de Lucro: 75.0 Margem de Lucro Percentual (%): 62.5 Veja a resolução comentada deste exercício usando Java console: Produto.java: package estudos; public class Produto{ private String nome; // nome do produto private double precoCusto; // preço de custo do produto private double precoVenda; // preço de venda do produto private double margemLucro; // margem de lucro do produto // obtém a margem de lucro public double getMargemLucro(){ return margemLucro; } // define a margem de lucro public void setMargemLucro(double margemLucro){ this.margemLucro = margemLucro; } // obtém o nome do produto public String getNome(){ return nome; } // define o nome do produto public void setNome(String nome){ this.nome = nome; } // obtém o preço de custo public double getPrecoCusto(){ return precoCusto; } // define o preço de custo public void setPrecoCusto(double precoCusto){ this.precoCusto = precoCusto; } // obtém o preço de venda public double getPrecoVenda(){ return precoVenda; } // define o preço de venda public void setPrecoVenda(double precoVenda){ // o preço de venda não pode ser menor que o preço de custo if(precoVenda < this.precoCusto){ System.out.println("O preço de venda não pode ser inferior ao de custo"); } else{ this.precoVenda = precoVenda; } } // calcula a margem de lucro public void calcularMargemLucro(){ this.margemLucro = this.precoVenda - this.precoCusto; } // retorna a margem de lucro em porcentagem public double getMargemLucroPorcentagem(){ return (this.margemLucro / this.precoCusto) * 100; } } Veja agora o método main() que nos permite testar a funcionalidade da classe Produto: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe Produto Produto p = new Produto(); // vamos ler o preço de custo System.out.print("Informe o preço de custo: "); p.setPrecoCusto(Double.parseDouble(entrada.nextLine())); // vamos ler o preço de venda System.out.print("Informe o preço de venda: "); p.setPrecoVenda(Double.parseDouble(entrada.nextLine())); // vamos calcular a margem de lucro p.calcularMargemLucro(); // vamos exibir os resultados System.out.println("Preço de custo: " + p.getPrecoCusto()); System.out.println("Preço de Venda: " + p.getPrecoVenda()); System.out.println("Margem de Lucro: " + p.getMargemLucro()); System.out.println("Margem de Lucro Percentual (%): " + p.getMargemLucroPorcentagem()); } } |
Python ::: Matplotlib Python Library (Biblioteca Python Matplotlib) ::: Passos Iniciais |
Plotagem e visualização de dados em Python - Como instalar a biblioteca Matplotlib e testar seu funcionamentoQuantidade de visualizações: 3331 vezes |
A biblioteca Matplotlib, escrita originalmente por John D. Hunter em 2003, é um dos pacotes Python mais populares para a plotagem e visualização de dados. O acesso às funcionalidades da Matplotlib é feito por meio da interface Pylab, que lembra muito o MATLAB, a linguagem de programação proprietária desenvolvida pela MathWorks. Os usuários acostumados com essa ferramenta chegam a afirmar que a biblioteca Matplotlib, combinada com a biblioteca NumPy, pode ser considerada o equivalente open source do MATLAB. Já tenho o Matplotlib disponível na minha instalação do Python? Antes de iniciar qualquer projeto que envolva a biblioteca Matplotlib, é importante verificar se a mesma está disponível em sua instalação do Python. Isso pode ser de várias formas. Mostrarei como obter a lista de módulos usando a opção "list" do pip. Basta abrir uma janela de terminal e disparar o seguinte comando: C:\Users\Osmar>pip list Você terá um resultado parecido com: C:\Users\Osmar>pip list Package Version ----------------- ------- astroid 2.4.2 colorama 0.4.4 isort 5.6.4 joblib 1.0.0 lazy-object-proxy 1.4.3 mccabe 0.6.1 numpy 1.19.4 pandas 1.1.5 Pillow 8.0.1 pip 20.3.3 pylint 2.6.0 python-dateutil 2.8.1 pytz 2020.4 scikit-learn 0.24.0 scipy 1.5.4 setuptools 49.2.1 six 1.15.0 threadpoolctl 2.1.0 toml 0.10.2 wrapt 1.12.1 wxPython 4.1.1 # importamos a bibliteca Matplotlib import matplotlib as mp def main(): # vamos mostrar a versão da biblioteca Matplotlib versao = mp.__version__ print("A versão do Matplotlib é:", versao) if __name__== "__main__": main() Se você tiver o Matplotlib instalado, o resultado desse código será algo como: A versão do Matplotlib é: 3.4.1 Se você não tiver a biblioteca Matplotlib instalada, a seguinte mensagem de erro será exibida: Exception has occurred: ModuleNotFoundError File "c:\estudos_python\estudos.py", line 3, in <module> import matplotlib as mp ModuleNotFoundError: No module named 'matplotlib' Não tenho o Matplotlib ainda. O que faço? Abra uma janela de terminal e dispare o comando abaixo: C:\Users\Osmar>pip install matplotlib Depois de alguns segundos você verá o seguinte resultado: Collecting matplotlib Downloading matplotlib-3.4.1-cp39-cp39-win_amd64.whl (7.1 MB) |-| 7.1 MB 3.3 MB/s Requirement already satisfied: pillow>=6.2.0 in c:\python_3_9_1\lib\site-packages (from matplotlib) (8.0.1) Requirement already satisfied: python-dateutil>=2.7 in c:\python_3_9_1\lib\site-packages (from matplotlib) (2.8.1) Requirement already satisfied: numpy>=1.16 in c:\python_3_9_1\lib\site-packages (from matplotlib) (1.19.4) Collecting cycler>=0.10 Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB) Requirement already satisfied: six in c:\users\osmar\appdata\roaming\python\python39\site-packages (from cycler>=0.10->matplotlib) (1.15.0) Collecting kiwisolver>=1.0.1 Downloading kiwisolver-1.3.1-cp39-cp39-win_amd64.whl (51 kB) |-| 51 kB 3.8 MB/s Collecting pyparsing>=2.2.1 Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB) |-| 67 kB 1.7 MB/s Installing collected packages: pyparsing, kiwisolver, cycler, matplotlib Successfully installed cycler-0.10.0 kiwisolver-1.3.1 matplotlib-3.4.1 pyparsing-2.4.7 Obteve resultado parecido? Pronto! Você já pode começar a usar a biblioteca Matplotlib em seus aplicações Python. |
PHP ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de PHP - Escreva um programa PHP para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 1616 vezes |
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor de 8 inteiros $valores = array(0, 3, 0, 5, 7, 4, 0, 9); Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando PHP: <?php // Este código PHP pode ser executado tanto na linha // de comando quanto pelo servidor web // vamos declarar e construir um vetor de 8 inteiros $valores = array(0, 3, 0, 5, 7, 4, 0, 9); // vamos mostrar o vetor na ordem original echo("Vetor na ordem original:\n"); for($i = 0; $i < count($valores); $i++){ echo $valores[$i] . " "; } // vamos inicializar j como 0 para que ele aponte para // o primeiro elemento do vetor $j = 0; // agora o laço for percorre todos os elementos do vetor, // incrementanto a variável i e deixando o j em 0 for($i = 0; $i < count($valores); $i++){ // encontramos um valor que não é 0 if($valores[$i] != 0){ // fazemos a troca entre os elementos nos índices // i e j $temp = $valores[$i]; $valores[$i] = $valores[$j]; $valores[$j] = $temp; // e avançamos o j para o elemento seguinte $j++; } } // agora mostramos o resultado echo "\n\nVetor com os zeros deslocados para o final:\n"; for($i = 0; $i < count($valores); $i++){ echo $valores[$i] . " "; } ?> Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como retornar o primeiro elemento de um vetor em JavaQuantidade de visualizações: 823 vezes |
Pergunta/Tarefa: Escreva um programa Java que mostra como acessar e retornar o primeiro elemento de um array (vetor) Java. Sua saída deverá ser parecida com: Os elementos do vetor são: [9, 5, 3, 2, 4, 8] O primeiro elemento do array é: 9 Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Arrays; public class Estudos { public static void main(String[] args) { // vamos criar um array de inteiros int valores[] = {9, 5, 3, 2, 4, 8}; System.out.println("Os elementos do vetor são: " + Arrays.toString(valores)); // agora vamos retornar o primeiro elemento do vetor int primeiro = valores[0]; // e mostramos o resultado System.out.println("O primeiro elemento do array é: " + primeiro); } } |
Nossas 20 dicas & truques de programação mais populares |
Java - Como adicionar ou subtrair dias de uma data e hora usando o método add() da classe Calendar do Java |
Você também poderá gostar das dicas e truques de programação abaixo |
C - Como ler o conteúdo de um arquivo um caractere de cada vez usando a função fgetc() da linguagem C Python - Como obter o resto de uma divisão de inteiros em Python - O operador módulo % da linguagem Python C# - Como detectar a mudança de estado da CheckBox do C# Windows Forms usando o evento CheckedChanged |
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 |