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

Como criar um array de strings em Ruby usando a notação %w

Quantidade de visualizações: 7733 vezes
Como criar um array de strings em Ruby usando a notação %w

Nesta dica mostrarei como podemos criar um vetor de strings em Ruby usando a notação %w(..). Ao usarmos esta sintáxe, cada elemento do array é separado por um espaço. Veja como usamos a barra invertida "\" para um elemento composto de mais de uma palavra.

Veja o código completo para o exemplo:

# define um array de cidades
cidades = %w(Goiânia Salvador Rio\ de\ Janeiro São\ Paulo)

# exibe os elementos do array
cidades.each do |cidade|
  puts cidade
end

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

Goiânia
Salvador
Rio de Janeiro
São Paulo


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

Como calcular MDC em Lisp usando a função GCD

Quantidade de visualizações: 870 vezes
Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada:

Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

Podemos calcular o Máximo Divisor Comum na linguagem Common Lisp usando a função GCD. Esta função aceita um número ilimitado de valores inteiros e retorna seu Máximo Divisor Comum.

Veja um trecho de código Common Lisp no qual pedimos para o usuário informar dois números inteiros e, em seguida, fazemos uso da função GCD para retornar o MDC:

; variáveis que vamos usar no programa
(let ((num1)(num2)(mdc))
  ; Vamos ler o primeiro número
  (princ "Informe o primeiro número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num1
  (setq num1 (read))
  
  ; Vamos ler o segundo número
  (princ "Informe o segundo número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num2
  (setq num2 (read))
  
  ; Vamos obter o MDC dos dois números informados
  (setq mdc (gcd num1 num2))
  
  ; E mostramos o resultado
  (format t "O Máximo Divisor Comum é: ~D" mdc)
)

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

Informe o primeiro número: 9
Informe o segundo número: 12
O Máximo Divisor Comum é: 3


C++ ::: STL (Standard Template Library) ::: Vector C++

Como retornar uma referência ao último elemento de um vector C++ usando a função back()

Quantidade de visualizações: 7144 vezes
O último elemento de um contêiner STL vector pode ser acessado por meio da função back(). Como esta função é sobrecarregada, temos duas opções:

reference back();
const_reference back() const;  
A primeira versão é do tipo T&, ou seja, retorna uma referência ao último elemento. Veja:

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter o valor do último elemento do vector
  // Note que back() pode ser usada dos dois lados
  // de uma operação de atribuição
  int valor = valores.back();
  cout << "Último elemento: " << valor << endl;

  // vamos alterar o valor do último elemento
  valores.back() = 102;

  // vamos testar o resultado
  cout << "Último elemento: " << valores.back() << endl;

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

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

Último elemento: 87
Último elemento: 102

Note que aqui nós usamos:

int valor = valores.back();

para guardar o valor do último elemento na variável valor. Poderíamos também usar:

int& valor = valores.back();
valor = 102;

Agora valor é uma referência direta ao último elemento do vector. Desta forma, qualquer alteração no valor da variável valor afetará também o último elemento do vector.

Observe agora o seguinte trecho de código:

int valor = valores.back(); // o último elemento é 87
valores.back() = 20;
cout << "Último elemento: " << valor << endl;

Aqui nós acessamos o valor do último elemento, guardarmos-o na variável valor e atribuímos o valor 20 à valores.back(). Porém, ao imprimirmos a variável valor o seu conteúdo ainda é 87. De fato, o que gostaríamos é que uma alteração em valores.back() afetasse também a variável valor. Assim:

int& valor = valores.back(); // o último elemento é 87
valores.back() = 20;
cout << "Último elemento: " << valor << endl;

Mas, como evitar alterações diretas na variável valor? Podemos declarar valor como uma referência constante, ou seja, usar a segunda versão da função back(), a saber const T&, que retorna uma referência constante. Veja:

const int& valor = valores.back(); // o último elemento é 87
valores.back() = 20;
valor = 300; // esta linha não compila
cout << "Último elemento: " << valor << endl;

Agora o efeito que queríamos é alcançado. Alterações em valores.back() afetam a variável valor, mas, não podemos alterar valor diretamente, já que esta variável é uma referência constante agora.


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

Python para iniciantes - Como usar a instrução break em Python

Quantidade de visualizações: 10633 vezes
A instrução break da linguagem Python é usada para interromper a execução de um laço for ou while. Observe que se o laço possuir um bloco else, este não será executado se a instrução break for usada.

Veja um exemplo de um laço for que é interrompido se o valor da variável de controle for 5:

# função principal do programa
def main():
  for i in range(0, 21):
    print(i)
    if i == 5:
      break
  
if __name__== "__main__":
  main()

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

0
1
2
3
4
5


C# ::: Windows Forms ::: CheckBox

Como marcar ou desmarcar todas as CheckBox de um formulário C# Windows Forms de uma só vez via código

Quantidade de visualizações: 17355 vezes
Em algumas situações temos formulários com muitos controles CheckBox C# Windows Forms e gostaríamos de marcá-los ou desmarcá-los de uma só vez. Esta dica mostra como isso pode ser feito.

Para simular este exemplo, coloque vários controles CheckBox no formulário e coloque o código abaixo no evento Click de um botão:

private void button1_Click(object sender, EventArgs e){
  // vamos percorrer todos os controles do formulário
  for(int i = 0; i < this.Controls.Count; i++){
    // vamos testar se o controle é do tipo CheckBox
    if(this.Controls[i] is System.Windows.Forms.CheckBox){
      // é do tipo CheckBox. Vamos marcar
      (this.Controls[i] as CheckBox).Checked = true;
    }
  }
}

Se quiser desmarcar todas as CheckBoxes, troque a linha:

(this.Controls[i] as CheckBox).Checked = true;

por

(this.Controls[i] as CheckBox).Checked = false;


Java ::: Pacote java.awt.event ::: KeyEvent

Java Swing - Como obter o código da tecla pressionada usando o método getKeyCode() da classe KeyEvent do Java

Quantidade de visualizações: 4500 vezes
O método getKeyCode() da classe KeyEvent é usado quando queremos obter o código da tecla pressionada durante um evento KEY_PRESSED ou KEY_RELEASED. Para o evento KEY_TYPED, o keyCode é VK_UNDEFINED.

Veja um trecho de código no qual usamos o método getKeyCode() para obter e informar o código da tecla pressionada durante um evento keyPressed:

package estudos;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class Janela extends JFrame implements KeyListener{
  public Janela(){
    super("Eventos do Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
    
    // vamos adicionar o objeto listener 
    addKeyListener(this);

    setSize(350, 250);
    setVisible(true);
  }
    
  @Override
  public void keyPressed(KeyEvent e){
    // vamos obter o código da tecla pressionada
    int codigo = e.getKeyCode();
    JOptionPane.showMessageDialog(null, "O código da tecla pressionada é: " + codigo);  
  }
    
  @Override
  public void keyReleased(KeyEvent e){
    // sem implementação
  }

  @Override
  public void keyTyped(KeyEvent e){
    // sem implementação
  }   
  
  public static void main(String args[]){
    Janela j = new Janela();
    j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Ao executar este código e pressionarmos uma tecla nós teremos o seguinte resultado:

O código da tecla pressionada é: 65

É importante observar que o código da tecla pode ser obtido somente nos eventos keyPressed e keyReleased. Para o evento keyTyped o retorno do método getKeyCode() é VK_UNDEFINED.


JavaScript ::: Web APIs (APIs Web) ::: MediaDevices Interface (Interface MediaDevices)

HTML5 + JavaScript - Como usar a interface MediaDevices em seus códigos JavaScript

Quantidade de visualizações: 1713 vezes
A interface MediaDevices é um daqueles objetos que vemos com frequencia em códigos JavaScript e não entendemos muito bem o seu funcionamento. Nesta dica vou decifrá-la.

O objetivo da interface MediaDevices é fornecer acesso aos dispositivos de entrada de mídia conectadas e às quais o navegador tem acesso, a saber, câmeras, microfone e compartilhamento de tela. É por meio dessa interface que acessamos tais dispositivos.

A interface MediaDevices está disponível como um objeto do objeto navigator. Veja como testar sua existência e suporte no seu navegador web:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
<title>A interface MediaDevices</title>
  
</head>
<body>
 
<script type="text/javascript">
  // o browser suporta o MediaDevices?
  if(navigator.mediaDevices){
    window.alert("O navegador suporta o MediaDevices");  
  }
  else{
    window.alert("O navegador não suporta o MediaDevices");  
  }
</script>
  
</body>
</html>

Note que mediaDevices é um objeto Singleton do objeto navigator, ou seja, só há uma instância desse objeto disponível no contexto de execução de códigos no navegador. Há também a preocupação em relação à segurança. Alguns navegador podem restringir o acesso a este objeto se você não estiver em um ambiente HTTPS ou localhost.


Python ::: wxPython ::: Controles Visuais Básicos do wxPython

Como usar a classe wx.Button para criar botões em suas aplicações wxPython

Quantidade de visualizações: 7155 vezes
Botões são os controles mais frequentes em interfaces do usuário (GUI) e o wxPython nos fornece a classe wx.Button, usada para criar botões padrões. Veja a posição desta classe na hierarquia wxPython:

wxObject
  wxEvtHandler
    wxWindow
      wxControl
        wxButton

Botões são geralmente colocados em caixas de diálogo e painéis. Vamos começar entendendo o construtor da classe wx.Button:

wx.Button(parent, id, label, pos, size=wxDefaultSize, 
  style=0, validator, name="button")

Este construtor segue a mesma ordem e estilo do construtor C++. Veja:

wxButton(wxWindow* parent, wxWindowID id, 
  const wxString& label = wxEmptyString, 
  const wxPoint& pos = wxDefaultPosition, const 
  wxSize& size = wxDefaultSize, long style = 0, 
  const wxValidator& validator = wxDefaultValidator,
  const wxString& name = "button")

Como podemos observar, vários parâmetros possuem valores padrões e, portanto, podem ser omitidos no momento da criação do componente. Veja um exemplo de como criar um wx.Button:

# Cria um botão e o adiciona no painel
btn = wx.Button(panel, label="Clique Aqui", 
  pos=(10, 10), size=(100, 25))

panel é uma referência a um wx.Panel, ou seja, o painel de conteúdo no qual o botão será anexado. Fornecer um componente pai do tipo painel (ou qualquer outro componente visível) é necessário para que o componente também seja visível na janela.


Delphi ::: Dicas & Truques ::: Strings e Caracteres

Como substituir todas as ocorrências de uma substring em uma string em Delphi sem considerar maiúsculas e minúsculas usando a função ReplaceText()

Quantidade de visualizações: 12000 vezes
Algumas vezes precisamos substituir todas as ocorrências de uma substring em uma string mas não queremos diferenciar letras maiúsculas de letras minúsculas. Em Delphi isso pode ser feito com o auxílio da função ReplaceText(). Esta função requer a string na qual a substituição ocorrerá, a substring a ser substituída e a nova substring. O resultado será uma nova string resultante da substituição. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  frase: string;
begin
  frase := 'PHP? Sim, eu gosto muito de PHP';

  // vamos substituir todas as ocorrências de "PHP" por "Delphi'
  // sem considerar maiúsculas e minúsculas
  frase := ReplaceText(frase, 'Php', 'Delphi');

  // vamos exibir o resultado
  ShowMessage(frase);
end;

Lembre-se de que esta função não diferencia maiúsculas e minúsculas.

Não se esqueça de adicionar a unit StrUtils no uses do seu formulário.

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


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

Como acessar os caracteres de uma string individualmente em PHP usando índices

Quantidade de visualizações: 225 vezes
Em algumas situações nós gostaríamos de acessar os caracteres individuais de uma palavra, frase ou texto em PHP. Isso pode ser feito por meio da notação de índices, ou seja, usando [].

Veja um exemplo abaixo:

<?php
  $nome = "Carlos de Jesus";
  echo "O primeiro caractere é " . $nome[0];
?>

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

O primeiro caractere é C

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