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 ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar construtores em Ruby - Programação Orientada a Objetos em Ruby

Quantidade de visualizações: 10485 vezes
Os métodos construtores são recursos muito importantes na construção de objetos de um classe, uma vez que estes permitem inicializar as variáveis de instância do objeto sendo construído.

Dessa forma, na programação orientada a objetos, o método construtor tem por finalidade instanciar um novo objeto e já fornecer (ou não) os valores iniciais para as suas variáveis de instância.

Em Ruby, o construtor de uma classe é definido com o uso da palavra-chave initialize. Veja um exemplo:

# Definição da classe Cliente
class Cliente
  # construtor da classe
  def initialize(nome, idade)
    @nome = nome
    @idade = idade
  end
    
  # método que permite retornar o nome do cliente
  def obter_nome
    @nome
  end
    
  # método que permite retornar a idade do cliente	
  def obter_idade
    @idade
  end
end

# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)

# Efetua uma chamada ao método obter_nome
puts "O nome do cliente é: " + cliente.obter_nome

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

O nome do cliente é: Osmar J. Silva


PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Quais as diferenças entre as funções fgetc(), fread() e fgets() da linguagem PHP? - Revisado

Quantidade de visualizações: 15845 vezes
As funções fgetc(), fread() e fgets() do PHP nos permitem fazer a leitura de caracteres, palavras, textos e bytes de um arquivo. No entanto, nem sempre os iniciantes nesta linguagem conseguem identificar as diferenças entre essas três funções. Nessa dica falarei sobre o que diferencia uma da outra. Em mais dicas e truques dessa seção você aprenderá como usá-las.

A função fgetc() lê um caractere por vez em um arquivo. Sua assinatura é:

string fgetc(resource $handle)

A função fgets(), por sua vez, retorna uma linha de texto de cada vez. Veja a assinatura:

string fgets(resource $handle [, int $length])

O parâmetro $length pode ser omitido, o que significa que o tamanho da linha será definindo pela ocorrência de uma quebra de linha "\n".

Já a função fread() permite ler uma determinada quantidade de bytes de um arquivo. Sua assinatura é:

string fread(resource $handle, int $length)

O parâmetro $length indica a quantidade de bytes que serão lidos, de cada vez, do arquivo.

Esta dica foi revisada para o PHP 8.


Java ::: Pacote java.lang ::: String

Java para iniciantes - Como verificar se duas strings são iguais ou diferentes usando os métodos equals() e equalsIgnoreCase() da classe String

Quantidade de visualizações: 4486 vezes
Podemos verificar se duas strings são iguais ou diferentes em Java usando os métodos equals() e equalsIgnoreCase(). O método equals() recebe um objeto do tipo String e o compara com o String atual. Veja sua assinatura:

public boolean equals(Object anObject)

O resultado será true se as duas strings forem iguais e false em caso contrário. Note que equals() diferencia letras maiúsculas e letras minúsculas. Veja um exemplo:

package estudos;

public class Estudos{
  public static void main(String[] args) {
    String palavra1 = "Java";
    String palavra2 = "java";
    
    // vamos verificar se as duas strings são iguais
    if(palavra1.equals(palavra2)){
      System.out.println("As duas strings são iguais");
    }
    else{
      System.out.println("As duas strings são diferentes");  
    }
  }
}

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

As duas strings são diferentes

O método equalsIgnoreCase(), por sua vez, não diferencia letras maiúsculas de letras minúsculas. Veja o exemplo anterior usando o método equalsIgnoreCase():

package estudos;

public class Estudos{
  public static void main(String[] args) {
    String palavra1 = "Java";
    String palavra2 = "java";
    
    // vamos verificar se as duas strings são iguais
    if(palavra1.equalsIgnoreCase(palavra2)){
      System.out.println("As duas strings são iguais");
    }
    else{
      System.out.println("As duas strings são diferentes");  
    }
  }
}

Ao executarmos este código o resultado será:

As duas strings são iguais



Dart ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o ponto de interseção de duas retas em Dart - Geometria Analítica e Álgebra Linear em Dart

Quantidade de visualizações: 1878 vezes
Duas retas podem encontrar-se em 0, 1 ou 2 pontos. No primeiro caso, elas são chamadas paralelas; no segundo, elas são chamadas concorrentes e o ponto de encontro entre elas é chamado ponto de interseção; no terceiro caso, se duas retas possuem dois pontos em comum, então elas obrigatoriamente apresentam todos os pontos em comum e são chamadas coincidentes.

Nesta dica mostrarei como podemos encontrar o ponto de interseção (ou intersecção) de duas retas usando Dart. Mas, antes de vermos o código, dê uma olhada na seguinte imagem:



Note que temos os pontos A e B correspondentes ao segmento de reta AB e os pontos C e D correspondentes ao segmento de reta CD. Nossa tarefa é encontrar o ponto exato de intersecção entre esses dois segmentos de reta.

