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

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

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


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

Como adicionar dias a uma data usando a função ADDDATE() do MySQL

Quantidade de visualizações: 12380 vezes
A função ADDDATE() é usada para adicionar dias a uma data. Veja um exemplo de seu uso:

SELECT ADDDATE(vencimento, 30) FROM 
tabela_estudos

Aqui o valor do campo vencimento será acrescido de 30 dias. É possível também fornecer um número negativo de dias. Neste caso a data será decrementada pelo número de dias fornecidos. Veja:

SELECT ADDDATE(vencimento, -5) FROM 
tabela_estudos


Se quiser, você pode ainda usar esta função para adicionar não somente dias, mas também meses, anos, semanas, etc. Veja um exemplo no qual adicionamos três meses a uma determinada data:

SELECT ADDDATE(vencimento, INTERVAL 3 MONTH) FROM
tabela_estudos



Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Estruturas de dados em Java - Como obter a quantidade de nós em uma árvore binária usando Java

Quantidade de visualizações: 797 vezes
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como contar os nós da árvore usando um método recursivo. Veja:

// método que permite obter a quantidade de nós na árvore
int quantNosArvore(){
  // chama a versão recursiva
  return quantNosArvore(raiz);
}
  
int quantNosArvore(No no){
  if(no == null){ // condição de parada
    return 0;
  }
  else{
    return (quantNosArvore(no.getEsquerdo()) + 
      quantNosArvore(no.getDireito()) + 1);
  }
}

Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste:

package arvore_binaria;

import java.util.Scanner;

public class ArvoreBinariaTeste {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
       
    // vamos criar um novo objeto da classe ArvoreBinariaBusca
    ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
    
    // vamos inserir 5 valores na árvore
    for(int i = 0; i < 5; i++){
      System.out.print("Informe um valor inteiro: ");
      int valor = Integer.parseInt(entrada.nextLine());
       
      // vamos inserir o nó e verificar o sucesso da operação
      if(!arvore.inserir(valor)){
        System.out.println("Não foi possível inserir." +
          " Um elemento já contém este valor.");  
      }
    }
     
    // vamos exibir a quantidade de nós na árvore
    System.out.println("\nA árvore possui: " + 
      arvore.quantNosArvore() + " nós.\n");
     
    System.out.println("\n");
  }
}

Ao executar este código teremos o seguinte resultado:

Informe um valor inteiro: 5
Informe um valor inteiro: 2
Informe um valor inteiro: 8
Informe um valor inteiro: 7
Informe um valor inteiro: 31

A árvore possui: 5 nós.



C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI

Programação MIDI usando C++ - Como usar um vetor de chars para construir uma mensagem MIDI e passá-lo para a função midiOutShortMsg() da API do Windows

Quantidade de visualizações: 824 vezes
Nas dicas dessa seção nós vimos como é possível enviar uma mensagem MIDI para o dispositivo de saída por meio da função midiOutShortMsg() da API do Windows. Essa função recebe um handle para o dispositivo de saída MIDI e um valor DWORD contendo a mensagem MIDI.

Se você revisitar essas dicas, verá que na maioria delas nós informamos a mensagem MIDI diretamente no parâmetro da função (como um valor hexadecimal). Nesta dica mostrarei como é possível construir as mensagens MIDI usando seus valores individuais e, o que é melhor, usando valores decimais.

Para isso nós vamos construir um vetor de char e informar os valores que compõem a mensagem. É importante observar que a função midiOutShortMsg() exige que a mensagem MIDI seja informada na ordem de bytes "little endian" ou seja, o status MIDI é informado no byte de ordem mais baixa. Isso é conseguido com um cast do vetor para um unsigned long.

Veja o trecho de código:

// vamos criar um vetor contendo os valores que compõem a mensagem MIDI
unsigned char vetor[4];
vetor[0] = 144; // Note-on no Canal 1
vetor[1] = 40; // Nota Mi na 4ª oitava
vetor[2] = 100; // Velocidade/volume da nota
vetor[3] = 0; // Não é usado
// e aqui é que acontece a mágica. Quando fazemos o cast do
// vetor para o tipo long sem sinal, os valores são colocados em
// little endian, justamente a ordem de bytes esperada pela
// função midiOutShortMsg()
unsigned long mensagem = *(unsigned long*)vetor;
// envia a mensagem MIDI
midiOutShortMsg(saida, mensagem);

Note que não coloquei o código todo. Para completá-lo, veja outras dicas dessa seção.


jQuery ::: Dicas & Truques ::: Atributos ou Propriedades HTML

Apostila jQuery - Como substituir uma classe por outra em um elemento HTML usando os métodos removeClass() e addClass() do jQuery

Quantidade de visualizações: 12844 vezes
Muitos métodos do jQuery retornam um objeto jQuery que pode ser usado para fins de encadeamento de chamadas de métodos. Podemos tirar proveito disso para trocar as classes de um elemento HTML de forma bem simples.

Sabemos que os métodos removeClass() e addClass() retornam um objeto jQuery. Assim, o trecho de código abaixo é perfeitamente válido:

<script type="text/javascript">
<!--
  function trocarClasse(){
    // troca a classe "destaque" do parágrafo
    // com o id "parag" pela classe "destaque2"
    $('#parag').removeClass("destaque")
      .addClass("destaque2");
  }
//-->
</script>



C ::: Dicas & Truques ::: Matemática e Estatística

Como elevar uma base a um determinado expoente usando a função pow() da linguagem C

Quantidade de visualizações: 29150 vezes
Em algumas situações nós precisamos efetuar cálculos de potenciação em C, ou seja, elevar um número (uma base) a um determinado expoente e obter sua potência. Veja a figura a seguir:



Veja que aqui o valor 5 foi elevado ao cubo, ou seja, ao expoente 3 e obtemos como resultado sua potência: 125.

A linguagem C nos fornece a função pow(), presente no header math.h que recebe como argumentos a base e o expoente e nos retorna a potência (como um valor double). Veja um exemplo de seu uso no código abaixo:

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]){
  int base = 4;
  int expoente = 5;
  double potencia = pow(4, 5);
  printf("A base %d elevada ao expoente %d é igual à potência %f\n\n",
	  base, expoente, potencia);
  
  system("PAUSE");  
  return 0;
}

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

A base 4 elevada ao expoente 5 é igual à potência 1024.000000

Note que a função pow() da linguagem C retorna um valor double.


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

PHP para iniciantes - Como ordenar os elementos de um vetor usando a função sort() do PHP

Quantidade de visualizações: 7618 vezes
Em várias situações nós precisamos ordenar os elementos de um vetor de inteiros, de caracteres, de strings, etc. Para isso nós podemos usar a função sort() da linguagem PHP.

Veja o código a seguir:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  // um vetor com quatro elementos
  $pessoas = array("Kelly", "Alice", "Mônica", "Cíntia"); 
  // mostra os elementos sem ordenação
  echo "Sem ordenar: ";
  foreach($pessoas as $pessoa){
    echo $pessoa . ", ";
  }

  // vamos ordenar o vetor em ordem alfabética
  // crescente
  sort($pessoas); 

  // mostra os elementos ordenados
  echo "<br><br>Ordenados: ";
  foreach($pessoas as $pessoa){
    echo $pessoa . ", ";
  }   
?>
 
</body>
</html>

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

Sem ordenar: Kelly, Alice, Mônica, Cíntia
Ordenados: Alice, Cíntia, Kelly, Mônica

Note que a função sort() requer o vetor (array) a ser ordenado e uma flag opcional indicando como a ordenação deverá ser feita. Esta flag pode ser um dos seguintes valores:

SORT_REGULAR - padrão, compara os itens normalmente (não modifica o tipo).
SORT_NUMERIC - compara os items numericamente.
SORT_STRING - compara os itens como strings.
SORT_LOCALE_STRING - compara os itens como strings, utilizando o locale atual. Utiliza o locale que pode ser modificado com setlocale().
SORT_NATURAL - compara os itens como strings utilizando "ordenação natural" tipo natsort().
SORT_FLAG_CASE - pode ser combinado (bitwise OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem considerar maiúsculas e minúsculas.


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

Como testar o conteúdo no final de uma string usando Java - O método endsWith() da classe String

Quantidade de visualizações: 7362 vezes
Em algumas situações nós precisamos de verificar o conteúdo no final de uma palavra, frase ou texto. Para isso nós podemos usar o método endsWith() da classe String da linguagem Java.

Este método recebe a substring a ser testada e retorna true se ela for encontrada no final da string e false em caso contrário. Note que este método diferencia maiúsculas de minúsculas.

Veja um exemplo completo de seu uso:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    String arquivo = "Pessoa.java";
    
    // o nome do arquivo termina em ".java"?
    if(arquivo.endsWith(".java")){
      System.out.println("O arquivo contém a extensão desejada");
    }
    else{
      System.out.println("O arquivo não contém a extensão desejada");  
    }
          
    System.exit(0);
  }
}

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

O arquivo contém a extensão desejada.


Python ::: Fundamentos da Linguagem ::: Estruturas de Controle

Python para iniciantes - Como usar o laço while em Python

Quantidade de visualizações: 13668 vezes
O laço while da linguagem Python permite executar um bloco de códigos repetidamente até que uma condição seja verdadeira. Opcionalmente, uma cláusula else pode ser usado com o while em Python (a parte else será executada mesmo que o corpo principal do laço não seja executado). Veja um exemplo:

# função principal do programa
def main():
  numero = 0
 
  while numero <= 10:
    print(numero)
    numero = numero + 1
  else:
    print("Terminei")
  
if __name__== "__main__":
  main()

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

0
1
2
3
4
5
6
7
8
9
10
Terminei

Veja um exemplo de um laço while que nunca será executado:

# função principal do programa
def main():
  numero = 0
 
  while numero > 10:
    print(numero)
    numero = numero + 1
  
if __name__== "__main__":
  main()

E agora um exemplo de laço usando um valor booleano:

# função principal do programa
def main():
  continuar = True
  valor = 0
 
  while continuar:
    print(valor)
   
    if valor > 5:
      continuar = False
    else:
      valor = valor + 1
  
if __name__== "__main__":
  main()

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

0
1
2
3
4
5
6


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

Como adicionar horas, dias, semanas, meses, anos, etc, ao valor de um campo DATE ou DATETIME usando a função DATE_ADD() do MySQL

Quantidade de visualizações: 9356 vezes
A função DATE_ADD() é muito útil quando precisamos adicionar horas, dias, semanas, meses, etc, ao valor de um campo do tipo DATE ou DATETIME. Esta função é composta de três partes:

DATE_ADD(date, INTERVAL expr unit)

O argumento date deve ser do tipo DATE ou DATETIME. O argumento expr indica um número inteiro que indica a quantidade de horas, dias, meses, etc, que será usada como intervalo. O argumento unit indica a unidade a ser usada. Valores possíveis são: HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc.

Veja um exemplo no qual adicionamos 15 dias à data atual:

SELECT DATE_ADD(NOW(), INTERVAL 15 DAY)

Suponha que você tenha um campo chamado data_hora_compra do tipo DATETIME e que este campo tenha o valor 2008-03-30 02:30:15. A query:

SELECT DATE_ADD(data_hora_compra, INTERVAL 
2 MONTH) FROM tabela_estudos

retornará 2008-05-30 02:30:15.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

JSP (Java Server Pages) - O que são sessões JSP?

Quem Somos

Osmar J. Silva
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Elétrica pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 15 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: C#
3º lugar: PHP
4º lugar: Delphi
5º lugar: Python
6º lugar: JavaScript
7º lugar: C
8º lugar: C++
9º lugar: VB.NET
10º lugar: JSP (Java Server Pages)



© 2021 Arquivo de Códigos - Todos os direitos reservados | Versión en Español | Versão em Português