Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Java ::: Coleções (Collections) ::: ArrayList

Como ordernar uma ArrayList de Strings em ordem alfabética usando o método sort() da classe Collections da linguagem Java

Quantidade de visualizações: 22995 vezes
Neste exemplo mostrarei como podemos ordenar um ArrayList de Strings em ordem alfabética. Para isso usaremos o método sort() da classe Collections. É importante observar que estou usando String no exemplo. Se você quiser usar objetos de suas próprias classes, elas precisarão implementar a interface Comparable.

Veja o código completo:

package arquivodecodigos;

import java.util.ArrayList;
import java.util.Collections;
 
public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<>();
     
    // adiciona itens na lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    nomes.add("Osmar");    
     
    // exibe os elementos da ArrayList
    for(int i = 0; i < nomes.size(); i++){
      System.out.println(nomes.get(i));    
    }
      
    // Vamos ordenar os elementos
    Collections.sort(nomes); 
 
    // exibe os elementos da ArrayList
    System.out.println();
    for(int i = 0; i < nomes.size(); i++){
      System.out.println(nomes.get(i));
    }
 
    System.exit(0);
  }
}

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

Carlos
Maria
Fernanda
Osmar

Carlos
Fernanda
Maria
Osmar

Este código foi testado no Java 8.


Java ::: Tratamento de Erros ::: Erros de Tempo de Execução

Como corrigir um erro ClassCastException em Java - Como tratar a exceção ClassCastException do Java

Quantidade de visualizações: 17272 vezes
A exceção ClassCastException é um erro de tempo de execução que ocorre quando tentamos fazer um cast (coerção - conversão explícita) de uma classe para outra classe diferente desta ou que não seja uma superclasse desta. Em outras palavras, casts válidos para classes e interfaces devem seguir as regras abaixo:

1) Se NovoTipo é uma classe, a classe da expressão sendo convertida deve ser do tipo NovoTipo ou herdar de NovoTipo.
2) Se NovoTipo é uma interface, a classe da expressão sendo convertida deve implementar NovoTipo.

Considere o código a seguir:

public class Estudos{
  public static void main(String args[]){
    Object x = new Integer(0);
    System.out.println((String)x);
  }
}

Este código compila normalmente. Porém, ao ser executado, a seguinte mensagem de erro é exibida:

Exception in thread "main" 
java.lang.ClassCastException: java.lang.Integer 
cannot be cast to java.lang.String
  at Estudos.main(Estudos.java:4)


Esta mensagem nos informa que a classe Integer não pode sofrer um cast para String, uma vez que Integer não é e nem herda de String. Veja agora a nova versão:

public class Estudos{
  public static void main(String args[]){
    Object x = new Integer(0);
    System.out.println((Integer)x);
  }
}

Veja que agora nós estamos fazendo o cast de uma referência Object para Integer. Embora Object não seja e nem herde de Integer, o sistema de tempo de execução sabe que x guarda atualmente uma referência a um Integer:

Object x = new Integer(0);



Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como criar arrays (vetores e matrizes) usando o objeto ndarray da biblioteca Numpy do Python

Quantidade de visualizações: 3177 vezes
O objeto ndarray é a parte mais importante da biblioteca Numpy do Python. É por meio dele que criamos vetores e matrizes. Quando falamos vetores, estamos nos referindo às matrizes de apenas uma dimensão, ou seja, uma linha e várias colunas.

A forma mais comum de se criar arrays na Numpy é usando funções presentes na biblioteca. Veja:

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos usar o método arange() para construir um
  # vetor de 10 elementos, começando de 0 até 9
  vetor = np.arange(10)

  # vamos mostrar o vetor gerado  
  print(vetor)

if __name__== "__main__":
  main()

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

[0 1 2 3 4 5 6 7 8 9]