Veja o código Dart completo que nos auxilia na resolução deste problema:

// Vamos importar a biblioteca dart:io
import "dart:io";

// Classe usada para representar um ponto no
// plano 2d (Plano Cartesiano)
class Ponto{
  double x, y;
  
  // construtor da classe
  Ponto(double x, double y){
    this.x = x;
    this.y = y;
  }
}

void main(){
  // vamos construir os quatro pontos
  Ponto A = new Ponto(5, 7);
  Ponto B = new Ponto(9, -4);
  Ponto C = new Ponto(-8, 2);
  Ponto D = new Ponto(11, 6);
    
  // vamos obter a representação do segmento AB    
  double a1 = B.y - A.y;
  double b1 = A.x - B.x;
  double c1 = (a1 * A.x) + (b1 * A.y);
       
  // vamos obter a representação do segmento CD
  double a2 = D.y - C.y;
  double b2 = C.x - D.x;
  double c2 = (a2 * C.x) + (b2 * C.y);
    
  // obtém o determinante
  double determinante = (a1 * b2) - (a2 * b1);
    
  // as duas retas são paralelas?
  if(determinante == 0){
    print("\nAs duas retas são paralelas.\n");
  }
  else{
    // e construímos o ponto de intersecção
    double x = ((b2 * c1) - (b1 * c2)) / determinante;
    double y = ((a1 * c2) - (a2 * c1)) / determinante;
    Ponto inters = new Ponto(x, y);
    
    print("O ponto de interseção é: " + 
      "x = ${x.toStringAsFixed(2)}; y = ${y.toStringAsFixed(2)}");
  }
}


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

O ponto de interseção é: x = 5,76; y = 4,90

De fato, se você olhar a imagem novamente e desenhar este ponto, verá que ele se situa exatamente na intersecção das retas indicadas.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercícios Resolvidos de Java - Como escrever uma função Java que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro

Quantidade de visualizações: 9917 vezes
Pergunta/Tarefa:

Escreva um método estático em Java chamado somar() que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro. Este método deverá ter a seguinte assinatura:

public static int somar(int a, int b){
  // sua implementação aqui
}
Este método deverá, obrigatoriamente, estar na classe principal (aquela que contém o método main()). Após a implementação do método somar(), vá até o método main() e peça ao usuário para informar dois números inteiros. Em seguida faça uma chamada ao método somar() passando os dois valores como argumentos, obtenha o retorno e exiba-o.

Sua saída deverá ser parecida com:

Informe o primeiro número: 4
Informe o segundo número: 3
A soma dos dois números é: 7
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir ao usuário que informe dois valores inteiros
    System.out.print("Informe o primeiro número: ");
    int n1 = Integer.parseInt(entrada.nextLine());
    System.out.print("Informe o segundo número: ");
    int n2 = Integer.parseInt(entrada.nextLine());
    
    // vamos efetuar uma chamada ao método somar() e obter seu retorno
    int resultado = somar(n1, n2);
    
    // finalmente mostramos o resultado
    System.out.println("A soma dos dois números é: " + resultado);
  }
  
  // método estático que recebe dois inteiros e retorna a soma como um número inteiro
  public static int somar(int a, int b){
    int soma = a + b; // soma os dois números
    return soma; // retorna a soma para o método chamado
  }
}



LISP ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço loop for da linguagem Lisp

Quantidade de visualizações: 772 vezes
O laço for loop da linguagem Common Lisp é usado quando sabemos exatamente quantas vezes uma instrução ou um grupo de instruções deve ser repetido. Este laço é similar ao laço for encontrado na maioria das linguagens de programação.

Vamos começar vendo um laço for loop que conta de 1 até 10:

; Um laço for loop que conta de 1 até 10
(loop for i from 1 to 10
  do (print i)
)

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

1
2
3
4
5
6
7
8
9
10

Agora veja o mesmo laço usado para contar de 10 até 1, ou seja, em ordem decrescente:

; Um laço for loop que conta de 10 até 1
(loop for i from 10 downto 1
  do (print i)
)

Note que, agora, eu troquei "to" por "downto" para que a variável de controle fosse decrementada, em vez de incrementada. Dessa forma, ao executarmos este código Common Lisp, o resultado será:

10
9
8
7
6
5
4
3
2
1


Python ::: Dicas & Truques ::: Lista (List)

Python para iniciantes - Como usar o tipo de dados list da linguagem Python

Quantidade de visualizações: 7874 vezes
O tipo de dados list é um dos quatro tipos de dados já incluídos no Python (sem a necessidade de importar outros módulos), a saber, tuple, set e dict (dictionary), cada um com qualidades e uso diferentes.

Uma list é uma sequência mutável e ordenada de itens. Os itens de uma list são objetos arbitrários e podem ser de diferentes tipos. Para especificar uma list, podemos usar uma série de expressões (os itens da lista) separadas por vírgulas e entre colchetes ([]). Opcionalmente podemos inserir uma vírgula redundante depois do último item. Para denotar uma lista vazia, use um par de colchetes. Veja alguns exemplos:

