Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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
C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como renomear um diretório em C# usando o método MoveTo() da classe DirectoryInfo

Quantidade de visualizações: 9763 vezes
Nesta dica mostrarei como podemos usar a função MoveTo() da classe DirectoryInfo para renomear um diretório na linguagem C#. Note que, na verdade, o que o método MoveTo() faz é mover todo o conteúdo de um diretório (incluindo seu conteúdo) para um novo diretório, o que dá o mesmo resultado que simplesmente renomear o diretório antigo.

Veja um exemplo completo de seu uso:

using System;
using System.IO;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // vamos criar uma instância da classe DirectoryInfo
      DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\teste");
      try {
        // vamos chamar o método MoveTo() para renomear o diretório
        dir.MoveTo(@"C:\estudos_csharp\teste_2");
        Console.WriteLine("Diretório renomeado com sucesso.");
      }
      catch (Exception e) {
        Console.WriteLine("Não foi possível renomear o diretório: {0}", e.ToString());
      }
      finally { }

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

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

Diretório renomeado com sucesso.


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

PHP para iniciantes - Como obter o número de dias em um mês e ano usando a função cal_days_in_month() do PHP

Quantidade de visualizações: 77 vezes
Em algumas situações nós precisamos saber quantos dias um determinado mês possui, talvez para exibir um calendário. Para isso nós podemos usar a função cal_days_in_month() da linguagem PHP. Esta função pede um tipo de calendário (geralmente CAL_GREGORIAN), um número indicando o mês (1 para janeiro, 2 para fevereiro, etc) e o ano).

Veja o código completo para obter a quantidade de dias para o mês de fevereiro de 2021:

<?php
  $ano = 2021;
  $mes = 2; // fevereiro
  $quant_dias = cal_days_in_month(CAL_GREGORIAN, 
    $mes, $ano); 
  echo "Há $quant_dias dias no mês e ano informados";
?>

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

Há 28 dias no mês e ano informados


Java ::: Coleções (Collections) ::: Set (Conjunto)

Java Collections - Como usar a interface Set em seus códigos Java

Quantidade de visualizações: 5178 vezes
A interface Set estende a interface Collection mas não adiciona novos métodos ou constantes. Em vez disso, esta interface define que uma instância de Set não contenha elementos duplicados. Esta responsabilidade é transferida para as classes que implementam a interface.

A classe abstrata AbstractSet é uma classe de conveniência que herda da classe também abstrata AbstractCollection e implementa a interface Set. A classe AbstractSet fornece implementações concretas para os métodos equals() e hashCode(). Estes métodos permitem a funcionalidade da não permissão de elementos duplicados nos conjuntos.

As classes concretas mais conhecidas da interface Set são:

HashSet - Esta classe é implementada em cima de uma tabela hash, ou seja, um array (matriz) na qual os elementos são armazenados em posições calculadas de acordo com o seu conteúdo. Uma característica interessante de HashSet é que os elementos raramente são retornados na mesma ordem na qual foram inseridos.

LinkedHashSet - Esta classe estende a classe HashSet com uma implementação de lista ligada (linked list) que permite a ordenação dos elementos no conjunto.

TreeSet - Esta classe é uma classe concreta que implementa a interface SortedSet. A interface SortedSet é uma sub-interface de Set que garante que os elementos no conjunto estejam ordenados. Além disso, esta interface fornece os métodos first() e last() para acessar o primeiro e o último elemento do conjunto. Há ainda os métodos headSet(toElement) e tailSet(fromElement) para retornar uma faixa do conjunto cujos elementos sejam "menores" que toElement e "maiores" que fromElement.

Seja qual for a implementação de Set que você queira usar, é sempre uma boa idéia codificar em cima da interface. Isso facilita a troca de HashSet por TreeSet ou vice-versa sem grandes modificações no seu código.

Veja um exemplo no qual usamos a classe concreta HashSet para representar um conjunto de cinco strings únicas:

package estudos;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Estudos{
  public static void main(String[] args) {
    // vamos criar uma instância da classe HashSet
    Set<String> conjunto = new HashSet<>();
    
    // vamos inserir cinco elementos no Set
    conjunto.add("Açucar");
    conjunto.add("Macarrão");
    conjunto.add("Feijão");
    conjunto.add("Carne");
    conjunto.add("Maionese");
    
    // vamos exibir os elementos inseridos
    Iterator iterator = conjunto.iterator();
    while(iterator.hasNext()){
      System.out.println(iterator.next());
    }
  }
}


Ao executar este trecho de código teremos um resultado parecido com:

Macarrão
Feijão
Carne
Açucar
Maionese

Note que raramente os elementos serão exibidos na ordem na qual eles foram inseridos. Experimente agora trocar a linha:

Set<String> conjunto = new HashSet<>();

por

Set<String> conjunto = new LinkedHashSet<>();

Execute o código novamente e verá que agora os elementos são exibidos na mesma ordem que foram inseridos.


MySQL ::: Dicas & Truques ::: Data e Hora

Como retornar apenas a parte DATE de campos DATE, DATETIME ou TIMESTAMP no MySQL usando a função DATE()

Quantidade de visualizações: 12586 vezes
A função DATE() nos permite obter a parte DATE de uma expressão DATE, DATETIME ou TIMESTAMP. Veja seu uso:

SELECT DATE(NOW())

Suponhamos que você tenha um campo DATETIME com o valor 2008-03-30 02:30:15. A query:

SELECT DATE(data_hora_compra) FROM
tabela_estudos

retornará 2008-03-30.


Ruby ::: Fundamentos da Linguagem ::: Passos Iniciais

Qual é a diferença entre print e puts em Ruby?

Quantidade de visualizações: 12446 vezes
Tanto a função print quanto a função puts do Ruby nos permite escrever na tela, ou seja, exibir ao usuário o resultado do processamento das operações requisitas. Então, qual a diferença entre elas?

A instrução puts é uma abreviação de "put string" e automaticamente move o cursor para a próxima linha. A instrução print é usada quando queremos escrever e manter o cursor na mesma linha.

Veja um exemplo completo a seguir:

# Este exemplo mostra a diferença entre as funções
# print e puts da linguagem Ruby

# vamos construir uma frase aqui
frase = "Gosto muito de Ruby"

# vamos exibir a frase usando duas chamadas print e
# depois duas chamadas puts
print frase
print frase
puts frase
puts frase

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

Gosto muito de RubyGosto muito de RubyGosto muito de Ruby
Gosto muito de Ruby

Note que as duas primeiras chamadas a print escreveram na mesma linha. Porém, a primeira chamada a puts escreveu na mesma linha anterior, mas já colocou uma quebra de linha após a escrita.

As duas funções, contudo, permitem o uso do caractere de quebra de linha. Veja:

# Este exemplo mostra a diferença entre as funções
# print e puts da linguagem Ruby

# vamos construir uma frase aqui
frase = "Gosto muito de Ruby"

# vamos exibir a frase usando duas chamadas print e
# depois duas chamadas puts
print frase + "\n"
print frase + "\n"
puts frase + "\n\n"
puts frase

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

Gosto muito de Ruby
Gosto muito de Ruby
Gosto muito de Ruby

Gosto muito de Ruby


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

Como criar sua própria função substring() para obter uma substring a partir de uma string em C

Quantidade de visualizações: 17055 vezes
Em algumas situações precisamos obter uma substring a partir de uma string. A linguagem C já fornece algumas funções que tornam isso possível. No entanto, nenhuma destas funções permite especificar o índice inicial da substring. Sendo assim, o trecho de código abaixo mostra como escrever uma função substring() que permite informar a string de origem, o índice inicial e a quantidade de caracteres que serão obtidos. O retorno da função será um ponteiro para a substring obtida:

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

char *substring(char *origem, int inicio, int quant){
  char *res = origem;
  int i = 0;

  // posição inicial menor que 0 ou
  // posição inicial muito exagerada?
  if((inicio < 0) || (inicio > strlen(origem)))
    inicio = 0;

  // quantidade de caracteres muito exagerada?
  if(quant > inicio + strlen(origem))
    quant = strlen(origem) - inicio;

  // obtem os caracteres desejados
  for(i = 0; i <= quant - 1; i++){
    res[i] = origem[inicio + i];
  }

  // marca o fim da string
  res[i] = '\0';

  return res;
}

int main(int argc, char *argv[])
{
  char texto[] = "Gosto muito de C e C++";
  
  // não podemos bagunçar a string original
  char sub_temp[128];
  strcpy(sub_temp, texto);
  // 10 caracteres começando
  // no índice 6
  char *res = substring(sub_temp, 6, 10);

  // exibe o resultado
  puts(res);

  // exibe a string original
  puts(texto);

  system("pause");
  return 0;
}

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

muito de C
Gosto muito de C e C++


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

Como criar colunas persistentes o controle TDBGrid do Delphi

Quantidade de visualizações: 11700 vezes
Quando conectamos um TDBGrid a uma fonte de dados TDataSource, automaticamente ocorre a criação de colunas no grid, cada uma correspondendo a um dos campos da tabela para a qual o TDataSet (e suas classes derivadas) está apontando. Estas colunas criadas automaticamente são chamadas de DINÂMICAS, ou contrário das colunas PERSISTENTES.

Porém, na maioria das vezes, nós queremos personalizar a aparência das colunas em tempo de design (o que também pode ser feito em tempo de execução). Queremos alinhar ou alterar os títulos, mudar a fonte e cores, etc. Fazemos isso clicando com o botão direito no controle DBGrid e acessando a opção Columns Editor (ou dando duplo clique na propriedade Columns). Isso fará com que a propriedade State do objeto TDBGridColumns do DBGrid seja mudada para csCustomized, o que indica que o Delphi montará as colunas baseado em nossas configurações e não mais automaticamente de acordo com os nomes dos campos da tabela.

Siga os seguintes passos para criar colunas persistentes para o controle DBGrid:

a) Selecione o DBGrid no formulário;

b) Acesse o editor Columns dando duplo-clique na propriedade Columns no Object Inspector;

Isso bastará para que o list box de Columns exiba as colunas persistentes já existentes. Quando o editor Columns é mostrado pela primeira vez, esta lista estará vazia porque o grid está em seu estado padrão, contendo apenas colunas dinâmicas.

Podemos criar colunas persistentes para todos os campos do dataset de uma só vez, ou podemos criar as colunas persistentes para cada campo individualmente.

Siga os passos abaixo para criar colunas persistentes para todos os campos:

a) Chame o editor Columns e escolha a opção Add All Fields. Note que se o grid não estiver associado a nenhum data source, a opção Add All Fields estará desabilitada. Associe o grid com o data source que estiver conectado a um dataset ativo antes de escolher a apção Add All Fields.

b) Se o grid já possuir colunas persistentes, uma caixa de diálogo perguntará se você quer excluir as colunas existentes ou apenas acrescentar as novas colunas. Se você escolher Yes, todas as colunas persistentes serão removidas e todos os campos do dataset atual serão inseridos como colunas, obedecendo sua ordem no dataset. Neste caso os títulos das colunas serão os nomes dos campos na tabela. Se você escolher No, as colunas persistentes serão mantidas e as novas colunas serão adicionadas.

C) Clique o botão Close para aplicar as colunas persistentes no DBGrid e fechar a caixa de diálogo.

Siga os passos abaixo para criar colunas persistentes individualmente:

a) Escolha o botão Add no editor Columns. A nova columa será selecionada na list box. Esta nova coluna receberá um número sequencial e um nome padrão (por exemplo, 0 - TColumn). Para associar um campo da tabela com esta nova coluna, ajuste sua propriedade FieldName no Object Inspector.

b) Para definir o título para a nova coluna, expanda a propriedade Title no Object Inspector e ajuste sua propriedade Caption.

c) Feche o editor Columns para aplicar as colunas persistentes no grid e fechar a caixa de diálogo.

Se o um DBGrid possui apenas colunas dinâmicas, nós podemos excluí-las em tempo de execução simplesmente mudando o valor da propriedade Columns.State para csCustomized. Veja:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos alterar o valor da propriedade State para csCustomized
  DBGrid1.Columns.State := csCustomized;
end;

Este trecho de código faz com que as colunas dinâmicas sejam excluídas e colunas persistentes sejam criadas para cada um dos campos do dataset ao qual o grid está ligado. Após isso, novas colunas podem ser adicionadas em tempo de execução usando código parecido com:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos alterar o valor da propriedade State para csCustomized
  DBGrid1.Columns.State := csCustomized;

  // vamos adicionar uma nova coluna
  DBGrid1.Columns.Add;
end;

Esta dica foi escrita e testada no Delphi 2009.


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

Como converter graus em radianos em LISP - Trigonometria em LISP

Quantidade de visualizações: 1032 vezes
Quando estamos trabalhando com trigonometria na linguagem Common Lisp (e AutoLISP, para programadores AutoCAD), é importante ficarmos atentos ao fato de que todos os métodos e funções trigonométricas em Lisp recebem seus argumentos em radianos, em vez de graus.

Nesta dica veremos como converter graus em radianos (sem a chatice de ficar relembrando regra de três). Veja a fórmula abaixo:

\[Radianos = Graus \times \frac{\pi}{180}\]

Agora veja como esta fórmula pode ser escrita em código LISP:

; programa LISP que converte graus em radianos
(let((graus)(radianos))
  ; valor em graus
  (setq graus 30)
  ; obtém o valor em radianos
  (setq radianos (* graus (/ pi 180)))
  
  ; mostra o resultado
  (format t "~F graus em radianos é ~F" graus radianos)
)

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

30 graus convertidos para radianos é 0.5235987755982988


Java ::: Java para Engenharia ::: Física - Mecânica

Como calcular a velocidade de um corpo dado sua massa e sua energia cinética usando a linguagem Java

Quantidade de visualizações: 1225 vezes
A Energia cinética é uma das formas da energia mecânica e definida como a energia de movimento, pois está relacionada com o estado de movimento de um corpo.

Variando de acordo com o movimento e a massa do corpo, esse tipo de energia tem sua existência condicionada à velocidade, uma vez que nos corpos em repouso ela não existe, pois a velocidade é nula.

Essa vertente de energia depende da relação entre corpo e o ponto referencial do observador. Se houver velocidade, haverá energia cinética. Portanto, não trata-se de uma energia invariável, mas sim de um tipo de energia mecânica que é determinada em função da massa do corpo em movimento, medida em quilogramas (kg), e da velocidade desenvolvida por ele, medida em metros por segundo (m/s).

A fórmula para obtenção da velocidade de um corpo, quando temos a sua energia cinética e a sua massa é:

\[\text{v} = \sqrt{\frac{E_c}{\frac{1}{2}\text{m}}}\]

Onde:

m ? massa do corpo (em kg).

Ec ? energia cinética (em joule, J).

v ? velocidade do corpo (em m/s).

Vamos ver um exemplo agora? Observe o seguinte enunciado:

1) Determine qual é a velocidade em que se move um corpo de 20kg cuja energia cinética é igual a 400J.

Note que o exercício já nos dá os valores em suas unidades de medidas no SI (Sistema Internacional de Medidas). Tudo que temos a fazer é converter a fórmula para código Java. Veja:

package arquivodecodigos;

public class Estudos{
  public static void main(String args[]){
    // energia cinética
    double energia_cinetica = 400; // em joule
    // massa do corpo
    double massa = 20; // em kg
    
    // e então calculamos a velocidade do corpo
    double velocidade = Math.sqrt(energia_cinetica / (0.5 * massa));
  
    // mostramos o resultado
    System.out.println("A velocidade do corpo é: " + velocidade + "m/s");     
  }
} 

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

A velocidade do corpo é: 6.324555320336759m/s

Não se esqueça de que a velocidade retornada estará em metros por segundo.


Java ::: Classes e Componentes ::: JTable

Java Swing - Como excluir linhas de uma JTable em tempo de execução usando o método removeRow() da classe DefaultTableModel

Quantidade de visualizações: 16010 vezes
Nesta dica mostrarei como é possível excluir uma determinada linha de uma JTable usando o método removeRow() da classe DefaultTableModel. Veja que mostro também como inserir novas linhas na JTable usando o método insertRow().

Veja o resultado obtido na imagem abaixo:



E agora o código Java Swing completo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    final DefaultTableModel modelo = new DefaultTableModel();
     
    // constrói a tabela
    JTable tabela = new JTable(modelo);
     
    // Cria duas colunas
    modelo.addColumn("Nome");
    modelo.addColumn("Idade");
     
    JButton btn = new JButton("Inserir Linhas");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          String nome = JOptionPane.showInputDialog(null, "Informe o nome:");
          String idade = JOptionPane.showInputDialog(null, "Informe a idade:");
          int pos = Integer.parseInt(JOptionPane.showInputDialog(null, 
             "Informe a posição da nova linha:"));
           
          // testa se a posição é válida
          if(pos > (modelo.getRowCount() - 1))
            pos = 0;
           
          // Insere uma linha na posição especificada
          modelo.insertRow(pos, new Object[]{nome, idade});
        }
      } 
    );
     
    JButton btn2 = new JButton("Excluir Linhas");
    btn2.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          int pos = Integer.parseInt(JOptionPane.showInputDialog(null, 
            "Informe a posição da linha a ser excluída:"));
           
          // testa se a posição é válida
          if(pos < modelo.getRowCount())
            // Exclui a linha na posição especificada
            modelo.removeRow(pos);
        }
      } 
    );  
     
    tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
    c.add(btn);
    c.add(btn2);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}


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