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
Delphi ::: VCL - Visual Component Library ::: TEdit

Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do Windows

Quantidade de visualizações: 11776 vezes
Embora o Delphi já nos forneça as ferramentas necessárias para habilitar ou desabilitar um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função EnableWindow() com os valores true ou false.

A função EnableWindow() possui a seguinte assinatura em C/C++:

BOOL EnableWindow(          
  HWND hWnd,
  BOOL bEnable
);

No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:

// Protótipo
{$EXTERNALSYM EnableWindow}
function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;

// Implementação
function EnableWindow; external user32 name 'EnableWindow';

Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos desabilitar o TEdit usando a função EnableWindow()
  // com o valor false
  if EnableWindow(Edit1.Handle, False) = True then
    begin
      ShowMessage('A caixa de texto foi desabilitada com sucesso.');
    end;
end;

Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos habilitar o TEdit usando a função EnableWindow()
  // com o valor true
  if EnableWindow(Edit1.Handle, True) = True then
    begin 
      ShowMessage('A caixa de texto foi habilitada com sucesso.');
    end;
end;

É importante observar que o retorno da função EnableWindow será False se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada.


JavaScript ::: Dicas & Truques ::: Data e Hora

Como somar dias a uma data em JavaScript usando uma função personalizada adicionar_dias() que retorna um objeto Date

Quantidade de visualizações: 13626 vezes
Nesta dica mostrarei como podemos escrever uma função JavaScript que permite adicionar dias a uma data recebida como argumento e retorna um novo objeto Date. Como pequenas modificações esta função pode ser usada também para subtrair dias da data.

Veja a página HTML completa para o exemplo:

<!doctype html>
<html>
<head>
  <title>Data e hora em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // função que recebe um objeto Date e uma quantidade
  // de dias e soma esses dias ao Date recebido e
  // e retorna um novo objeto Date
  function adicionar_dias(data, dias){
    return new Date(data.getTime() + (dias * 24 * 60 
      * 60 * 1000));
  }

  // testa a função
  var hoje = new Date();
  document.write("Hoje é " + hoje.toLocaleDateString() + "<br>");
  
  // vamos adicionar 5 dias ao objeto Date
  var data_futura = adicionar_dias(hoje, 5);
  document.write("Daqui 5 dias será: " + 
    data_futura.toLocaleDateString());
</script>
  
</body>
</html>

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

Hoje é 06/02/2023
Daqui 5 dias será: 11/02/2023


Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar construtores em suas classes Java - Programação orientada a objetos em Java - Métodos construtores - Revisado

Quantidade de visualizações: 19992 vezes
Muitas vezes precisamos inicializar propriedades de um objeto de uma classe Java no momento em que este é criado. Para isso podemos usar um método construtor. Um método construtor, que em Java é definido por um método com o mesmo nome da classe, é chamado no exato momento em que efetuamos uma chamada a new.

Veja um exemplo no qual exibimos uma mensagem alertando que um objeto de uma classe acaba de ser criado:

class Pessoa{ 
  public Pessoa(){
    System.out.println("Fui criado.");
  }
}
 
public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da classe Pessoa
    Pessoa p = new Pessoa();
  } 
}

Execute este código e veja o resultado. Note que um construtor deve, exceto em raríssimas ocasiões, ser marcado com o modificador public. Além disso, um construtor não possui retorno e só se torna realmente útil quando o usamos para inicializar as propriedades do objeto recém-criado. Veja:

class Pessoa{ 
  public String nome;
 
  public Pessoa(String nome){
    this.nome = nome;
  }
}
 
public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da classe Pessoa
    Pessoa p = new Pessoa("Osmar J. Silva");
    System.out.println(p.nome);
  } 
}

Aqui nós fornecemos o valor para a propriedade nome na mesma instrução que cria a instância da classe.

Quando não definimos um método construtor, o compilador Java o faz nos bastidores. Mas isso só ocorre quando não definimos o nosso próprio método construtor, seja ele com ou sem parâmetros.


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

Como usar ponteiros em C++ - Apostila de C++ para iniciantes

Quantidade de visualizações: 8122 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 <iostream>

using namespace std;

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
  cout << *p << endl;

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

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:

 
cout << *p << endl;

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.


C# ::: Windows Forms ::: ListBox

Como excluir todos os itens de uma ListBox do C# Windows Forms usando a função Clear()

Quantidade de visualizações: 575 vezes
Em algumas situações nós precisamos limpar uma ListBox do C# Windows Forms, ou seja, excluir todos os seus itens de uma só vez em tempo de execução, enquanto o programa estiver rodando.

Esta tarefa pode ser realizada por meio de uma chamada ao método Clear() do objeto ObjectCollection da ListBox.

Veja um trecho de código no qual clicamos em um botão e removemos todos os itens da ListBox:

private void button2_Click(object sender, EventArgs e)
{
  // remove todos os itens da ListBox
  listBox1.Items.Clear();
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Como testar se um número é potência de dois usando Java

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

Escreva um programa Java contendo um método que recebe um número inteiro e retorna um valor boolean indicando se o valor informado é potência de dois.

Sua saída deverá ser parecida com:

Informe um valor inteiro: 8
O valor 8 é potência de dois
Informe um valor inteiro: 34
O valor 34 não é potência de dois
Informe um valor inteiro: 64
O valor 64 é potência de dois
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[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar um valor inteiro
    System.out.print("Informe um valor inteiro: ");
    int valor = Integer.parseInt(entrada.nextLine());
    
    // vamos testar se o número informado é potência de dois
    if(isPotenciaDeDois(valor)){
      System.out.println("O valor " + valor + " é potência de dois");
    }
    else{
      System.out.println("O valor " + valor + " não é potência de dois");
    }
  }
  
  // método que recebe um número inteiro e informe se ele é
  // potência de dois
  public static boolean isPotenciaDeDois(int n){
    // usamos o operador AND de bits para verificar se n AND n-1
    // é igual a 0
    return (n > 0) && (n & (n - 1)) == 0;
  }
}



Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar encapsulamento em Java - Programação Orientada a Objetos em Java

Quantidade de visualizações: 38013 vezes
Encapsulamento é a técnica de transformar os objetos que compõem uma aplicação em verdadeiras caixas-pretas. De fato, se pensarmos em termos de informática, é possível para um usuário comum usar todas as funcionalidades de uma impressora sem nem mesmo entender seu funcionamento interno. Imagine o desastre que seria se todos os usuários resolvessem abrir suas impressoras para investigar o que há dentro delas.

Da mesma forma, ao construir uma classe, devemos fazê-lo de forma que o usuário desta classe tenha acesso apenas aos métodos que permitem ler informações da classe ou fornecer os dados necessários para sua correta operação. Dados relativos ao funcionamento interno da classe devem permanecer ocultos e acessíveis somente aos métodos da própria classe.

O encapsulamento deve ser aplicado de forma a permitir que alterações na estrutura interna de uma classe não prejudique o funcionamento do código externo que a usa. Veja um exemplo:

 
  class Pedido{
    public List obterProdutos(){
      // monta uma lista de produtos
      // pertecentes a este pedido
      return lista;
    }
  }

A classe Pedido contém um método chamado obterProdutos() que retorna uma lista de produtos pertencentes a um determinado pedido. É aqui que o encapsulamento se torna importante. O código que usa esta classe desconhece completamente como esta lista de produtos é montada. Tudo que nos interessa é a lista de produtos que o método retorna. O programador da classe pode decidir a qualquer momento, talvez para melhorar o desempenho da classe, alterar a forma de montagem da lista. Uma vez que o nome e retorno do método (incluindo a estrutura da lista retornada) continuem sendo os mesmos, o código que usa a classe continuará funcionando como anteriormente.


C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico

Exercício Resolvido de C - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescente

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

Escreva um programa C que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida".

Sua saída deverá ser parecida com:

Primeiro número: 4
Segundo número: 8
Terceiro número: 11
Ordem Crescente
Resposta/Solução:

Veja a resolução comentada deste exercício em C:

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

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do exercício
  int a, b, c;
	
  setlocale(LC_ALL,""); // para acentos do português
  
  // vamos pedir para o usuário informar três números
  printf("Primeiro número: ");
  scanf("%d", &a);
  printf("Segundo número: ");
  scanf("%d", &b);
  printf("Terceiro número: ");
  scanf("%d", &c);
    
  // os números estão em ordem crescente?
  if (a < b && b < c){
    printf("Ordem Crescente");
  }
  // os números estão em ordem decrescente?
  else if (a > b && b > c){
    printf("Ordem Decrescente");
  }
  // sem ordem definida
  else{
    printf("Sem ordem definida");
  } 
	
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



PHP ::: Dicas & Truques ::: Strings e Caracteres

Como inverter o conteúdo de uma string usando a função strrev() do PHP

Quantidade de visualizações: 97 vezes
Em algumas situações nós precisamos inverter, ou seja, mostrar de forma contrária o conteúdo de uma palavra, frase ou texto. Para isso podemos usar a função strrev() da linguagem PHP. Ela recebe uma string e a devolve invertida.

Veja o código completo para o seu uso:

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

<?php  
  $frase = "Gosto de PHP";
  echo $frase . "<br>";
  echo strrev($frase);
?>  

</body>
</html>

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

Gosto de PHP
PHP ed otsoG


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

Como testar se uma determinada chave está contida no HashMap do Java usando o método containsKey()

Quantidade de visualizações: 8576 vezes
Em algumas situações precisamos verificar se uma determinada chave está contida no HashMap. Para isso podemos usar o método containsKey(), definido originalmente na interface Map. Veja sua assinatura:

public boolean containsKey(Object key)


Note que este método recebe um objeto contendo o valor da chave a ser pesquisada e retorna um valor true se o HashMap contiver a chave e false caso contrário. Veja o exemplo:

package estudos;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    
    // vamos criar uma instância de HashMap
    HashMap<Integer, String> clientes = new HashMap<>();

    // vamos adicionar três chaves e seus valores
    clientes.put(1, "Osmar J. Silva");
    clientes.put(2, "Salvador Miranda de Andrade");
    clientes.put(3, "Marcos da Costa Santos");
      
    // vamos verificar se a chave 2 está contida no HashMap
    if(clientes.containsKey(2)){
      System.out.println("A chave está contida no mapa");
    }
    else{
      System.out.println("A chave NÃO está contida no mapa");
    }

    System.exit(0);
  }
}

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

A chave está contida no mapa

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