# uma list com nomes de pessoas
nomes = ['Carlos', 'Fabiana', 'Jorge']
print(nomes[0])
 
# uma list com valores inteiros
valores = [3, 7, 34, 0, 2]
print((valores[1] + valores[4]))
 
# uma lista vazia
lista = []
print(len(lista))

É possível também construir uma lista usando a palavra-chave list. Veja:

# função principal do programa
def main():
  # uma list com nomes de pessoas
  nomes = list(['Carlos', 'Fabiana', 'Jorge'])
  print("O nome escolhido é", nomes[0])
  
if __name__== "__main__":
  main()

Ao executar este último exemplo nós teremos o seguinte resultado:

O nome escolhido é Carlos


Delphi ::: VCL - Visual Component Library ::: TListBox

Como usar o controle TListBox em suas aplicações Delphi

Quantidade de visualizações: 13979 vezes
Objetos da classe TListBox, da unit StdCtrls, são controles do tipo lista de seleção. Este componente exibe uma lista com barras de rolagem contendo items que podem ser selecionados, adicionados ou excluídos. A classe TListBox é um wrapper (invólucro) para o controle LISTBOX da plataforma Windows. Em controles do tipo ListBox o usuário pode selecionar apenas um ítem ou vários itens de uma vez.

Em Delphi, a classe TListBox implementa o comportamento genérico definido em TCustomListBox. É esta classe que devemos usar para derivar nossa própria ListBox caso o controle TListBox não satisfaça as nossas necessidades. É claro que podemos partir de qualquer classe que herde de TCustomListBox.

A forma mais comum de adicionarmos um controle TListBox em nossos formulários é selecionando este componente na aba Standard e arrastando-o para a posição desejada na janela. Em seguida podemos adicionar itens na lista acessando sua propriedade Items, que são do tipo TStrings, ou seja, uma lista de strings. Ao clicarmos na propriedade Items no Object Inspector, um String List Editor será exibido. Basta inserir algumas strings nesta caixa de texto, pressionar o botão OK e verificar como o controle já exibe os itens que acabamos de inserir.

Em tempo de execução, itens podem ser adicionados à uma TListBox usando códigos parecidos com:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos inserir um novo item na TListBox
  ListBox1.Items.Add('Osmar J. Silva');
end;

Se precisarmos obter o texto do ítem selecionado em uma TListBox, podemos usar:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos obter o texto do item selecionado na TListBox
  ShowMessage(ListBox1.Items[ListBox1.ItemIndex]);
end;

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


Delphi ::: Win32 API (Windows API) ::: Processos

Como usar o Delphi para verificar se um determinado processo do Windows está sendo executado

Quantidade de visualizações: 19879 vezes
Em algumas situações precisamos verificar se um determinado processo está sendo executado, ou seja, gostaríamos de saber se o executável "programa.exe" está carregado na memória e efetuar alguma tarefa se o teste resultar satisfatório. Nesta dica eu mostro como isso pode ser feito.

O primeiro passo é acrescentar a unit TlHelp32 na cláusula uses do seu formulário. Esta unit contém algumas funções, tipos e definições úteis para se trabalhar com processos acessando a API do Windows.

Uma vez importada a unit TlHelp32, coloque a função abaixo na seção implementation de seu formulário:

// função personalizada que permite verificar se um determinado
// processo está sendo executado
function isProcessRunning(exeFileName: string): Boolean;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  Result := False;
  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
    begin
      Result := True;
    end;
    ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;

Agora, para testar a função, coloque o código abaixo no evento Click de um botão:

procedure TForm3.Button1Click(Sender: TObject);
begin
  if isProcessRunning('notepad.exe') then
    ShowMessage('O processo está sendo executado')
  else
    ShowMessage('O processo NÃO está sendo executado');
end;

Aqui nós estamos testando se o processo "notepad.exe" está sendo executado. Uma melhoria neste código seria listar todos os processos em execução ou listar as cópias em execução de um mesmo processo.


Java ::: Dicas & Truques ::: Formulários e Janelas

Java Swing para iniciantes - Como definir ou obter o título de uma janela JFrame

Quantidade de visualizações: 11314 vezes
Nesta dica mostrarei como usar o método setTitle() da classe JFrame para definir o título da janela JFrame. Usaremos também o método getTitle() para obter o título da janela.

Veja o código Java Swing completo para o exemplo:

import javax.swing.*;
 
public class Estudos extends JFrame{
  public Estudos() {
    setSize(350, 250);
    setVisible(true);
 
    // Define o título da janela    
    setTitle("Controle de Estoque");
 
    // obtém o título da janela
    JOptionPane.showMessageDialog(null, 
      "O título da janela é: " + this.getTitle());
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Ao executar este exemplo você verá uma janela JOptionPane com o texto "O título da janela é: Controle de Estoque".

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