Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Java ::: Pacote java.awt ::: Graphics

Como desenhar linhas em determinados ângulos usando o método drawLine() da classe Graphics - Computação Gráfica em Java

Quantidade de visualizações: 13401 vezes
É possível usar o método drawLine() da classe Graphics para desenhar linhas em determinados ângulos. Observe atentamente a assinatura deste método:

public abstract void drawLine(int x1,
  int y1, int x2, int y2)


Aqui x1 e x2 representam as coordenadas iniciais da linha e x2 e y2 representam as coordenadas finais. Assim, vamos analisar a fórmula matemática que permite definir o ângulo de desenho.

Comece definindo os valores para as coordenadas iniciais x1 e y1, o ângulo desejado e o comprimento da linha:

int x1 = 30;
int y1 = 50;
int ang = 0;
int comp = 100;


Vamos começar obtendo a coordenada x final, que chamaremos de x2. Já sabemos que o ângulo é 0, então obteremos uma linha horizontal para a direita. Vamos ao cálculo:

int x2 = (int)(x1 + 
  Math.cos(ang / 180.0 * Math.PI) * comp);


Já sabemos que o valor de x2 é igual a 0 pois (pode testar na barra de endereços de seu browser):

javascript:alert(0 / 180.0 * Math.PI)


resulta em 0 e:

javascript:alert(Math.cos(0))


resulta em 1. Assim: x1 + (1 * 100) = 130. Para que nosso código esteja correto, o valor de y2 deverá ser igual a y1. Vejamos:

int y2 = (int)(y1 - 
  Math.sin(ang / 180.0 * Math.PI) * comp);


Já sabemos que (ang / 180.0 * Math.PI) resulta em 0 e que o seno de 0 é 0. Assim: y1 - (0 * 100) = 50. Veja o código completo:

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

public class Estudos extends JFrame{
  JLabel label;  

  public Estudos() {
    super("Desenhando em um JLabel");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    // Cria um JLabel
    label = new JLabel();
    c.add(label, BorderLayout.CENTER);

    // Cria um botão
    JButton btn = new 
      JButton("Desenhar uma linha (ângulo)");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          
          // Desenha uma string no JLabel
          int x1 = 30; // coordenada inicial x
          int y1 = 50; // coordenada inicial y
          int ang = 0; // ângulo
......


Experimente agora fornecer ângulos diferentes, por exemplo, 45 (uma linha diagonal para a direita e para cima), 90 (uma linha vertical para cima), 135 (uma linha diagonal para a esquerda e para cima), 180 (uma linha horizontal para a esquerda), 225 (uma linha diagonal para a esquerda e para baixo), 270 (uma linha vertical para baixo), 315 (uma linha diagonal para a direita e para baixo) e 360 (uma linha horizontal para a direita).

Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso.

Link para compartilhar na Internet ou com seus amigos:

VBA ::: Dicas & Truques ::: Rotinas de Conversão

Como converter números em strings em VBA usando a função CStr()

Quantidade de visualizações: 175 vezes
A função CStr() do VBA pode ser usada quando queremos converter valores numéricos do tipo Integer ou Double em uma string. Em geral isso é necessário quando queremos aplicar funções de strings a valores numéricos, por exemplo, testar se um determinado dígito faz parte de um número.

Veja um trecho de código no qual usamos a função CStr() para converter valores Integer e Double em string e mostrar o resultado:

' Procedimento para converter Integer e Double em string
Sub ConverterNumeroString()
  ' vamos declarar duas variáveis numéricas
  Dim codigo As Integer
  Dim preco As Double
  
  codigo = 58
  preco = 32.15
......


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

O código do produto é: 58 e o preço é: 32,15


C# ::: Windows Forms ::: DataGridView

Como retornar a célula atual em um DataGridView do C# Windows Forms como um objeto da classe DataGridViewCell

Quantidade de visualizações: 12566 vezes
A célula atual de um DataGridView pode ser obtida por meio da propriedade CurrentCell. Esta propriedade retorna um objeto da classe DataGridViewCell. Por meio de propriedades e métodos desta classe podemos obter os índices da coluna e da linha às quais a célula pertence, seu valor, estilo, etc.

Veja um trecho de código no qual obtemos o valor da célula atual de um DataGridView:

private void button3_Click(object sender, EventArgs e){
  // vamos obter a célula atual (que possui o foco)
  DataGridViewCell celulaAtual = dataGridView1.CurrentCell;

......


Se não houver célula atual no DataGridView, o retorno da propriedade CurrentCell será null.


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 CNAB240

Quantidade de visualizações: 1596 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])) * 
......


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.


Delphi ::: dbExpress ::: TSQLDataSet

Como obter a quantidade de campos nos registros retornados em um TSQLDataSet do Delphi usando a propriedade FieldCount

Quantidade de visualizações: 10720 vezes
Em algumas situações precisamos saber a quantidade de campos retornados em um objeto TSQLDataSet depois de dispararmos o comando SQL SELECT definido em sua propriedade CommandText. Para isso podemos usar a propriedade FieldCount. Veja sua assinatura:

property FieldCount: Integer;

Esta propriedade é definida originalmente em TDataSet e herdada pela classe TSQLDataSet.

Veja um trecho de código no qual disparamos um comando SQL SELECT em uma tabela contatos e exibimos a quantidade de campos dos registros retornados:

procedure TForm3.Button1Click(Sender: TObject);
begin
  // vamos definir o comando SQL a ser executado
  SQLDataSet1.CommandText := 'SELECT * FROM contatos';

  // vamos executar o comando
......


Ao executarmos este trecho de código teremos uma mensagem com o seguinte texto:

Quantidade de campos retornados: 5.

Note que a propriedade FieldCount inclui somente os campos listados na propriedade Fields. Quaisquer campos agregados listados pela propriedade AggFields não são incluídos na contagem.


JavaScript ::: Dicas & Truques ::: Set (Conjunto)

Como remover elementos duplicados de um array em JavaScript usando um Set e o método Array.from()

Quantidade de visualizações: 1076 vezes
Sabemos de outras dica de JavaScript que o objeto Set nos permite criar conjuntos únicos, ou seja, sem repetições. Sabemos também que a função Array.from() possibilita a conversão de um Set em um Array JavaScript.

Dessa forma, é possível usar essa combinação para escrever uma função personalizada que recebe um vetor (array) e retorna um outro vetor, sem elementos repetidos.

Veja o código JavaScript completo para o exemplo:

<!doctype html>
<html>
<head>
  <title>O objeto Set do JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // função que permite remover os elementos
  // duplicados de um array
  function semRepeticoes(vetor){
    // primeiro criamos um novo Set a partir do
    // vetor fornecido
    // Em seguida usamos o método Array.from() para
    // converter o Set em um Array
    return Array.from(new Set(vetor));
......


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

Com repetição: Osmar, Maria, Carlos, Maria, Fernanda, Fernanda, Osmar
Sem repetições: Osmar, Maria, Carlos, Fernanda


Desafios, Exercícios e Algoritmos Resolvidos de JavaScript

Veja mais Dicas e truques de JavaScript

Dicas e truques de outras linguagens

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á 17 usuários muito felizes estudando em nosso site.