Depois que criamos o vetor, seus elementos individuais podem ser acessados usando-se o nome da variável usada para representar todo o valor e o índice do elemento que queremos acessar (começando em 0). Veja:

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos usar o método arange() para construir um vetor de
  # 10 elementos, começando de 0 até 9
  vetor = np.arange(10)

  # vamos mostrar o vetor inteiro  
  print("Vetor gerado: ", vetor)

  # vamos mostrar o valor do terceiro elemento
  print("Terceiro elemento: ", vetor[2])

if __name__== "__main__":
  main()

Este código produzirá o seguinte resultado:

Vetor gerado: [0 1 2 3 4 5 6 7 8 9]
Terceiro elemento: 2

Uma outra forma de criarmos vetores usando a Numpy, é fornecendo os elementos do vetor como uma list. Veja:

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos criar um vetor passando uma list
  valores = np.array([4, 12, 50, 8, 32])
  
  # vamos mostrar o resultado
  print("Elementos no vetor:", valores)

if __name__== "__main__":
  main()


Este código vai gerar o seguinte resultado:

Elementos no vetor: [ 4 12 50 8 32]

Agora vamos usar essa mesma abordagem para criar uma matriz de duas dimensões (bidimensional):

# importamos a bibliteca NumPy
import numpy as np

def main():
  # vamos criar uma matriz bidimensional passando
  # duas lists dentro de uma list
  valores = np.array([(4, 12, 50), (5, 3, 1)])

  # vamos mostrar o resultado
  print("Elementos no vetor:", valores)

if __name__== "__main__":
  main()

Veja o resultado da execução desse código:

Elementos no vetor: [[12 12 50]
 [ 5  3  1]]


Em mais dicas dessa seção você aprenderá mais sobre as funções de criação e manipulação de vetores e matrizes usando a biblioteca NumPy do Python.


Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como usar a propriedade Alignment da classe TColumn para alinhar o conteúdo das células do TDBGrid do Delphi

Quantidade de visualizações: 12081 vezes
O conteúdo de cada coluna, ou seja, todas as células de uma determinada coluna, pode ser alinhado por meio da propriedade Alignment da classe TColumn. Esta propriedade aceita um de três valores (pertencentes à enumeração Classes.TAlignment):

taLeftJustify - o texto é alinhado à esquerda;

taCenter - o texto é alinhado ao centro;

taRightJustify - o texto é alinhado à direita.

O valor para esta propriedade pode ser definido em tempo de design ou execução. Para definir o alinhamento do conteúdo de uma coluna em tempo de design, basta clicar com o botão direito no DBGrid e escolher a opção Columns Editor. Em seguida clique na coluna desejada e vá em sua propriedade Alignment no Object Inspector.

Em tempo de execução podemos definir o alinhamento para um determinada coluna do DBGrid usando o seguinte trecho de código:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos alinhar ao centro o conteúdo das células da
  // primeira coluna
  DBGrid1.Columns[0].Alignment := TAlignment.taCenter;
end;

Veja que neste trecho de código eu usei TAlignment.taCenter. Esta é uma boa forma de indicar no código de onde o valor taCenter está vindo. No entanto, o Delphi permite que se omita o nome da enumeração TAlignment.

Esta dica foi escrita e testada no Delphi 2009.


C# ::: Dicas & Truques ::: Data e Hora

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

Quantidade de visualizações: 9470 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);
  int restantes = dif.Days + 1; // dia de hoje na contagem

  // exibe o resultado
  System.Console.WriteLine("Faltam " + restantes + " dias para " +
    "o Natal de 2009");

  // pausa o programa
  Console.ReadKey();
}



Java ::: Fundamentos da Linguagem ::: Modificadores

Regras importantes sobre o uso de modificadores na linguagem Java

Quantidade de visualizações: 7659 vezes
1) Uma declaração de método ou variável pode conter somente um destes modificadores de acesso: public, protected ou private. Na ausência de um destes, o acesso será de pacote.

2) Classes não podem ser declaradas abstract e final simultâneamente.

3) Métodos abstratos não podem ser declarados private, static, final, native, strictfp ou synchronized.

4) Métodos não podem ser declarados native e strictfp ao mesmo tempo.

