Java ::: Dicas & Truques ::: Timers |
Java Swing Exemplo completo: Como usar um timer para atualizar a hora atual em uma JLabelQuantidade de visualizações: 17144 vezes |
Este exemplo mostra como criar uma janela JFrame contendo dois botões JButton, um label JLabel e um timer (java.awt.Timer). Quando o timer dispara, o texto da label é atualizado para refletir a hora atual. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para o exemplo: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Calendar; import java.text.DecimalFormat; public class Estudos extends JFrame{ JLabel hora; Timer timer; DecimalFormat formato; public Estudos() { super("Usando timers em Java"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); formato = new DecimalFormat("00"); // Cria o timer timer = new Timer(1000, new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ atualizarHoras(); } }); // Cria um botão com o texto "Iniciar" JButton iniciar = new JButton("Iniciar"); iniciar.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ timer.start(); // inicia o timer } } ); // Cria um botão com o texto "Parar" JButton parar = new JButton("Parar"); parar.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ timer.stop(); // pára o timer } } ); // JLabel que exibirá a hora atual hora = new JLabel("00:00:00"); // Adiciona os botões à janela c.add(iniciar); c.add(parar); // adiciona o label à janela c.add(hora); setSize(350, 250); setVisible(true); } private void atualizarHoras(){ // Cria uma instância de Calendar Calendar agora = Calendar.getInstance(); // horas, minutos e segundos int horas = agora.get(Calendar.HOUR); int minutos = agora.get(Calendar.MINUTE); int segundos = agora.get(Calendar.SECOND); hora.setText(formato.format(horas) + ":" + formato.format(minutos) + ":" + formato.format(segundos)); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercícios Resolvidos de Python - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em PythonQuantidade de visualizações: 900 vezes |
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10(). Sua saída deverá ser parecida com: Informe um número inteiro: 48763 A soma do primeiro e do último dígito é: 7 Veja a resolução comentada deste exercício usando Python: # vamos importar o módulo Math import math # método principal def main(): # vamos pedir para o usuário informar um número inteiro numero = int(input("Informe um número inteiro: ")) # vamos obter a quantidade (-1) de dígitos no número informado quant = int(math.log10(numero)) primeiro_digito = (int)(numero / pow(10, quant)) ultimo_digito = numero % 10 # soma o primeiro e o último dígito soma = primeiro_digito + ultimo_digito # mostra o resultado print("A soma do primeiro e do último dígito é: {0}".format(soma)) if __name__== "__main__": main() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Um programa Java console ou GUI que exiba um número aleatório inteiro entre 0 e 10 (incluindo)Quantidade de visualizações: 12812 vezes |
Pergunta/Tarefa: Escreva um programa Java console ou GUI que exiba um número aleatório inteiro entre 0 e 10 (incluindo). Em seguida escreva um nova versão que exiba um número aleatório entre 10 e 20 (incluindo): Resposta/Solução: Veja a resolução e explicação para o código Java que exibe um número aleatório entre 0 e 10 (incluindo o 0 e 10): O método random() da classe Math retorna um número aleatório maior que ou igual a 0,0 e menor que 1,0. Assim, se o número gerado for: 0.46095278727662825 e o multiplicarmos por 10, teremos 4.609527872766282. Se aplicarmos uma conversão para inteiro teremos 4. Assim, para garantir que o número 10 também poderá ser sorteado, basta multiplicarmos Math.random() por 11. Veja: public static void main(String[] args){ // vamos gerar um número aleatório entre 0 e 10 int numero = (int)(Math.random() * 11); // vamos exibir o número aleatório gerado System.out.println("O número gerado foi: " + numero); } Para sortear um número aleatório entre 10 e 20, só precisamos somar 10 ao número gerado. Veja: public static void main(String[] args){ // vamos gerar um número aleatório entre 10 e 20 int numero = 10 + (int)(Math.random() * 11); // vamos exibir o número aleatório gerado System.out.println("O número gerado foi: " + numero); } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercícios Resolvidos de Java - Escreva uma classe Biblioteca que possui uma ArrayList de objetos da classe Livro. Forneça um menu para listar, cadastrar, pesquisar e excluir livrosQuantidade de visualizações: 543 vezes |
Pergunta/Tarefa: Escreva um programa Java contendo duas classes: Biblioteca e Livro. A classe Biblioteca deverá ter uma coleção de livros, ou seja, uma ArrayList de objetos da classe Livro. Além da coleção de livros a classe Biblioteca deverá conter um atributo nome, que será informado assim que a classe for instanciada. A classe Livro, por sua vez, deverá possuir os atributos id, titulo, autor e paginas. O atributo id deverá ser auto-incremento, isto é, 1 para o primeiro livro cadastrado, 2 para o segundo, e assim por diante. Além disso, a exclusão de livros deverá ser feita de acordo com o seu id ou título. Seu programa deverá exibir um menu de opções para as diversas operações da biblioteca. Uma boa opção em Java é usar a estrutura switch case para a criação do menu de opções. Atenção: todos os métodos de manipulação de livros deverão estar na classe Biblioteca, e não na classe principal do programa Java. Para finalizar, tanto a classe Biblioteca quanto a classe Livro deverão apresentar boas práticas de programação orientada a objetos: nomenclatura correta de classes, atributos e métodos, encapsulamento de dados e construtores. Sua saída deverá ser parecida com: ------------------------------------------------- :: Biblioteca Programação e Artes :: ------------------------------------------------- Bem-vindo(a) ao sistema. Escolha a opção desejada 1 - Novo Livro 2 - Listar Livros 3 - Pesquisar Livro 4 - Excluir Livro 5 - Sair Sua opção: 1 Título: JAVA PARA INICIANTES Autor: OSMAR J SILVA Quant Páginas: 480 O livro foi cadastrado com sucesso Veja a resolução comentada deste exercício em Java: Código para a classe Livro, que deve estar no arquivo Livro.java: package estudos; // definição da classe Livro public class Livro { private int id; // id do livro. Não pode repetir private String titulo; private String autor; private int paginas; // construtor vazio da classe Livro public Livro() {} // construtor cheio da classe Livro public Livro(int id, String titulo, String autor, int paginas) { this.id = id; this.titulo = titulo; this.autor = autor; this.paginas = paginas; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getAutor() { return autor; } public void setAutor(String autor) { this.autor = autor; } public int getPaginas() { return paginas; } public void setPaginas(int paginas) { this.paginas = paginas; } } Código para a classe Biblioteca, que deve estar no arquivo Biblioteca.java: package estudos; // imports necessários import java.util.ArrayList; import java.util.Scanner; // definição da classe Biblioteca public class Biblioteca { String nome; ArrayList<Livro> livros; // ArrayList para guardar os livros // variável do tipo int para gerar IDs auto-incremento para os livros int idUltimoLivroCadastrado = 0; // construtor da classe public Biblioteca(String nome) { this.nome = nome; this.livros = new ArrayList(); } // exibe o menu de opções da biblioteca public void exibirMenu(){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // variáveis temporárias Livro temp; String pesquisaLivro; // um laço infinito com as opções do menu while(true){ System.out.println("\n-------------------------------------------------"); System.out.println(":: " + this.nome + " ::"); System.out.println("-------------------------------------------------"); System.out.println("Bem-vindo(a) ao sistema. Escolha a opção desejada\n"); System.out.println("1 - Novo Livro"); System.out.println("2 - Listar Livros"); System.out.println("3 - Pesquisar Livro"); System.out.println("4 - Excluir Livro"); System.out.println("5 - Sair"); System.out.print("\nSua opção: "); // lê a opção do usuário int opcao = Integer.parseInt(entrada.nextLine()); // um menu switch para ler as opções do menu switch(opcao){ case 1: // vamos cadastrar um novo livro System.out.print("\nTítulo: "); String titulo = entrada.nextLine(); System.out.print("Autor: "); String autor = entrada.nextLine(); System.out.print("Quant Páginas: "); int quantPaginas = Integer.parseInt(entrada.nextLine()); // vamos gerar o id deste livro int id = ++this.idUltimoLivroCadastrado; // agora vamos criar um novo objeto da classe Livro Livro livro = new Livro(id, titulo, autor, quantPaginas); // e o adicionamos no ArrayList de livros livros.add(livro); // e finalmente mostramos uma mensagem de sucesso. System.out.println("\nO livro foi cadastrado com sucesso"); break; case 2: // vamos listar os livros cadastrados if(livros.isEmpty()){ System.out.println("\nNão há nenhum livro cadastrado."); } else{ for(int i = 0; i < livros.size(); i++){ temp = livros.get(i); // obtém o livro da iteração atual System.out.println("\nId: " + temp.getId()); System.out.println("Título: " + temp.getTitulo()); System.out.println("Autor: " + temp.getAutor()); System.out.println("Quant. Paginas: " + temp.getPaginas()); } } break; case 3: // vamos pesquisar um livro System.out.print("\nInforme o id ou título do livro: "); pesquisaLivro = entrada.nextLine(); // chamamos o método que pesquisa o livro temp = this.pesquisarLivro(pesquisaLivro); if(temp == null){ // livro não encontrado System.out.println("\nO livro náo foi encontrado."); } else{ // mostra o livro encontrado System.out.println("\nId: " + temp.getId()); System.out.println("Título: " + temp.getTitulo()); System.out.println("Autor: " + temp.getAutor()); System.out.println("Quant. Paginas: " + temp.getPaginas()); } break; case 4: // vamos excluir um livro System.out.print("\nInforme o id ou título do livro a ser excluído: "); pesquisaLivro = entrada.nextLine(); // chamamos o método que pesquisa o livro temp = pesquisarLivro(pesquisaLivro); if(temp == null){ // livro não encontrado System.out.println("\nO livro não foi encontrado."); } else{ // vamos excluir este livro livros.remove(temp); System.out.println("\nLivro excluído com sucesso."); } break; case 5: // sai da aplicação System.out.println("\nObrigado por usar a biblioteca\n"); System.exit(0); default: System.out.println("\nOpção inválida\n"); break; } } } // método que pesquisa um livro pelo id ou e retorna um objeto da classe Livro public Livro pesquisarLivro(String pesquisaLivro){ Livro livro = null; // este livro existe? for(int i = 0; i < livros.size(); i++){ // pesquisa pelo id if(Integer.toString(livros.get(i).getId()).equals(pesquisaLivro)){ return livros.get(i); } // pesquisar por título else if(livros.get(i).getTitulo().contains(pesquisaLivro)){ return livros.get(i); } } return livro; } } E aqui está o código para a classe principal Estudos, no arquivo Estudos.java: package estudos; public class Estudos { public static void main(String[] args) { // vamos criar um novo objeto da classe Biblioteca Biblioteca b = new Biblioteca("Biblioteca Programação e Artes"); // mostra o menu da biblioteca b.exibirMenu(); } } |
Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como usar arrays (vetores e matrizes) em DelphiQuantidade de visualizações: 73663 vezes |
Em programação de computadores, um array, também conhecido como vector (para arrays uni-dimensionais) ou matriz (para arrays bi-dimensionais), é uma das mais simples estruturas de dados. Os arrays mantêm uma série de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais são acessados por sua posição no array. A posição é dada por um índice, também chamado de subscrição. O índice geralmente utiliza uma seqüência de números inteiros, (ao contrário de um array associativo) mas o índex pode ter qualquer valor ordinal. Alguns arrays são multi-dimensionais, significando que eles são indexados por um número fixo de números inteiros, por exemplo, por um seqüência (ou sucessão) finita de quatro números inteiros. Geralmente, arrays uni- e bi-dimensionais são os mais comuns. Os arrays podem ser considerados como as estruturas de dado mais simples que é possível imaginar. Têm a vantagem de que os seus elementos são acessíveis de forma rápida, mas têm uma notável limitação: são de tamanho fixo, mas podem ser incrementados ou diminuídos com determinados algoritmos, geralmente envolvendo a cópia de elementos de um array para outro e reinicializando o original com a nova dimensão. Os vetores podem ser implementados desta forma. Em Delphi um array é declarado da seguinte forma: var valores: array[1..10] of Integer; Aqui nós temos um array chamado valores que contém 10 elementos do tipo Integer. Estes elementos podem ser acessados por índices que variarão de 1 a 10, ou seja, podemos acessar o 5º elemento da seguinte forma: procedure TForm1.Button1Click(Sender: TObject); var valores: array[1..10] of Integer; begin valores[5] := 20; end; Este tipo de array que ora criamos é chamado de array estático, em contraposição aos arrays dinâmicos, os quais podem ter seus tamanhos redimensionados durante a execução do programa. A forma mais prática de se trabalhar com arrays em Delphi é usando laços. Veja: procedure TForm1.Button1Click(Sender: TObject); var valores: array[1..5] of Integer; i, soma: Integer; begin // vamos preencher o array com os valores de 1 a 5 for i := 1 to 5 do begin valores[i] := i; end; // vamos percorrer o array novamente e obter a soma dos // valores de seus elementos soma := 0; for i := 1 to 5 do begin soma := soma + valores[i]; end; // vamos exibir o resultado ShowMessage('A soma dos valores é: ' + IntToStr(soma)); end; Aqui nós declaramos um array de 5 elementos do tipo Integer e inicializamos seus elementos com os valores de 1 a 5. Em seguida percorremos todo o array novamente para obter a soma dos valores dos elementos. É possível também declarar e já inicializar um array. Veja: procedure TForm1.Button1Click(Sender: TObject); const valores: array[1..5] of Integer = (3, 2, 6, 12, 9); var i, soma: Integer; begin // vamos percorrer o array novamente e obter a soma dos // valores de seus elementos soma := 0; for i := 1 to 5 do begin soma := soma + valores[i]; end; // vamos exibir o resultado ShowMessage('A soma dos valores é: ' + IntToStr(soma)); end; Note que aqui eu declarei o array como uma constante. Isso aconteceu porque o Delphi não permite que inicializemos variáveis locais ([DCC Error] Unit1.pas(32): E2195 Cannot initialize local variables). Caso você realmente precise do array como variável e não constante, e deseje inicializá-lo juntamente com a declaração, mova-o para a seção interface do formulário ou classe. Para finalizar, veja que é possível criar arrays de todos os tipos em Delphi. Veja no trecho de código abaixo como usamos um array de Char para guardar uma palavra e exibí-la normal e depois invertida: procedure TForm1.Button1Click(Sender: TObject); const letras: array[1..5] of Char = ('O', 's', 'm', 'a', 'r'); var i: Integer; resultado: String; begin resultado := ''; // vamos exibir a palavra na forma normal for i := 1 to 5 do resultado := resultado + letras[i]; // exibe o resultado ShowMessage(resultado); // vamos exibir a palavra invertida resultado := ''; for i := 5 downto 1 do resultado := resultado + letras[i]; // exibe o resultado ShowMessage(resultado); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de C++ - Calculando e exibindo os números primos entre 2 e 100Quantidade de visualizações: 10158 vezes |
Exercícios Resolvidos de C++ - Calculando e exibindo os números primos entre 2 e 100 Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo. Escreva um programa C++ que usa um laço for, while ou do...while para calcular e exibir os números primos entre 2 (incluindo) e 100 (incluindo). A saída do programa deverá ser parecida com: Numeros primos entre 2 e 100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Veja a resolução comentada deste exercício: #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // limite dos números primos (incluindo) int limite = 100; // Lembre-se! O número 1 não é primo cout << "Numeros primos entre 2 e " << limite << endl; // laço que percorre os valores de 2 até o limite desejado for(int i = 2; i <= limite; i++){ bool primo = true; // se o valor de i for 7, a variável j do laço contará // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o // módulo de 7 por qualquer um dos valores neste intervalo // for igual a 0, então o número não é primo for(int j = 2; j <= (i / 2); j++){ if(i % j == 0){ primo = false; // não é primo break; } } if(primo){ cout << i << " "; } } cout << "\n\n"; system("PAUSE"); return EXIT_SUCCESS; } |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se o primeiro caractere de cada palavra em uma string Python é o único em letra maiúscula usando a função istitle()Quantidade de visualizações: 8835 vezes |
Nesta dica mostrarei como podemos usar a função istitle() da linguagem Python para verificar se o primeiro caractere de cada palavra em uma frase ou texto é o único caractere em letra maiúscula. Se o teste for verdadeiro o retorno é true, caso contrário o retorno é false. Veja o exemplo completo: def main(): frase = "Gosto De Programar Em Python" if frase.istitle(): print("O primeiro caractere de cada palavra é maiusculo") else: print("O teste não resultou verdadeiro") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O primeiro caractere de cada palavra é maiusculo. |
C# ::: Windows Forms ::: DataGridView |
Como ocultar ou exibir uma determinada linha do DataGridView do C# Windows FormsQuantidade de visualizações: 13256 vezes |
Em algumas situações precisamos ocultar ou exibir determinadas linhas do DataGridView. Isso pode ser feito definindo-se os valores true ou false para a propriedade Visible da classe DataGridViewRow. Veja um trecho de código no qual ocultamos a primeira linha do DataGridView:private void button3_Click(object sender, EventArgs e){ // vamos ocultar a primeira linha dataGridView1.Rows[0].Visible = false; } Veja que aqui nós acessamos a coleção DataGridViewRowCollection e usamos um índice para retornar o DataGridViewRow desejado. Em seguida definimos o valor false para sua propriedade Visible. |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como obter apenas os elementos duplicados em um vetor usando as funções array_unique() e array_diff_assoc() do PHPQuantidade de visualizações: 15284 vezes |
Em algumas situações precisamos obter apenas os elementos que se repetem em um vetor (array). Isso pode ser feito combinando-se as funções array_unique() e array_diff_assoc(). Veja:<? // vamos declarar e inicializar um array de inteiros $valores = array(9, 2, 6, 11, 6, 9, 3, 6); // vamos listar os valores dos elementos no array echo "Elementos no array:<br>"; for($i = 0; $i < count($valores); $i++){ echo $valores[$i] . " - "; } // vamos exibir apenas os valores duplicados // Aviso: não use o laço for para percorrer o array // resultante. Em vez disso use foreach $valores = array_unique(array_diff_assoc( $valores, array_unique($valores))); echo "<br><br>Elementos repetidos:<br>"; foreach($valores as $valor){ echo $valor . " - "; } ?> A execução deste código produz o seguinte resultado: Elementos no array: 9 - 2 - 6 - 11 - 6 - 9 - 3 - 6 - Elementos repetidos: 6 - 9 - |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
PHP para iniciantes - Como substituir substrings considerando maiúsculas e minúsculas usando a função str_replace() do PHPQuantidade de visualizações: 121 vezes |
A função str_replace() da linguagem PHP é muito útil quando precisamos efetuar substituições de substrings em uma string, ou seja, precisamos substituir partes de uma palavra, frase ou texto. No entanto, temos que ficar atentos ao fato de que esta função diferencia letras maiúsculas de minúsculas. Veja o código completo para o exemplo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $frase = "Jsp? Gosto de programar em JSP"; echo "Original: " . $frase; $frase = str_replace("JSP", "PHP", $frase); echo "<br>Depois da substituição: " . $frase; ?> </body> </html> Ao executar este código PHP nós teremos o seguinte resultado: Original: Jsp? Gosto de programar em JSP Depois da substituição: Jsp? Gosto de programar em PHP |
Nossas 20 dicas & truques de programação mais populares |
Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi JavaScript - JavaScript Avançado - Como remover todas as ocorrências de uma substring em uma string usando uma função recursiva Java - Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivo |
Você também poderá gostar das dicas e truques de programação abaixo |
Delphi - Como obter a quantidade de caracteres em uma palavra ou texto usando a função Length() do Delphi JavaScript - Como testar se ao menos um elemento de um array satisfaz uma condição em JavaScript usando a função some() wxWidgets - Como baixar, compilar a biblioteca e criar um projeto C++ wxWidgets usando o Visual Studio 2017 |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |