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
Java ::: Pacote java.lang ::: StringBuffer

Java do básico ao avançado - Como usar o método append() para adicionar mais conteúdo ao final de um StringBuffer

Quantidade de visualizações: 9453 vezes
O método append() da classe StringBuffer se torna útil quando precisamos adicionar mais conteúdo ao final de um objeto desta classe. Este método possui, no Java 7, as seguintes sobrecargas:

public StringBuffer append(Object obj)
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sb)
public StringBuffer append(CharSequence s)
public StringBuffer append(CharSequence s, int start, int end)
public StringBuffer append(char[] str)
public StringBuffer append(char[] str, int offset, int len)
public StringBuffer append(boolean b)
public StringBuffer append(char c)
public StringBuffer append(int i)
public StringBuffer append(long lng)
public StringBuffer append(float f)
public StringBuffer append(double d)

Note que em todas as sobrecargas do método, o retorno é um objeto da classe StringBuffer. Mas, não é um novo objeto StringBuffer. É uma referência ao objeto StringBuffer já existente.

Veja um exemplo no qual usamos este método para adicionar mais duas palavras ao conteúdo do StringBuffer:

package estudos;

public class Estudos{
  public static void main(String[] args) {
    // um StringBuffer contendo uma frase
    StringBuffer frase = new StringBuffer("Gosto muito de programar");
    
    // vamos adicionar mais duas palavras ao final do StringBuffer
    frase.append(" em");
    frase.append(" Java");
    
    // agora mostramos o resultado
    System.out.println(frase);
    
    System.exit(0);  
  }
}

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

Gosto muito de programar em Java


Java ::: Classes e Componentes ::: JTable

Java Swing - Como colorir as células de uma JTable individualmente ao passar o mouse sobre elas

Quantidade de visualizações: 152 vezes
Nesta dica eu mostro como é possível aplicar uma cor diferente às células individuais de uma JTable ao passar o mouse em cima delas. O efeito visual é muito interessante, principalmente quando temos uma JTable com muitos dados.

No exemplo eu construí a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual. É um ótimo exercício para realmente entender as partes que compoem uma aplicação Java Swing.

Veja o código Java completo:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.event.*;
 
public class Estudos extends JFrame{
  int linha, coluna;
   
  public Estudos(){
    super("JTable");
         
    // colunas da tabela
    String[] colunas = {"Cidade", "Estado", "Habitantes"};
         
    // conteúdo da tabela   
    Object[][] conteudo = {
        {"Goiânia", "GO", "43.023.432"},
        {"São Paulo", "SP", "5.343.234"},
        {"Rio de Janeiro", "RJ", "6.434.212"},
        {"Jussara", "GO", "87.454"},
        {"Barra do Garças", "MT", "64.344"}
    };
         
    // constrói a tabela
    final JTable tabela = new JTable(conteudo, colunas);
    tabela.setPreferredScrollableViewportSize(new 
      Dimension(350, 50));
     
    class CellListener extends MouseMotionAdapter{
      public void mouseMoved(MouseEvent e){
    JTable tb = (JTable)e.getSource();
        linha = tb.rowAtPoint(e.getPoint());
        coluna = tb.columnAtPoint(e.getPoint());
        tb.repaint();
      }
    }
     
    class ColorirCelula extends JLabel 
         implements TableCellRenderer{
      public ColorirCelula(){
        setOpaque(true);
      }
 
      public Component getTableCellRendererComponent(
                 JTable table, Object value,
                 boolean isSelected, boolean hasFocus, 
                 int row, int column){
        if(row == linha && column == coluna){
          this.setBackground(Color.yellow);
        }
        else{
          this.setBackground(table.getBackground());
        }
         
        this.setText(value.toString());
        return this;
      }
    }
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
     
    tabela.addMouseMotionListener(new CellListener());
     
    tabela.setDefaultRenderer(Object.class, 
       new ColorirCelula());
 
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Ao executarmos esta aplicação Java Swing nós teremos o seguinte resultado:




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

Como inverter a ordem dos elementos de uma ArrayList do Java usando a função reverse() da classe Collections

Quantidade de visualizações: 14312 vezes
Nesta dica mostrarei como podemos usar o método estático reverse() da classe Collections para reverter (inverter) a ordem dos elementos de uma ArrayList. Note que este método atua diretamente sobre a ArrayList que estamos fornecendo como argumento, e não retorna nada.

Veja o exemplo a seguir:

package estudos_java;

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 inverter a ordem dos elementos
    Collections.reverse(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 executar este código Java nós teremos o seguinte resultado:

Carlos
Maria
Fernanda
Osmar

Osmar
Fernanda
Maria
Carlos


Java ::: Dicas & Truques ::: Strings e Caracteres

Como retornar a posição da última ocorrência de uma substring em uma string Java usando a função lastIndexOf() da classe String

Quantidade de visualizações: 223 vezes
Em algumas situações nós precisamos pesquisar uma substring em uma string Java e retornar o índice da última ocorrência encontrada. Para isso nós podemos usar o método lastIndexOf() da classe String.

Veja um exemplo completo de seu uso:

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // Este exemplo mostra como pesquisar a última ocorrência 
    // de uma substring em uma string
    String frase = "As pessoas costumam entender tudo sobre pessoas";
    
    // verifica se a frase contém a palavra "pessoas" e
    // retorna a posição de sua última ocorrência
    int res = frase.lastIndexOf("pessoas");
    
    if(res > 0){
      System.out.println("A ultima ocorrencia foi encontrada na posicao: " 
        + res);
    }
    else{
      System.out.println("A substring nao foi encontrada");
    }
  }
}

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

A ultima ocorrencia foi encontrada na posicao: 40


JavaScript ::: DOM (Document Object Model) ::: Navegação e Pesquisa de Nós (Nodes)

Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript

Quantidade de visualizações: 8392 vezes
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript

A propriedade nodeType, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1, pode ser usada quando precisamos obter o tipo de um determinado nó (node) na hierarquia de elementos HTML no DOM (Document Object Model). Esta propriedade retorna um valor inteiro indicando o tipo de nó sendo testado. Os valores mais comuns são 1 (nó elemento) e 3 (nó texto).

Veja uma página HTML na qual temos um parágrafo e um elemento span. Na primeira vez nós vamos obter uma referência ao parágrafo e testar o tipo do nó. Na segunda vez nós obtemos uma referência ao primeiro nó filho do elemento span, o que resultará em seu conteúdo sendo testado. Veja:

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

<script type="text/javascript">
  function obterNodeType(){
    // vamos obter uma referência ao parágrafo com o id "paragrafo"
    var elem = document.getElementById("paragrafo");

    // vamos obter o tipo de nó deste elemento
    var tipo = elem.nodeType;

    // vamos mostrar o resultado
    window.alert("O tipo deste elemento é: " + tipo);
    
    // vamos obter uma referência ao span com o id "frase"
    elem = document.getElementById("frase");

    // vamos obter o tipo de nó do primeiro filho deste elemento
    tipo = elem.firstChild.nodeType;

    // vamos mostrar o resultado
    window.alert("O tipo deste elemento é: " + tipo);
  }  
</script>

</head>
<body>

<p id="paragrafo">Sou um parágrafo</p>

<span id="frase">Veja esta frase</span>

<br><button onclick="obterNodeType()">Obter tipo do nó (nodeType)</button>

</body>
</html>

Note que esta propriedade é somente-leitura, ou seja, não podemos modificar seu valor em tempo de execução.

A propriedade nodeType pode ser obtida a partir dos seguintes elementos: a, abbr, acronym, address, applet, area, b, base, basefont, bdo, bgsound, big, blink, blockquote, body, br, button, caption, center, cite, code, col, colgroup, comment, dd, del, dfn, dir, div, dl, dt, em, embed, fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6, head, hr, html, i, iframe, img, input:button, input:checkbox, input:file, input:hidden, input:image, input:password, input:radio, input:range, input:reset, input:search, input:submit, input:text, ins, isindex, kbd, keygen, label, legend, li, link, listing, map, marquee, menu, meta, nobr, noframes, noscript, object, ol, optgroup, option, p, param, plaintext, pre, q, rt, ruby, s, samp, script, select, small, span, strike, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, u, ul, var, wbr, xml e xmp.

Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6.


C++ ::: Dicas & Truques ::: Input e Output (Entrada e Saída)

Como exibir a saída em um programa C++ usando o objeto cout

Quantidade de visualizações: 819 vezes
O objeto cout, presente no arquivo de cabeçalho iostream, é usado quando precisamos exibir a saída em nossos programas C++. Por ser um objeto da classe ostream, o objeto cout nos oferece muitos métodos, funções e propriedades que permitem um melhor controle sobre a formatação de saída.

Como o objeto cout é associada com o fluxo padrão de saída em um programação C++, as informações a serem exibidas na tela são fornecidas a ele por meio do operador de inserção (<<).

Veja um trecho de código no qual usamos o objeto cout para exibir o valor da constante matemática PI:

#include <string>
#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos obter o valor da constante PI
  double pi = M_PI;

  // vamos usar o objeto cout para exibir o resultado
  cout << "O valor de PI é: " << pi << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}

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

O valor de PI é: 3.14159

Vamos ver mais um exemplo? Eis um código C++ que usa o objeto cin para ler dois valor informados pelo usuário e depois usa o objeto cout para exibir a soma dos dois valores:

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  int a, b, soma;	
	
  // vamos ler dois valores
  cout << "Informe o primeiro valor: ";
  cin >> a;
  cout << "Informe o segundo valor: ";
  cin >> b;
 
  // vamos somar os dois valores
  soma = a + b;
  
  // e agora mostramos o resultado
  cout << "A soma dos valores é: " << soma << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}

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

Informe o primeiro valor: 8
Informe o segundo valor: 5
A soma dos valores é: 13


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

Como contar as palavras de uma frase ou texto em C# usando as funções IndexOf(), Replace() e Split() da classe String

Quantidade de visualizações: 12289 vezes
Este exemplo mostra como retornar a quantidade de palavras em uma frase ou texto usando métodos da classe String do C#. Veja como usar os métodos IndexOf() e Replace() para remover os espaços em excesso e, em seguida, o método Split() para quebrar as partes da frase ou texto usando um único espaço como separador.

Veja o código completo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto muito de C# e Java";
      int cont = 0;

      // remove os espaços em excesso
      while (frase.IndexOf("  ") >= 0) {
        frase = frase.Replace("  ", " ");
      }

      // remove espaços antes e depois da string
      frase = frase.Trim();

      // conta as palavras
      cont = frase.Split(" ").Length;
      Console.WriteLine("A frase contém " + cont + " palavras");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

A frase contém 6 palavras


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

Como adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid do Delphi e tratar seu evento OnEditButtonClick

Quantidade de visualizações: 12213 vezes
Em algumas situações gostaríamos de exibir um botão do tipo ellipsis (...) nas células de uma determinada coluna do TDBGrid. Este botão é exibido à direita da célula de edição do DBGrid e seu evento OnEditButtonClick pode ser disparado por meio da combinação Ctrl+Enter ou um click do mouse.

Um dos usos mais frequentes do botão ellipsis é quando queremos chamar um formulário de pesquisa ou mais detalhes sobre o conteúdo atual da célula que está sendo editada.

Siga os passos abaixo para adicionar um botão ellipsis (...) nas células de uma determinada coluna do TDBGrid:

a) Selecione a coluna desejada na lista Columns;

b) Defina o valor cbsEllipsis para sua propriedade ButtonStyle;

c) Escreva um gerenciador de eventos para o evento OnEditButtonClick do DBGrid. Veja no trecho de código a seguir como clicar no botão e exibir o conteúdo da célula (note que coloquei o botão ellipsis em uma coluna cujos células exibiam o valor do campo id de uma tabela livros):

procedure TForm3.DBGrid1EditButtonClick(Sender: TObject);
begin
  ShowMessage('O valor da célula que contém o botão é: ' +
    DBGrid1.SelectedField.AsString);
end;

Ao executar este código bastará entrar na célula e colocá-la em modo de edição. Automaticamente o botão ellipsis (...) será exibido. Clique no mesmo e verá uma mensagem parecida com:

"O valor da célula que contém o botão é: 5."

Caso queira que o botão ellipsis seja visível nas células o tempo todo, basta alterar o valor da opção dgAlwaysShowEditor para True. Esta opção é parte da propriedade Options do DBGrid.

Esta dica foi escrita e testada no Delphi 2009.


Java ::: Fundamentos da Linguagem ::: Comentários

Java para iniciantes - Como inserir comentários em seus códigos Java

Quantidade de visualizações: 13449 vezes
Comentários em Java, assim como em outras linguagens, são ignorados pelo compilador. Em Java, podemos usar dois estilos de comentários:

1) Comentário de uma única linha:

// obtém o resultado do cálculo
int res = 4 + 5; // aqui também pode

2) Comentários de múltiplas linhas:

/*
 Este exemplo mostra como verificar se
 um número é par ou ímpar.  
*/



C ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Apostila C para iniciantes - Como usar ponteiros na linguagem C

Quantidade de visualizações: 32471 vezes
Antes de pensarmos em ponteiros, é importante nos lembrarmos de alguns aspectos referentes à variáveis. Dependendo do seu conhecimento de programação, você deve saber que variáveis possuem nomes que as identificam durante a execução do programa. Você deve saber também que uma variável armazena um valor (que pode ser fixo, no caso de uma constante, ou pode mudar durante a execução de seus códigos).

O que poucos programadores se lembram é que uma variável possui um endereço, e que o nome da variável não é nada mais que um apelido para a localização deste endereço. Desta forma, um ponteiro não é nada mais que um tipo especial de variável que armazena o endereço de outra. Veja um exemplo:

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

int main(int argc, char *argv[])
{
  // variável do tipo int
  int valor = 10;

  // ponteiro para uma variável do tipo int
  int *p = &valor;

  // exibe o valor da variável "valor", apontada
  // pelo ponteiro p
  printf("%d", *p);

  printf("\n\n");

  system("PAUSE");
  return 0;
}

Neste código nós temos a declaração e definição de duas variáveis:

int valor = 10;
int *p = &valor;

A primeira variável é uma variável do tipo int e a segunda é um ponteiro para uma variável do tipo int. Veja que devemos sempre usar "*" antes do nome de um ponteiro em sua declaração. O símbolo "&" serve para indicar que estamos acessando o endereço de uma variável e não o seu conteúdo. O resultado destas duas linhas é que agora temos um ponteiro que nos permite acessar e manipular a variável valor.

Observe a linha:

printf("%d", *p);

Aqui nós estamos acessando o valor da variável apontada por p. Veja o uso do símbolo "*" para acessar o valor da variável. Isso é chamado de desreferenciamento de ponteiros. Pareceu complicado? Veja uma linha de código que altera indiretamente o valor da variável valor para 30:

*p = 30;

Ponteiros são ferramentas muito importantes na programação em C. No entanto, é preciso ter muito cuidado ao lidar com eles. A primeira coisa a ter em mente é que um ponteiro não está apontando para nenhum lugar até que atribuimos a ele o endereço de uma outra variável. E é aí que mora o perigo. Um programa entra em colapso absoluto se tentarmos acessar um ponteiro que aponta para um local de memória que já foi liberado novamente ao sistema. No caso menos grave, estaremos tentando acessar locais de memória inválidos ou reservados a outros programas ou tarefas do sistema operacional. Isso me lembra os velhos tempos da tela azul de morte.

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



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