5) Métodos abstract e native não possuem corpo. Ex:

abstract void inserir();
native void obterDados();

6) Uma classe que contenha métodos abstratos deve ser declarada como abstrata.

7) Membros final não podem ser volatile.


C ::: Dicas & Truques ::: Data e Hora

Como formatar datas e horas em C usando a função strftime() da linguagem C

Quantidade de visualizações: 8896 vezes
A função strftime() pode ser usada quando queremos formatar valores de datas e horas em C. Esta função, presente no header <time.h>, possui a seguinte assinatura:

size_t strftime(char *strDest, size_t maxsize, const char *format,
   const struct tm *timeptr);

O parâmetro strDest é um ponteiro para uma matriz de caracteres que receberá uma string contendo a data e/ou hora formatada. O parâmetro maxsize é a quantidade de caracteres que serão copiados para a matriz de caracteres alvo da operação. O parâmetro format contém os especificadores que serão substituídos durante a formatação. Finalmente, timeptr é um ponteiro para uma estrutura tm contendo as informações de data e hora. O retorno da função é a quantidade de caracteres copiados para a matriz strDest.

Veja um trecho de código no qual formatamos e exibimos a data atual no formato longo e de acordo com as configurações regionais para o Português Brasileiro:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>

int main(int argc, char *argv[]){
  // vamos definir a localização para o Português do Brasil
  setlocale(LC_ALL, "Portuguese_Brazil");

  time_t data_hora_segundos; // guarda os segundos deste 01/01/1970
  struct tm *timeinfo; // declara uma estrutura tm
  time(&data_hora_segundos); // preenche a variável data_hora_segundos
  // preenche a estrutura timeinfo
  timeinfo = localtime(&data_hora_segundos);
  // um buffer para receber a data formatada
  char data_formatada[80];

  // vamos formatar
  strftime(data_formatada, 80, "%A, %d de %B de %Y", timeinfo);

  // vamos exibir o resultado
  printf("Resultado da formatação: %s\n\n", data_formatada);

  system("PAUSE");
  return 0;
}

O resultado da execução deste código será algo como:

Resultado da formatação: segunda-feira, 23 de abril de 2011

Veja abaixo os especificadores de formatação usadas pela função strftime():

%a - Nome do dia da semana na forma abreviada. Ex: seg.
%A - Nome completo do dia da semana. Ex: terça-feira.
%b - Nome do mês abreviado. Ex: abr.
%B - Nome completo do dia do mês. Ex: abril
%c - Representação de data e hora. Ex: 23/4/2011 23:00:37.
%d - Dia do mês (01-31).
%H - Hora no formato 24 horas (00-23).
%I - Hora no formato 12 horas (01-12).
%j - Dia do ano (001-366).
%m - Mês como um número decimal (01-12).
%M - Minutos (00-59).
%p - AM ou PM.
%S - Segundos (00-61).
%U - Número da semana tendo o primeiro domingo como o primeiro dia da primeira semana do ano (00-53).
%w - Dia da semana como um número decimal tendo o domingo como 0 (0-6).
%W - Número da semana tendo a primeira segunda-feira como o primeiro dia da primeira semana do ano (00-53).
%x - Representação de data. Ex: 23/4/2011.
%X - Representação de horas. Ex: 23:00:37.
%y - Ano de dois dígitos (00-99).
%Y - Ano com quatro dígitos.
%Z - Nome ou abreviação do fuso horário.
%% - Um sinal de porcentagem.


PHP ::: Dicas & Truques ::: Data e Hora

PHP para iniciantes - Como converter segundos para horas no formato HH:MM:SS usando a função gmdate() do PHP

Quantidade de visualizações: 280 vezes
Nesta dica mostrarei o uso da função gmdate() da linguagem PHP para convertermos, de forma bem rápida, um determinado número de segundos em horas no formato HH:MM:SS. É claro que há uma infinidade de formas de se fazer isso em PHP. Porém, essa é uma das mais simples, pois não exige nenhum cálculo.

