Você está aqui: Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
|
Como inserir uma determinada quantidade de espaços à esquerda de um valor numérico usando PythonQuantidade de visualizações: 7249 vezes |
|
Este trecho de código Python mostra como definir uma quantidade de caracteres de espaço à esquerda de um valor numérico. Este exemplo funciona com inteiros. Para ponto-flutuante você deve trocar "d" por "f". Veja o código: # método principal def main(): valor = 54 # com três espaços print("O valor é %5d" % valor) # com nove espaços print("O valor é %11d" % valor) # com quatro espaços print("O valor é %6d" % valor) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O valor é 54 O valor é 54 O valor é 54 |
|
Link para compartilhar na Internet ou com seus amigos: | |
C# ::: Datas e Horas ::: DateTime |
Como construir uma data em C# usando o objeto DateTime e fornecendo o dia, mês e ano da data desejadaQuantidade de visualizações: 6886 vezes |
Aplicações que lidam com datas e horas geralmente precisam ser capazes de criar suas próprias datas. Isso pode ser feito com o auxílio de um dos vários construtores da estrutura DateTime. Para esta dica eu mostrarei como criar uma data no formato 23/05/2008. O construtor a ser usado é:DateTime(Int32, Int32, Int32) Este construtor pede valores inteiros representando o ano, mês e dia da data que queremos construir e retorna um objeto DateTime representando a data recém-construida. Veja um exemplo: static void Main(string[] args){ // cria um objeto DateTime para a data 10/04/2008 DateTime data = new DateTime(2008, 4, 10); // exibe o resultado System.Console.WriteLine(data.ToString("dd/MM/yyyy")); // pausa o programa Console.ReadKey(); } Note que, quando usamos este construtor, a parte do DateTime relativa às horas é inicializada como meia-noite. Tome cuidade. Este método pode lançar exceções dos tipos ArgumentOutOfRangeException e ArgumentException se os valores fornecidos para o ano, mês e dia estiverem fora das faixas permitidas. |
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: 701 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. |
C# ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da classe DateTimeQuantidade de visualizações: 26255 vezes |
Em algumas situações nossos códigos precisam adicionar ou subtrair dias de uma data. Isso pode ser feito com o auxílio do método AddDays() da estrutura DateTime. Este método recebe o número de dias a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações. Veja um trecho de código no qual adicionamos 5 dias à data atual: static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos adicionar 5 dias à data de hoje DateTime data_futura = hoje.AddDays(5); // exibe a data daqui a cinco dias System.Console.WriteLine("Daqui a 5 dias será {0:d}", data_futura); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } É possível também subtrair dias. Para isso só precisamos fornecer um valor negativo para o método AddDays(). Veja: static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos subtrair 7 dias da data de hoje DateTime data_passado = hoje.AddDays(-7); // exibe a data sete dias atrás System.Console.WriteLine("Há 7 dias era {0:d}", data_passado); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } Lembre-se, contudo, que o método AddDays() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar. |
Java ::: Classes e Componentes ::: JList |
Java Swing - Como obter o valor selecionado em um JList usando o método getSelectedValue()Quantidade de visualizações: 12784 vezes |
Nesta dica eu mostro como chamar o método getSelectedValue() de um controle JList para obter o valor do item selecionado na mesma. No exemplo nós exibimos o item selecionado em uma mensagem JOptionPane ao clicarmos em um botão JButton. Veja o código completo para o exemplo: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JList lista; public Estudos() { super("A classe JList"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria os itens da lista String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria a JList lista = new JList(nomes); // Define a seleção única para a lista lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Um botão que permite obter o valor do item selecionado JButton btn = new JButton("Obter valor selecionado"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String valor = (String)(lista.getSelectedValue()); JOptionPane.showMessageDialog(null, "O valor selecionado é: " + valor); } } ); // Adiciona a lista à janela c.add(new JScrollPane(lista)); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar esta aplicação Java Swing nós teremos o seguinte resultado: |
C# ::: Coleções (Collections) ::: ArrayList |
Como percorrer os elementos de uma ArrayList do C# usando o laço forQuantidade de visualizações: 13116 vezes |
Este trecho de código mostra como usar o laço da linguagem C# for para percorrer todos os elementos de uma ArrayList de inteiros. Veja como usamos o valor da variável de controle i como índice para o elemento que queremos obter durante uma determinada iteração do laço. Não se esqueça de importar o namespace System.Collections. Eis o código completo para o exemplo: using System; using System.Collections; namespace Estudos { class Program { static void Main(string[] args) { // Cria o ArrayList ArrayList lista = new ArrayList(); // Adiciona 5 inteiros lista.Add(30); lista.Add(2); lista.Add(98); lista.Add(1); lista.Add(9); // Percorre os elementos da ArrayList // usando o laço for for (int i = 0; i < lista.Count; i++) { Console.Write("{0} ", lista[i]); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: 30 2 98 1 9 |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |