Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
C# ::: Dicas & Truques ::: Data e Hora

Como calcular os dias restantes para uma data em C# usando um objeto TimeSpan

Quantidade de visualizações: 9013 vezes
Em algumas ocasiões precisamos saber a quantidade de dias restantes para uma determinada data no futuro em C# (próximo Natal, próxima Páscoa, vencimento de uma duplicata, etc). O trecho de código abaixo mostra como isso pode ser feito. Veja que usamos o construtor da estrutura DateTime para construir a data no futuro e então subtraímos desta a data atual. Em seguida obtemos a quantidade de dias do TimeSpan resultante:

static void Main(string[] args){
  // vamos obter a quantidade de dias restantes para o Natal de
  // 2009
  DateTime data_futura = new DateTime(2009, 12, 25);  // 25/12/2009
  DateTime hoje = DateTime.Now;

  // obtém a quantidade de dias restantes
  TimeSpan dif = data_futura.Subtract(hoje);
......



R ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o seno de um número ou ângulo usando a função sin() da linguagem R

Quantidade de visualizações: 1282 vezes
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula:

\[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \]

Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem R. Esta função recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

> sin(0) [ENTER]
[1] 0
> sin(1) [ENTER]
[1] 0.841471
......


Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo:




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 JavaScript

Quantidade de visualizações: 1233 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	
......


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.


Python ::: Python para Engenharia ::: Física - Mecânica - Estática

Como calcular o centroide ou centro de gravidade de um triângulo em Python

Quantidade de visualizações: 1203 vezes
O centro de gravidade, ou centroide (centro geométrico), é o ponto no qual a massa de um triângulo se equilibra. Para ajudar a visualizar isso, imagine uma figura triangular suspensa sobre a ponta de um lápis. A figura vai se equilibrar se a ponta do lápis for posicionada em seu centro de gravidade. Encontrar o centroide pode ser necessário em vários projetos e aplicações de engenharia, e pode ser encontrado usando geometria simples.

Veja a seguinte figura:



Nesta figura nós temos os três vértices do triângulo devidamente registrados, assim como o ponto representando seu centroide. Assim, a fórmula do centroide do triângulo é:

\[x_c = \frac{x_1 + x_2 + x_3}{3}\]
\[y_c = \frac{y_1 + y_2 + y_3}{3}\]

Agora vamos ver como calcular o centro de gravidade do triângulo em Python. Para isso nós vamos pedir para o usuário informar as coordenadas dos três vértices do triângulo e, em seguida, vamos mostrar as coordenadas do ponto que representa o centroide. Veja:

# função principal do programa
def main():
  # vamos ler as coordenadas do primeiro vértice
  va_x = float(input("Informe o x do primeiro vértice: "))
  va_y = float(input("Informe o y do primeiro vértice: "))

  # vamos ler as coordenadas do segundo vértice
  vb_x = float(input("Informe o x do segundo vértice: "))
  vb_y = float(input("Informe o y do segundo vértice: "))

  # vamos ler as coordenadas do terceiro vértice
......


Ao executar este código Python nós teremos o seguinte resultado:

Informe o x do primeiro vértice: 3
Informe o y do primeiro vértice: 10
Informe o x do segundo vértice: 12
Informe o y do segundo vértice: 15
Informe o x do terceiro vértice: 14
Informe o y do terceiro vértice: 7
As coordenadas do centroide são: x=9.67; y=10.67


JavaScript ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

JavaScript Avançado - Como escrever uma função JavaScript que aceita um número variável de argumentos

Quantidade de visualizações: 7900 vezes
Em algumas situações precisamos criar funções JavaScript que aceitam um número variável de argumentos, ou seja, queremos ser capazes de chamar a função e fornecer 0, 1, 2 ou mais argumentos. Nesta dica eu mostrarei como isso é possível.

A técnica aqui é usar o objeto arguments, que representa os argumentos da função que está sendo executada no momento. Para saber a quantidade de argumentos fornecidos, só precisamos usar a propriedade length deste objeto. A partir daí um laço for nos permite acessar cada um dos argumentos fornecidos individualmente.

Veja uma página HTML contendo uma função JavaScript que permite somar os valores fornecidos como argumentos. Note que podemos passar quantos valores quisermos para a função:

<html>
<head>
<title>Estudos JavaScript</title>

<script type="text/javascript">
  function somar(){
    var soma = 0;

    // vamos percorrer os argumentos fornecidos
    for(var i = 0; i < arguments.length; i++){
      soma += arguments[i];
    }
......


O objeto argumentos não pode ser criado explicitamente. Este objeto está disponível somente quando uma função inicia sua execução. O objeto arguments de uma função não é um array (matriz), mas os argumentos individuais podem ser acessados da mesma forma que os elementos de um array, ou seja, usando índices. O índice é, na verdade, uma referência a uma das propriedades 0...n do objeto arguments.


C ::: Dicas & Truques ::: Strings e Caracteres

Como copiar os caracteres de uma string para outra usando a função strcpy() da linguagem C

Quantidade de visualizações: 12537 vezes
Pessoas acostumadas com Delphi, Java ou PHP podem pensar que a tarefa de copiar o conteúdo de uma string para outra em C pode ser tão simples quanto o código a seguir:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]){
  char frase1[] = "Gosto de PHP";
  char frase2[50]; // pode receber até 49 caracteres
......


Este código não funciona. No Dev-C++ (MingW) a seguinte mensagem de erro de compilação é exibida:

incompatible types in assignment 
......


Em C, a forma correta de copiar os caracteres de uma string para outra é obtendo ponteiros para a posição inicial das duas strings, percorrer todos os caracteres da primeira e atribuí-los um de cada vez nas posições de memória reservadas para a segunda string. Veja o protótipo da função strcpy(), usada para tal finalidade:

char *strcpy(char *destino, const char *origem);
......


Como podemos ver, a função copiará todos os caracteres contidos na string origem para a string destino. É importante observar que a string destino deverá ser declarada de forma que todos os caracteres a serem copiados possam ser acomodados sem que o programa corra o risco de escrever em áreas de memória reservadas a outras finalidades. Veja um exemplo completo:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]){
  char frase1[] = "Gosto de PHP";
  char frase2[50]; // pode receber até 50 caracteres
......



Java ::: Classes e Componentes ::: JComboBox

Como classificar os itens de um JComboBox do Java Swing em ordem alfabética

Quantidade de visualizações: 10094 vezes
Este exemplo mostra como ordenar os itens de um JComboBox do Java Swing. A melhor forma de fazer isso é ordenando o array de strings antes de passá-lo para o construtor da classe JComboBox.
Se novos itens forem inseridos em tempo de execução, a melhor saída é extender a classe DefaultComboBoxModel e fornecer tal funcionalidade.

Veja o código Java completo para o exemplo:

package estudos;

import java.awt.*;
import javax.swing.*;
import java.util.*;

public class Estudos extends JFrame{
  public Estudos(){
    super("A classe JComboBox");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    // Cria o array que armazenará os itens do
    // combo box
    String[] nomes = {"Osmar", "Cristina", "Antônio",
      "Marcela", "Joaquim"};  
......



Delphi ::: Dicas & Truques ::: Matemática e Estatística

Como arredondar casas decimais para baixo usando a função Floor() do Delphi

Quantidade de visualizações: 13434 vezes
A função Floor(), presente na unit Math, é útil quando queremos arrendondar valores de ponto-flutuante (valores com casas decimais) para baixo, ou seja, para o maior inteiro menor ou igual ao valor fornecido. Veja um exemplo:

procedure TForm2.Button1Click(Sender: TObject);
var
  valor: Real;
  resultado: Integer;
begin
  // uses Math

  valor := 8.74;

  // vamos arredondar o valor para baixo
......


Note que os valores 8.0001, 8.3, 8.1, 8.99, etc, serão todos arredondados para 8. No entanto, 9.0 é arredondado para 9.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


C++ Builder ::: VCL - Visual Component Library ::: TEdit

Como obter a quantidade de caracteres em um TEdit usando a função GetTextLen() do C++ Builder

Quantidade de visualizações: 5992 vezes
Em algumas ocasiões nós precisamos descobrir a quantidade de caracteres contidos em uma caixa de texto do tipo TEdit. Para isso podemos usar o método GetTextLen() do C++ Builder, definido originalmente na classe TControl. Esta função retorna um valor inteiro contendo o tamanho do texto da caixa de texto.

Veja um exemplo do uso do método GetTextLen() no trecho de código a seguir:

void __fastcall TForm3::Button2Click(TObject *Sender)
{
  // vamos obter a quantidade de caracteres no TEdit
  int tamanho = Edit1->GetTextLen();
......


Ao executar este exemplo você terá um resultado parecido com:

O Edit contém 5 caracteres.


Java ::: Pacote java.lang ::: Character

Como usar o método isDigit() da classe Character da linguagem Java para verificar se um caractere é um dígito de 0 a 9

Quantidade de visualizações: 9059 vezes
Em algumas situações, principalmente quando estamos validando dados informados pelo usuário, pode ser necessário verificar se um determinado caractere é um dígito de 0 a 9. Isso pode ser feito por meio do método isDigit() da classe Character. Este método estático recebe um caractere como argumento e retorna true se o caractere for um dígito e false em caso contrário.

Veja um exemplo no qual lemos um caractere informado pelo usuário e informamos se o mesmo é um dígito ou não:

import javax.swing.JOptionPane;

public class Main {
  public static void main(String[] args) {
    // vamos pedir ao usuário para informar um caractere qualquer
    char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0);
    
    // vamos testar se o caractere informado é um dígito
......


Uma outra forma de verificar se um determinado caractere é um dígito é testar se o retorno de uma chamada ao método estático getType() da classe Character é a constante DECIMAL_DIGIT_NUMBER, também definida na classe Character. Veja uma modificação do exemplo anterior:

import javax.swing.JOptionPane;

public class Main {
  public static void main(String[] args) {
    // vamos pedir ao usuário para informar um caractere qualquer
    char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0);
    
    // vamos testar se o caractere informado é um dígito
......


Finalmente, veja como ler uma string e verificar se ela contém apenas dígitos de 0 a 9:

import javax.swing.JOptionPane;

public class Main {
  public static void main(String[] args) {
    // vamos pedir ao usuário para informar uma string
    String str = JOptionPane.showInputDialog("Informe uma string:");
    
    // vamos verificar se a string contém apenas dígitos de 0 a 9
    boolean soDigitos = true;
    
    // percorre todos os caracteres da string
    for(int i = 0; i < str.length(); i++){
......


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 18 usuários muito felizes estudando em nosso site.