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.

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

Como retornar a versão do Ruby instalada na sua máquina usando ruby -v ou a constante RUBY_DESCRIPTION

Quantidade de visualizações: 9500 vezes
Se você quiser saber a versão do Ruby instalada em seu computador, ou a versão do interpretador sendo usado no momento, basta abrir uma janela de comando e disparar o comando:

ruby -v

Você terá um resultado parecido com o seguinte:

ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]

Se você estiver na tela do Interactive Ruby, você pode simplesmente digitar RUBY_DESCRIPTION e pressionar Enter. O resultado será o mesmo exibido em uma janela de comando usando ruby -v.

Podemos também usar a constante RUBY_DESCRIPTION dentro de um script Ruby. Veja:

# Este exemplo mostra como obter a versão do Ruby
# usando a constante RUBY_DESCRIPTION
 
# guarda a versão em uma variável
versao = RUBY_DESCRIPTION

# mostra na tela
puts "A versão do Ruby é: #{versao}"

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

A versão do Ruby é: ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]


Java ::: Dicas & Truques ::: Threads

Threads em Java - O que são threads e como usá-las em seus programas Java

Quantidade de visualizações: 13670 vezes
Uma thread é um fluxo de execução de uma determinada tarefa em um programa. Na programação tradicional, temos apenas um fluxo de execução que começa a executar no início do programa e vai até o final. Com o uso de threads podemos ter várias tarefas sendo executadas ao mesmo tempo, cada uma independente da outra.

Em programas que contêm interfaces gráficas, o uso de múltiplos fluxos de execução (ou threads) é muito comum. Enquanto digitamos em uma caixa de texto, uma animação pode estar sendo executada ou um arquivo sendo baixado.

O Java permite que tenhamos várias threads sendo executadas ao mesmo tempo. Cada tarefa (ou thread) é uma instância da interface Runnable. Esta interface descreve apenas um método:

public void run();
Há duas formas de criarmos uma thread em Java. A primeira consiste em extender a classe Thread. Esta classe implementa a interface Runnable e fornece o método start(), que é usado para avisar ao gerenciador de threads que a thread recém criada está pronta para ser executada. Veja um exemplo:

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread("Thread 1");
    t1.start(); // chamamos o método start() e não run()

    MinhaThread t2 = new MinhaThread("Thread 2");
    t2.start(); // chamamos o método start() e não run()    

    System.exit(0);
  }
}

Salve este código como Estudos.java, compile e execute. Veja que cada thread escreverá de 1 a 20 na tela. Observe como as duas threads se alternam em suas tarefas, ou seja, de tempos em tempos uma cede lugar para que a outra seja executada. Note também que, embora nossa classe tenha um método run() nós não o chamamos. O que fazemos é chamar o método start(), que torna a thread elegível para ser executada a qualquer momento.

Uma outra forma de criarmos uma thread é fazer com que nossa classe implemente a interface Runnable. Veja:

// criamos uma classe que servirá como thread
class MinhaThread implements Runnable{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread mt1 = new MinhaThread("Thread 1");
    Thread t1 = new Thread(mt1);
    t1.start();    

    MinhaThread mt2 = new MinhaThread("Thread 2");
    Thread t2 = new Thread(mt2);
    t2.start();

    System.exit(0);
  }
}

O funcionamento do código é o mesmo. A diferença é que agora, a classe usada como thread implementa a interface Runnable. A forma de criação da thread também foi alterada. Agora nós criamos instâncias de Thread fornecendo nossa classe thread como argumento e chamamos o método start da classe Thread e não de nossa própria classe, como fizemos anteriormente.


C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como excluir um diretório em C# usando a função Delete() da classe DirectoryInfo

Quantidade de visualizações: 290 vezes
O método Delete() da classe DirectoryInfo do C# é muito útil quando precisamos excluir um diretório. Esta função é do tipo void, ou seja, não retorna nada.

Veja um código completo demonstrando o seu uso:

using System;
using System.IO;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos criar uma nova instância da classe DirectoryInfo
      DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\imagens");

      // vamos tentar excluir o diretório
      try {
        dir.Delete();
        Console.WriteLine("Diretório excluído com sucesso.");
      }
      catch (Exception e) {
        Console.WriteLine("Não foi possível excluir o diretório: {0}", e.ToString());
      }
    
      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

Diretório excluído com sucesso.

Se o diretório a ser excluido não estiver vazio, a chamada ao método System.IO.DirectoryInfo.Delete() poderá gerar o seguinte erro:

Não foi possível excluir o diretório: System.IO.IOException: A pasta não está vazia. : 'C:\estudos_csharp\imagens'
at System.IO.FileSystem.RemoveDirectoryInternal(String fullPath, Boolean topLevel, Boolean allowDirectoryNotEmpty)
at System.IO.FileSystem.RemoveDirectory(String fullPath, Boolean recursive)
at System.IO.DirectoryInfo.Delete()
at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 12


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

Apostila C++ - Como retornar o tamanho de uma string em C++ usando a função length() da classe String

Quantidade de visualizações: 24940 vezes
Nesta dica eu mostro como podemos usar a função length() da classe String da linguagem C++ para obter a quantidade de caracteres em uma palavra, frase ou texto. Esta função é definida na classe string da seguinte forma:

                  
size_t length() const;         
Veja agora o código completo para o exemplo:

#include <string>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
  string str = "C++";
 
  size_t tamanho = str.length();
  cout << "Esta string contém " << tamanho 
    << " caracteres.\n\n"; 
       
  system("PAUSE"); // pausa o programa
  return 0;
}

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

Esta string contém 3 caracteres.


Portugol ::: Dicas & Truques ::: Cadeias e Caracteres

Como testar se uma sub-cadeia está contida em uma cadeia de caracteres em Portugol usando a função posicao_texto()

Quantidade de visualizações: 541 vezes
Nesta dica mostrarei como podemos verificar se uma substring está contida em uma string em Portugol. Para isso nós vamos usar a função posicao_texto() da biblioteca Texto.

A função posicao_texto() pede a sub-cadeia a ser pesquisada, a cadeia na qual a pesquisa será feita e o índice do primeiro caractere a partir do qual a sub-string será pesquisada.

Se a substring for encontrada, a função retorna a posição do primeiro caractere. Caso contrário o valor -1 será retornado.

Veja o código completo para um programa Portugol no qual testamos se uma palavra está contida em uma frase:

programa {
  // vamos importar a biblioteca Texto
  inclua biblioteca Texto --> tx
  
  funcao inicio() {
    // vamos criar uma frase
    cadeia frase = "Gosto de programar em Portugol"
    // vamos criar uma sub-cadeia
    cadeia palavra = "Portugol"

    // vamos verificar se a sub-cadeia está contida na cadeia
    se (tx.posicao_texto(palavra, frase, 0) != -1) {
      escreva("A substring está contida na string")   
    }
    senao {
      escreva("A substring não está contida na string") 
    }
  }
}

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

A substring está contida na string.


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

Como converter uma string em um valor numérico de ponto-flutuante (com parte fracionária) em Delphi usando as funções StrToFloat(), TryStrToFloat() e StrToFloatDef()

Quantidade de visualizações: 25195 vezes
Em algumas situações precisamos converter strings em valores numéricos do tipo ponto-flutuante, ou seja, números que contenham uma parte fracionária. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos.

Vamos começar com a função StrToFloat() da unit SysUtils. Esta função recebe uma string representando um valor de ponto-flutuante válido e retorna um valor de ponto-flutuante. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  valor1, valor2, soma: Double;
begin
  // vamos receber as strings dos TEdits e converter
  // seus valores para números de ponto-flutuante
  // note que em Delphi, um valor de ponto-flutuante
  // é informado em caixas de texto usando vírgula. Ex: 7,3
  valor1 := StrToFloat(Edit1.Text);
  valor2 := StrToFloat(Edit2.Text);

  // vamos obter a soma dos dois valores
  soma := valor1 + valor2;

  // vamos exibir o resultado. Note o uso de FloatToStr() para
  // converter o valor fracionário em string
  ShowMessage('A soma é: ' + FloatToStr(soma));
end;

Note que, se a string sendo convertida possuir um valor de ponto-flutuante inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToFloat(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Extended, Double ou Single que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  valor: Double;
begin
  // vamos tentar converter o valor da caixa de texto
  // em um valor de ponto-flutuante
  if TryStrToFloat(Edit1.Text, valor) then
    ShowMessage('Conversão efetuada com sucesso.')
  else
    ShowMessage('Erro na conversão');
end;

Há ainda uma terceira possibilidade: usar a função StrToFloatDef(). Esta função funciona exatamente da mesma forma que StrToFloat(), exceto que agora, se houver um erro de conversão, um valor de ponto-flutuante padrão será retornado. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  valor: Double;
begin
  // vamos converter o valor da caixa de texto
  // em um valor de ponto-flutuante. Se a conversão não puder
  // ser feita o valor 10,50 será atribuído à varial valor
  valor := StrToFloatDef(Edit1.Text, 10.50);

  // vamos exibir o resultado
  ShowMessage(FloatToStr(valor));
end;

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


Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como somar os valores dos elementos de um vetor de inteiros em Java

Quantidade de visualizações: 27277 vezes
Nesta dica eu mostro como podemos usar um laço for para obter a soma dos valores dos elementos de um vetor (ou matriz) de inteiros em Java. Veja que aqui eu criei um método que recebe o vetor e retorna um valor int contendo a soma de todos os elementos.

Veja o código completo para o exemplo:

package arquivodecodigos;
 
public class Estudos{
  public static void main(String[] args){
    int[] valores = new int[5];
  
    // inicializa os elementos do array
    valores[0] = 23;
    valores[1] = 65;
    valores[2] = 2;
    valores[3] = 87;
    valores[4] = 34;
     
    // obtém a soma
    int soma = soma(valores);
     
    System.out.println("A soma dos valores é: " + soma);
   
    System.exit(0);
  }
 
  public static int soma(int[] a){
    int total = 0;
    for(int i = 0; i < a.length; i++){
      total += a[i];  
    }
     
    return total;
  }
}

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

A soma dos valores é: 211


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

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

Quantidade de visualizações: 1543 vezes
Energia Cinética é a forma de energia relacionada aos corpos em movimento e é diretamente proporcional ao quadrado da velocidade do corpo. Sendo uma grandeza física escalar, a energia cinética possui como unidade de medida, de acordo com as unidades do SI (Sistema Internacional de Medidas), o joule.

A energia cinética é a capacidade de algum corpo em movimento realizar trabalho, modificando o estado de movimento dos corpos ao seu redor ou deformando-os. Quanto maior é a velocidade e a massa do corpo, maior é a sua capacidade de realizar trabalho quando estiver em movimento. De forma análoga, podemos pensar que um corpo que apresenta uma grande energia cinética necessita de uma grande quantidade de energia para cessar o seu movimento.

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

\[ E_c = \frac{\text{m} \cdot v^2}{\text{2}} \]

Onde:

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

m ? massa do corpo (em kg).

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

É comum, também, encontrarmos essa fórmula escrita da seguinte forma:

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

É importante observarmos que, caso um corpo se encontre em repouso, a energia cinética a ele associada é nula, ou seja, zero. Além disso, a energia cinética depende da velocidade desse corpo ao quadrado. Sendo assim, ao duplicarmos a velocidade de um corpo, sua energia cinética aumenta quatro vezes e, ao triplicá-la, a energia cinética desse corpo fica nove vezes maior.

Vamos ver um exemplo agora? Observe o seguinte enunciado:

1) Um ciclista e sua bicicleta possuem uma massa total de 100kg, e uma velocidade de 54km/h. Calcule sua energia cinética.

O exercício já nos dá a massa total em kg, mas precisamos converter km/h em m/s antes de realizar o cálculo da energia cinética. Fique atento(a). Veja o código C completo que efetua este cálculo e exibe a energia cinética resultante:

#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
     
int main(int argc, char *argv[]){
  // a massa total
  float massa = 100; // em kg
  // velocidade (em m/s)
  float velocidade = 54 / 3.6; // converti de km/h para m/s
  
  // agora calculamos a energia cinética
  float energia_cinetica = (massa * pow(velocidade, 2)) / 2;
  
  // mostramos o resultado
  printf("A energia cinética é: %fJ",
    energia_cinetica);
			  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

A energia cinética é: 11250.000000J


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

Como usar a função NOW() para obter a data e hora atual do servidor MySQL

Quantidade de visualizações: 28209 vezes
As funções CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, LOCALTIME(), LOCALTIME, LOCALTIMESTAMP e LOCALTIMESTAMP() são sinônimos da função NOW().

A função NOW() pode ser usada para obter a data e hora atual do servidor MySQL como um valor no formato 'YYYY-MM-DD HH:MM:SS' ou YYYYMMDDHHMMSS.uuuuuu, dependendo se a função é usada em um contexto string ou numérico. O valor retornado é expresso no fuso horário atual do servidor. Veja:

SELECT NOW()


O valor retornado é algo como 2008-03-30 23:18:34. Observe agora uma chamada a esta função em um contexto numérico:

SELECT NOW() + 0

O resultado será algo como 20080430232607.000000.


Rust ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como somar os elementos de um array em Rust

Quantidade de visualizações: 623 vezes
Nesta dica mostrarei como podemos somar os valores de um vetor na linguagem Rust. Para isso nós vamos usar um laço for e percorrer os itens do array um de cada vez. Note também o uso da função len() para retornar o tamanho do array.

Veja o código Rust completo para o exemplo:

// esta é a função principal do programa Rust
fn main() {
  // vamos criar um array com 6 elementos
  let valores:[i32;6] = [5, 2, 3, 7, 4, 1];
  // para guardar a soma
  let mut soma:i32 = 0;
  
  // vamos mostrar o conteúdo do array
  println!("Os elementos do array são: {:?}", valores);
 
  // agora vamos somar os elementos do array
  for i in 0..valores.len() {
    soma = soma + valores[i];
  }  
  
  // e mostramos o resultado
  println!("A soma dos elementos é: {}", soma);
}

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

Os elementos do array são: [5, 2, 3, 7, 4, 1]
A soma dos elementos é: 22

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 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 Apenas R$ 19,90


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