Você está aqui: Cards de Python |
||
|
||
|
|
||
Ruby ::: Dicas & Truques ::: Data e Hora |
Como usar a classe DateTime da linguagem RubyQuantidade de visualizações: 7476 vezes |
|
A classe DateTime da linguagem Ruby extende a classe Date e inclui horas, minutos, segundos e frações de segundo. Além disso, esta classe fornece suporte básico a fuso horários. Fuso horários são representados como uma diferença do UTC (Universal Coordinated Time) em fração de um dia. Esta diferença é quanto a hora local é mais cedo ou mais tarde que o UTC. Uma diferença de UTC 0 está centralizada na Inglaterra (também conhecido como GMT). À medida que viajamos para o leste, a diferença aumenta até que alcancemos a linha de separação de data no meio do Oceano Pacífico. Quando viajamos para o oeste, a diferença diminui. Esta diferença é abreviada como "of" na classe Date. Veja um trecho de código no qual usamos a classe DateTime para obter a data e hora atual:
# importa o módulo date
require "date"
# obtém a data e hora atual
agora = DateTime::now
# exibe o resultado
puts "Agora é " + agora.strftime("%e/%m/%Y - %H:%M:%S")
Ao executar este código Ruby nós teremos o seguinte resultado: Agora é 5/04/2022 - 11:51:06 |
C# ::: Dicas & Truques ::: Mouse e Teclado |
C# Windows Forms - Como tratar eventos do mouse em suas aplicações C# Windows FormsQuantidade de visualizações: 16790 vezes |
|
Aplicações de interface gráfica (GUI) em C# fazem uso extensivo do mouse e qualquer classe que herde de System.Windows.Forms.Control pode receber e tratar seus eventos. Os eventos do mouse mais comuns são pressionamento (click), liberação, movimento, etc. E cada um possui suas particularidades. Sempre que um evento do mouse ocorre, as informações sobre tal evento são fornecidas ao método de tratamento de evento por meio de um objeto da classe MouseEventArgs (alguns eventos usam EventArgs) e o delegate usado para criar os gerenciadores de eventos do mouse é MouseEventHandler. Veja, por exemplo, o tratador de evento para o evento MouseClick de um Button:
private void button1_MouseClick(object sender, MouseEventArgs e){
MessageBox.Show("Sou um Button e acabei de ser clicado!");
}
A classe MouseEventArgs é muito útil, pois é ela que nos permite obter informações sobre qual botão foi pressionado, as coordenadas x e y do evento, se um duplo-clique ocorreu, etc. Veja um trecho de código no qual verificamos qual botão do mouse foi pressionado durante um evento MouseUp em um formulário:
private void Form1_MouseUp(object sender, MouseEventArgs e){
if(e.Button == MouseButtons.Left){
MessageBox.Show("Fui clicado com o botão esquerdo!");
}
else if(e.Button == MouseButtons.Right){
MessageBox.Show("Fui clicado com o botão direito!");
}
else if (e.Button == MouseButtons.Middle){
MessageBox.Show("Fui clicado com o botão do meio!");
}
else{
MessageBox.Show("O que está acontecendo?");
}
}
Veja os eventos do mouse que possuem um objeto da classe EventArgs: a) MouseEnter - Ocorre quando o cursor do mouse entra na área de um controle. b) MouseLeave - Ocorre quando o cursor do mouse deixa a área de um controle. c) Click - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse. Veja os eventos do mouse que possuem um objeto da classe MouseEventArgs: a) MouseDown - Ocorre quando o botão do mouse é pressionado dentro da área de um controle. b) MouseHover - Ocorre quando o cursor do mouse pára sobre a área de um controle (sem clique, pressionamento ou movimento). c) MouseMove - Ocorre quando movimentamos o mouse na área de um controle. d) MouseUp - Ocorre quando o botão do mouse é liberado sobre a área de um controle. e) MouseClick - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse. Há algumas diferenças significativas entre os eventos Click e MouseClick. Não deixe de consultar as outras dicas desta seção para aprofundar seus conhecimentos. |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) de forma iterativaQuantidade de visualizações: 1231 vezes |
|
Nesta dica mostrarei como podemos implementar o algorítmo da Busca em Profundidade (DFS, do inglês depth-first search) em Java de forma iterativa, ou seja, sem usar recursão. Não farei a busca, mas sim o percurso, para que você entenda como a lógica dessa busca funciona. Antes de iniciarmos, veja a árvore binária que vamos usar no exemplo: ![]() Note que esta árvore possui seis nós. O nó 5 é o nó raiz, e possui como filhos os nós 4 e 9. O nó 4, por sua vez, possui apenas um filho, o nó 2, ou seja, o filho da esquerda. O nó 9 possui dois filhos: o nó 3 é o filho da esquerda e o nó 12 é o filho da direita. Os filhos da árvore binária que não possuem outros filhos são chamados de folhas. Com a abordagem da busca em profundidade, começamos com o nó raiz e viajamos para baixo em uma única ramificação. Se o nó desejado for encontrado naquela ramificação, ótimo. Do contrário, continuamos subindo e pesquisando por nós não visitados. Esse tipo de busca também tem uma notação big O de O(n). Vamos à implementação? Veja o código para a classe No, que representa um nó na árvore binária:
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
Veja agora o código completo para o exemplo. Note que usei uma implementação não-recursiva, na qual todos os nós expandidos recentemente são adicionados a uma pilha, para realizar a exploração. O uso da pilha permite o retrocesso (backtracking) de forma a reiniciarmos o percurso ou busca no próximo nó. Para manter o código o mais simples possível, eu usei a classe Stack do Java, juntamente com seus métodos push() e pop() para simular a pilha. Usei também uma ArrayList para guardar os valores da árvore binária na ordem depth-first. Eis o código:
package estudos;
import java.util.ArrayList;
import java.util.Stack;
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar os nós da árvore
No cinco = new No(5); // será a raiz da árvore
No quatro = new No(4);
No nove = new No(9);
No dois = new No(2);
No tres = new No(3);
No doze = new No(12);
// vamos fazer a ligação entre os nós
cinco.esquerdo = quatro;
cinco.direito = nove;
quatro.esquerdo = dois;
nove.esquerdo = tres;
nove.direito = doze;
// agora já podemos efetuar o percurso depth-first
ArrayList<Integer> valores = percursoDepthFirst(cinco);
System.out.println("Os valores na ordem Depth-First são: " + valores);
}
public static ArrayList<Integer> percursoDepthFirst(No no){
// vamos usar uma ArrayList para retornar os elementos
// na ordem Depth-First
ArrayList<Integer> valores = new ArrayList<>();
// vamos criar uma nova instância de uma pilha
Stack<No> pilha = new Stack<>();
// já vamos adicionar o primeiro nó recebido, que é a raiz
pilha.push(no);
// enquanto a pilha não estiver vazia
while(pilha.size() > 0){
// vamos obter o elemento no topo da pilha
No atual = pilha.pop();
// adicionamos este valor no ArrayList
valores.add(atual.valor);
// vamos colocar o filho direito na pilha
if(atual.direito != null){
pilha.push(atual.direito);
}
// vamos colocar o filho esquerdo na pilha
if(atual.esquerdo != null){
pilha.push(atual.esquerdo);
}
}
return valores; // retorna os valores da árvore
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Os valores na ordem Depth-First são: [5, 4, 2, 9, 3, 12] Compare estes valores com a imagem vista anteriormente para entender ainda melhor o percurso ou busca Depth-First. |
VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de VB.NET - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em VB.NETQuantidade de visualizações: 582 vezes |
|
Pergunta/Tarefa: Escreva um programa VB.NET que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado:
' declara, constrói e inicializa um vetor de 10 inteiros
Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}
Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando VB.NET:
Imports System
Module Program
' função principal do programa VB.NET
Sub Main(args As String())
' declara, constrói e inicializa um vetor de 10 inteiros
Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}
' vamos ler um valor inteiro
Console.Write("Informe um valor: ")
Dim pesquisa As Integer = Int32.Parse(Console.ReadLine())
' vamos verificar quantas vezes o valor informado está
' contido no vetor
Dim repeticoes As Integer = 0
For i As Integer = 0 To valores.Length - 1
If valores(i) = pesquisa Then
' encontrou? vamos contar esta ocorrência
repeticoes = repeticoes + 1
End If
Next
' vamos mostrar o resultado
Console.WriteLine("O valor foi encontrado: " &
repeticoes & " vezes")
Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
End Module
|
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como usar o objeto Date em JavaScript - Curso de JavaScript para iniciantesQuantidade de visualizações: 7636 vezes |
O objeto Date é um tipo de dados embutido na linguagem JavaScript. Objetos Date são criados, em sua forma mais simples (construtor sem argumentos), da seguinte forma:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// vamos criar um novo objeto Date
var hoje = new Date();
// vamos exibir a representação deste objeto Date
document.write("Data e hora atual: " + hoje);
</script>
</body>
</html>
Ao executarmos este código teremos um resultado parecido com: Data e hora atual: Fri Mar 18 10:02:02 UTC-0300 2011 Note que a representação textual de um objeto Date é a data atual no formato curto (em inglês), as horas e a diferença em relação ao horário UTC (Universal Time Coordinated, sucessor do GMT - Greenwich Mean Time). Uma vez criado um objeto Date, podemos usar vários de seus métodos para operar sobre seus valores de datas e horas. A maioria dos métodos serve simplesmente para obter ou definir os valores dos campos ano, mês, dia, horas, minutos, segundos e milisegundos, usando a hora local ou UTC. O método toString() e suas variantes nos permitem converter datas e horas para os formatos comumente exibidos aos usuários. Veja um exemplo:
<script type="text/javascript">
// vamos criar um novo objeto Date
var hoje = new Date();
// vamos exibir a representação deste objeto Date
document.write("Data e hora atual: " + hoje.toLocaleString());
</script>
Ao executarmos este código teremos um resultado parecido com: Data e hora atual: sexta-feira, 18 de março de 2011 15:44:07 Aqui nós usamos o método toLocaleString() do objeto Date para exibir a data e hora de acordo com as configurações regionais do computador local. Os métodos getTime() e setTime() obtém ou definem a representação interna do objeto Date como o número de milisegundos decorridos desde a meia-noite do dia 1º de janeiro de 1970 (GMT). Neste formato padrão de milisegundos, a data e hora são representadas por um único inteiro, o que facilita os cálculos envolvendo datas e horas. O padrão ECMAScript exige que o objeto Date seja capaz de representar qualquer data e hora, na precisão de milisegundos, na faixa de 100 milhões de anos antes ou depois de 01/01/1970. |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
|
Python - Python para iniciantes - Como inserir uma determinada quantidade de espaços à direita de uma string |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







