Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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
PHP ::: Dicas & Truques ::: Expressões Regulares

Expressões Regulares em PHP - Como usar expressões regulares em PHP

Quantidade de visualizações: 9390 vezes
Expressões regulares são padrões pré-definidos que permitem pesquisar ou substituir uma substring em uma string. Isso quer dizer que expressões regulares são uma ferramenta muito útil para validar CEPs, números de telefones, cartões de crédito, endereços de e-mail, entre outros.

Várias linguagens de programação suportam expressões regulares, entre estas Perl, JavaScript, Java, C#, Python e VB.NET. Porém, o domínio destas expressões é privilégio de poucos. Talvez por sua complexidade ou até mesmo pelo fato de que alguns programadores se contentam em aprender apenas as características básicas de uma linguagem de programação. Quando precisam escrever um programa realmente avançado, vão em busca de códigos prontos e que satisfaçam suas necessidades depois de algumas pequenas alterações.

O PHP suporta dois tipos de expressões regulares: PCRE (Perl-Compatible Regular Expression) e POSIX Extended. O grupo de dicas apresentadas nesta seção de nosso site abrange estes dois tipos de expressões regulares.

Algumas funções de expressões regulares PCRE são: preg_grep(), preg_last_error(), preg_match_all(), preg_match(), preg_quote(), preg_replace_callback(), preg_replace() e preg_split(). Estas funções são abordadas com mais detalhes nesta seção.

Algumas funções de expressões regulares POSIX Regex são: ereg_replace(), ereg(), eregi_replace(), eregi(), split(), spliti(), sql_regcase().

Veja um trecho de código que usa a função eregi() para verificar se uma URL começa com http ou https:

<?
  $url = "http://www.arquivodecodigos.com.br";

  // vamos verificar se a URL começa com http ou https
  if(eregi("^http|https", $url))
    echo "A URL começa com o padrão analisado";
  else
    echo "A URL NÃO começa com o padrão analisado";
?>



PHP ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de PHP - Escreva um programa PHP para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array

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

Dado o seguinte vetor de inteiros:

// vamos declarar e construir um vetor de 8 inteiros
$valores = array(0, 3, 0, 5, 7, 4, 0, 9);
Escreva um programa PHP para mover todos os zeros para o final do vetor, ou seja, para a direita, sem alterar a ordem dos elementos diferentes de zero já presentes no array e sem criar um vetor adicional ou temporário.

Sua saída deverá ser parecida com:

Vetor na ordem original:

0   3   0   5   7   4   0   9   

Vetor com os zeros deslocados para o final:

3   5   7   4   9   0   0   0
Resposta/Solução:

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

<?php
  // Este código PHP pode ser executado tanto na linha
  // de comando quanto pelo servidor web
  
  // vamos declarar e construir um vetor de 8 inteiros
  $valores = array(0, 3, 0, 5, 7, 4, 0, 9);
  	
  // vamos mostrar o vetor na ordem original
  echo("Vetor na ordem original:\n");
  for($i = 0; $i < count($valores); $i++){
    echo $valores[$i] . "  ";
  }
    
  // vamos inicializar j como 0 para que ele aponte para
  // o primeiro elemento do vetor
  $j = 0;
    
  // agora o laço for percorre todos os elementos do vetor,
  // incrementanto a variável i e deixando o j em 0
  for($i = 0; $i < count($valores); $i++){
    // encontramos um valor que não é 0
    if($valores[$i] != 0){
      // fazemos a troca entre os elementos nos índices
      // i e j
      $temp = $valores[$i];
      $valores[$i] = $valores[$j];
      $valores[$j] = $temp;
      // e avançamos o j para o elemento seguinte
      $j++;
    }
  }
    
  // agora mostramos o resultado
  echo "\n\nVetor com os zeros deslocados para o final:\n";
  for($i = 0; $i < count($valores); $i++){
    echo $valores[$i] . "  ";
  }
?>

Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes.


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();
}



MySQL ::: Dicas & Truques ::: Joins (Junções)

Como agrupar dados de duas ou mais tabelas no MySQL usando LEFT JOIN (ou LEFT OUTER JOIN)

Quantidade de visualizações: 14762 vezes
A junção LEFT JOIN (ou LEFT OUTER JOIN) do MySQL é usada quando queremos agrupar dados de duas ou mais tabelas e exibir todos os registros da tabela à esquerda, mesmo que não haja correspondências (match) de registros na tabela à direita.

Vamos ver um exemplo? Considere duas tabelas: jogadores e times. Um jogador pode jogar em nenhum (zero) ou um time e um time pode conter zero ou mais jogadores. Aqui a cardinalidade é de 1 x N. Comece criando a tabela de times:

Comando DDL CREATE TABLE para a tabela times:

CREATE TABLE times(
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(45) NOT NULL,
  PRIMARY KEY(id)
)
ENGINE = InnoDB;

Vá em frente e insira alguns times nesta tabela. Vamos agora criar a tabela de jogadores:

Comando DDL CREATE TABLE para a tabela jogadores:

CREATE TABLE jogadores(
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(45) NOT NULL,
  id_time INTEGER UNSIGNED,
  PRIMARY KEY(id),
  CONSTRAINT fk_jogadores_times FOREIGN KEY fk_jogadores_times(id_time)
    REFERENCES times(id) ON DELETE RESTRICT ON UPDATE RESTRICT
)
ENGINE = InnoDB;

Note que o campo id_time da tabela jogador aceita NULL, ou seja, como é possível haver jogadores sem times, devemos ser capazes de cadastrar os jogadores e só mais adiante definir o time a qual ele pertencerá. Veja:

INSERT INTO jogadores VALUES(NULL, 'JORGINHO', NULL);

Vá em frente e cadastre alguns jogadores (sem relacioná-los com algum time). Finalizado alguns cadastros de jogadores e times, use a instrução UPDATE para relacionar alguns jogadores com seus respectivos times (deixe alguns jogadores sem time). Veja um exemplo:

UPDATE jogadores SET id_time = 3 WHERE id = 2;

E aqui já podemos ver um exemplo da junção LEFT JOIN. Nossa tarefa é listar o id, nome do jogador e nome do time a qual ele pertence. Mas, queremos também incluir na listagem os jogadores que ainda não possuem times (o valor do campo id_time ainda é NULL). Veja:

SELECT j.id, j.nome, t.nome FROM jogadores j LEFT JOIN times t
ON j.id_time = t.id;

id     jogador           time
1      ROBERTO CARLOS    ?
2      JORGINHO          CRUZEIRO
3      GUSTAVO BORGES    ?
4      MARCOS            ?

Note que o conjunto de dados retornados inclui todos os jogadores, incluindo aqueles para os quais nenhum time foi definido ainda.


Ruby ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string para letras maiúsculas em Ruby usando as funções upcase e upcase!

Quantidade de visualizações: 7121 vezes
Esta dica mostra como converter todos os caracteres de uma string para letras maiúsculas em Ruby. Para isso usaremos a função upcase(). Veja que podemos usar tanto upcase quanto upcase!. A primeira retorna uma nova string, enquanto a segunda opera na string original.

Veja o exemplo:

# declara e inicializa uma variável string
frase = "Gosto muito de Ruby"
puts "A frase original é: " + frase

# vamos transformar a string toda para
# letras maiúsculas. Veja que aqui não estamos
# operando na string original 
frase2 = frase.upcase

# exibe o resultado 
puts "Em letras maiúsculas: " + frase2

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

A frase original é: Gosto muito de Ruby
Em letras maiúsculas: GOSTO MUITO DE RUBY


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

Como usar ponteiros na linguagem Delphi - Aprenda a usar ponteiros em Delphi

Quantidade de visualizações: 24072 vezes
O Delphi, assim como C e C++ permite o uso de ponteiros, uma das ferramentas mais poderosas de programação e presente em códigos mais elaborados, tais como estruturas de dados.

Para entender ponteiros, é preciso lembrarmos do conceito de variáveis. Uma variável, em determinados momentos, possui várias propriedades ou atributos, a saber, um nome, um valor e o tipo de dados que poderá ser armazenado na mesma. Uma variável possui também um endereço na memória do computador e o seu nome não é nada mais que um apelido para tal endereço. Ponteiros também possuem um nome, um valor e um tipo de dados. A diferença é que ponteiros, em vez de guardar valores tais como inteiros, strings, caracteres, etc, guardam o endereço de outras variáveis (ou o endereço de outros ponteiros, o que resulta em um ponteiro para um ponteiro). Assim, um ponteiro é uma forma indireta de se acessar o conteúdo de uma outra variável.

Veja, por exemplo, as seguintes declarações de variáveis:

var
  valor: integer;
  pvalor: ^integer;

Aqui nós temos uma variável valor do tipo Integer e uma variável pvalor que é um ponteiro para um Integer. Veja agora como atribuir valores a estas variáveis:

procedure TForm1.Button1Click(Sender: TObject);
var
  valor: integer;
  pvalor: ^integer;
begin
  // atribui um valor à variável valor
  valor := 20;

  // vamos atribuir à pvalor o endereço de valor
  pvalor := @valor;

  // vamos usar o ponteiro pvalor para alterar o
  // valor de valor
  pvalor^ := 30;

  // vamos obter o novo valor da variável valor
  ShowMessage('Valor de valor: ' + IntToStr(valor));
end;

Veja que usamos o operador @ para obtermos o endereço da variável valor e guardá-lo no ponteiro pvalor. Em seguida usamos o símbolo ^ para acessar o valor da variável para a qual o ponteiro está apontando. Este processo é chamado de desreferenciamento (dereferencing). Em resumo, o símbolo ^ pode ser usado de duas formas: na frente de um tipo de dados, para indicar que a variável está sendo declarada como ponteiro e após o nome de uma variável do tipo ponteiro para indicar que queremos acessar o valor da variável para a qual o ponteiro está apontando atualmente e não o valor do ponteiro, que seria simplesmente um valor inteiro representando um endereço de memória.

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


VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Exercícios Resolvidos de VB.NET - Como retornar o código ASCII associado a um caractere em VB.NET - Ler um caractere e retornar o código ASCII correspondente

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

Escreva um programa VB.NET que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente.

Sua saída deverá ser parecida com:

Informe um caractere: A
Você informou o caractere: A
O código ASCII correspondente é: 65
Resposta/Solução:

Veja a resolução comentada deste exercício em VB.NET:

Imports System

Module Program
  ' função principal do programa VB.NET
  Sub Main(args As String())
    ' vamos pedir para o usuário informar uma letra, símbolo ou pontuação
    Console.Write("Informe um caractere: ")

    ' vamos ler o caractere informado
    Dim caractere As Char = Console.ReadLine()(0)

    ' agora vamos obter o código ASCII correspondente
    Dim codigo As Integer = Asc(caractere)

    ' e mostramos o resultado
    Console.WriteLine("Você informou o caractere: " & caractere)
    Console.WriteLine("O código ASCII correspondente é: " & codigo)

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos.


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

Como percorrer os elementos de uma lista Python usando o laço for e índices

Quantidade de visualizações: 13919 vezes
Nesta dica eu mostro como é possível usar o laço for da linguagem Python para percorrer individual os elementos de uma list. Veja o código completo para o exemplo:

# função principal do programa
def main():
  # cria uma lista de nomes
  nomes = ['Carlos', 'Ricardo', 'Osmar']
 
  # percorre a lista usando o laço for
  for i in range(len(nomes)):
    print("%d - %s" % ((i + 1), nomes[i]))
  
if __name__== "__main__":
  main()

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

1 - Carlos
2 - Ricardo
3 - Osmar


C++ Builder ::: VCL - Visual Component Library ::: TEdit

Como definir o conteúdo de um TEdit em tempo de execução usando a função SendMessage() da API do Windows e a mensagem WM_SETTEXT usando C++ Builder

Quantidade de visualizações: 6067 vezes
Embora o C++ Builder já nos forneça as ferramentas necessárias para definir o conteúdo de 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 SendMessage() em combinação com a mensagem WM_SETTEXT.

A função SendMessage() da API do Windows possui a seguinte assinatura:

LRESULT SendMessage(          
  HWND hWnd,
  UINT Msg,
  WPARAM wParam,
  LPARAM lParam
);

Note que precisamos de um HWND (Handle) para a caixa de texto. Feito isso só precisamos enviar a mensagem WM_SETTEXT juntamente com o conteúdo a ser exibido no controle. Veja:

void __fastcall TForm3::Button2Click(TObject *Sender)
{
  // conteúdo a ser definido para a caixa de texto
  char texto[] = "Veja isso";

  // vamos definir o conteúdo usando a função SendMessage
  // fornecendo a mensagem WM_SETTEXT
  SendMessage(Edit1->Handle, WM_SETTEXT, 0, (LPARAM)texto);
}

Veja que o parâmetro wParam da função SendMessage não é usado quando a mensagem é WM_SETTEXT.


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

Programação Orientada a Objetos em Java - Java OOP - Como chamar o construtor de uma superclasse a partir da classe derivada

Quantidade de visualizações: 19295 vezes
Em algumas situações, é necessário efetuar uma chamada ao construtor de uma superclasse a partir da sub-classe, ou classe derivada. Principalmente quando temos que inicializar dados privados pertencentes à superclasse. Imaginemos o seguinte cenário: uma classe Pessoa cujo construtor recebe o nome e idade da pessoa. Temos então uma classe Aluno que herda de pessoa e cujo construtor recebe nome, idade e matrícula. Desta forma, temos aqui uma boa oportunidade para efetuarmos uma chamada ao construtor da superclasse a partir da classe derivada.

Comece criando a classe Pessoa (Pessoa.java):

public class Pessoa{ 
  public String nome;    
  public int idade;

  // construtor da classe
  public Pessoa(String nome, int idade){
    this.nome = nome;
    this.idade = idade;
  }
}

Compile Pessoa.java. Agora vamos criar um classe Aluno (Aluno.java) que herda da classe Pessoa:

public class Aluno extends Pessoa{ 
  public String matricula;

  // construtor
  public Aluno(String nome, int idade,
               String matricula){
    // chama o construtor da superclasse
    super(nome, idade);
    this.matricula = matricula;
  }  
}

Compile Aluno.java e escreva o programa abaixo, que demonstra como a chamada ao construtor da superclasse é feita a partir da subclasse, ou classe derivada:

public class Estudos{ 
  public static void main(String args[]){ 
    // cria um objeto da classe Aluno
    Aluno aluno = new Aluno("Osmar J. Silva", 
      36, "AC434-23");
  
    // Exibe o resultado
    System.out.println("Nome: " + aluno.nome + "\n" +
      "Idade: " + aluno.idade + "\n" +
      "Matrícula: " + aluno.matricula);
  } 
}

Execute este código e observe alguns detalhes interessantes. O mais importante é a forma de chamar o construtor da superclasse:

// chama o construtor da superclasse
super(nome, idade);

Veja como recebemos três variáveis no construtor da classe Aluno e passamos duas delas para o construtor da superclasse.

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