Veja o código completo para o exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  $segundos = 134;
  echo "$segundos segundos equivale a " .
    gmdate("H:i:s", $segundos);
?>
 
</body>
</html>

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

134 segundos equivale a 00:02:14


Java ::: Fundamentos da Linguagem ::: Modificadores

Programação Orientada a Objetos em Java - Como usar o modificador de acesso public da linguagem Java

Quantidade de visualizações: 10083 vezes
O modificador de acesso public é aquele que permite o maior grau de acesso a um recurso Java (um recurso é uma classe, um método ou uma variável).

O único modificador de acesso permitido a uma classe não interna é public. Não é permitido usar outro modificador. Na ausência do modificador public, o acesso à classe será de pacote (package).

Quando usamos este modificador, as classes, métodos e variáveis podem ser acessadas a partir de qualquer outra classe sem qualquer restrição. Além disso, um método public pode ser sobrescrito (sofrer override) por qualquer subclasse da classe que o declara.

O método main() da aplicação é declarado public para que o ambiente de execução Java tenha acesso a ele. Declará-lo de outra forma fará com que a execução da aplicação se torne impossível.

Veja um exemplo de uma classe Java pública, com uma variável de instância pública e um método também público:

package arquivodecodigos;

// uma classe pública
public class Cliente {
  // uma variável pública  
  public int codigo;
  
  // um construtor público
  public Cliente(){
    this.codigo = 532;
  }
  
  // um método público
  public int obterCodigoCliente(){
    return this.codigo;  
  }
}



C# ::: Dicas & Truques ::: Gráficos

Como desenhar linhas em C# usando o método DrawLine() da classe Graphics - Computação Gráfica usando C#

Quantidade de visualizações: 13395 vezes
Uma das tarefas mais simples que realizamos quando estamos desenhando em C# é o desenho de linhas. Para isso usamos o método DrawLine() da classe Graphics. Este método recebe um objeto da classe Pen (representando a cor e espessura da caneta de desenho) e as coordenadas iniciais e finais da linha a ser desenhada.

Veja um trecho de código no qual desenhamos uma linha na cor vermelha e com a espessura de dois pixels:

private void button1_Click(object sender, EventArgs e){
  // vamos obter o Graphics do formulário
  Graphics g = this.CreateGraphics();

  // vamos desenhar uma linha na cor vermelha e com espessura
  // de dois pixels
  g.DrawLine(new Pen(Color.Red, 2), new Point(100, 150), 
    new Point(400, 450));

  // vamos liberar o objeto Graphics
  g.Dispose();
}

Execute este código e verá uma linha vermelha na vertical ser desenhada quando você clicar no botão. Aqui nós usamos dois objetos da classe Point. Um para as coordenadas iniciais (x = 100; y = 150) e outro para as coordenadas finais (x = 400; y = 450). É possível fornecer os valores das coordenadas diretamente. Veja:

g.DrawLine(new Pen(Color.Red, 2), 100, 150, 400, 450);

É possível também desenhar múltiplas linhas de uma só vez. Para isso podemos usar o método DrawLines(). Este método recebe um objeto da classe Pen e um array de objetos da classe Point representando as diversas coordenadas. Desta forma, todas as linhas serão conectadas. Veja um exemplo:

private void button1_Click(object sender, EventArgs e){
  // vamos obter o Graphics do formulário
  Graphics g = this.CreateGraphics();

  // vamos criar várias coordenadas x e y
  Point[] coordenadas = {new Point(15,  20), new Point(15, 300),
     new Point(400,  300), new Point(400, 20), new Point(15,  20)};

  // vamos desenhar todas as linhas conectadas usando a cor azul e a 
  // espessura de um pixel
  g.DrawLines(new Pen(Color.Blue, 1), coordenadas);

  // vamos liberar o objeto Graphics
  g.Dispose();
}

Execute este código e clique no botão. Você verá um retângulo azul e com a espessura de 1 pixel ser desenhado no formulário.

Carregar Publicações Anteriores


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

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

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


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90


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