C# ::: Windows Forms ::: Formulários e Janelas |
Como abrir outros formulários de sua aplicação C# Windows Forms a partir do formulário principalQuantidade de visualizações: 32992 vezes |
Esta é, sem dúvida, uma das perguntas mais frequentes de meus visitantes. Sendo assim, vou detalhar passo-a-passo como você poderá abrir outros formulários a partir do formulário principal da aplicação. Assumindo que você já tenha criado o formulário principal, siga estes passos para criar um novo formulário (Visual C# 2005 ou 2008): a) Vá no menu Project -> Add Windows Form. O novo Form já aparecerá selecionado. Dê um nome a ele, por exemplo, "NovoForm.cs" e clique o botão Add; b) Coloque os controles que desejar no novo formulário e salve tudo; c) Volte no formulário principal e adicione o código abaixo no evento Click de um botão: private void button1_Click(object sender, EventArgs e){ // vamos criar o novo formulário e exibí-lo NovoForm nf = new NovoForm(); nf.Show(); } Execute e veja o resultado. Note, contudo, que se clicarmos no formulário principal com o segundo formulário ainda aberto, veremos que o primeiro sobrepõe o segundo. Isso acontece porque abrimos o novo formulário como não modal. Em algumas aplicações este pode não ser o comportamento esperado. Continue seguindo minhas dicas para aprender a diferença entre formulários modais e não modais em Windows Forms e C#. |
Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em Python dados dois pontos pertencentes à retaQuantidade de visualizações: 3279 vezes |
Nesta dica de Python veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: ![]() Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código Python completo para esta tarefa: # método principal def main(): # vamos ler as coordenadas do primeiro ponto x1 = float(input("Coordenada x do primeiro ponto: ")) y1 = float(input("Coordenada y do primeiro ponto: ")) # vamos ler as coordenadas do segundo ponto x2 = float(input("Coordenada x do segundo ponto: ")) y2 = float(input("Coordenada y do segundo ponto: ")) sinal = "+" # vamos calcular o coeficiente angular da reta m = (y2 - y1) / (x2 - x1) # vamos calcular o coeficiente linear n = y1 - (m * x1) # coeficiente linear menor que zero? O sinal será negativo if (n < 0): sinal = "-" n = n * -1 # mostra a equação reduzida da reta print("Equação reduzida: y = %.2fx %s %.2f" % (m, sinal, n)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Java - Um programa que lê duas notas, calcula a média aritmética e exibe uma mensagem de reprovado, exame ou aprovadoQuantidade de visualizações: 4661 vezes |
Pergunta/Tarefa: Escreva um programa Java que leia duas notas (como double), calcule e mostre a média aritmética e uma mensagem de acordo com as seguintes regras: 1) Se a média for inferior a 4,0 escreva "Reprovado"; 2) Se a média for igual ou superior a 4,0 e inferior a 7,0 escreva "Exame"; 3) Se a média for igual ou superior a 7,0 escreva "Aprovado". Sua saída deverá ser parecida com: Informe a primeira nota: 8 Informe a segunda nota: 7.4 A média obtida foi: 7.7 Aprovado Veja a resolução comentada deste exercício usando Java console: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar as duas notas do aluno double n1, n2, media; System.out.print("Informe a primeira nota: "); n1 = Double.parseDouble(entrada.nextLine()); System.out.print("Informe a segunda nota: "); n2 = Double.parseDouble(entrada.nextLine()); // vamos calcular a média aritmética media = (n1 + n2) / 2; System.out.println("A média obtida foi: " + media); // vamos verificar se o aluno foi reprovado, está de exame ou aprovado if(media < 4.0){ // reprovado System.out.println("Reprovado"); } else if((media >= 4.0) && (media < 7.0)){ // exame System.out.println("Exame"); } else{ System.out.println("Aprovado"); } System.out.println("\n"); } } |
PHP ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern |
Como usar o padrão de projeto Singleton em suas aplicações PHPQuantidade de visualizações: 9039 vezes |
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementados extensivamente nas linguagens Java e C#. Como o PHP, a partir de sua versão 5, suporta praticamente todos os recursos da programação orientada a objetos, este padrão pode ser implementado também nesta linguagem sem muitas dificuldades. Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação. Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente. Vamos ver um exemplo deste padrão em PHP. Observe o código a seguir: <? // Uma classe Singleton responsável por gravar // logs no sistema class Logger{ // variável estática e privada que guarda a instância // atual da classe private static $instancia = NULL; // Método estático que retorna uma instância já existente, ou // cria uma nova instância public static function getInstance(){ if(self::$instancia == NULL){ self::$instancia = new Logger(); } return self::$instancia; } // Construtor privado para evitar que instâncias sejam // criadas usando new private function __construct(){ // não precisamos fazer nada aqui } // Método clone() também privado para evitar a criação // de clones desta classe private function __clone(){ // não precisamos fazer nada aqui } public function registrarLog($dados){ echo "Vou registrar o log: " . $dados; } } // vamos registrar um novo log usando a classe Singleton Logger::getInstance()->registrarLog("Novo usuário cadastrado."); ?> Ao executar este código teremos o seguinte resultado: Vou registrar o log: Novo usuário cadastrado. |
C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
C# para iniciantes - Como criar e inicializar um vetor (array) de strings em C#Quantidade de visualizações: 33927 vezes |
Neste dica mostrarei como declarar e inicializar um array (um vetor) de strings na linguagem C#. Veja que se trata de um vetor de nomes de cidades. Depois de inicializar o array com quatro nomes de cidades nós usamos o índice 3 para exibir o nome da quarta cidade. Veja o código completo para o exemplo: using System; namespace Estudos{ class Program{ static void Main(string[] args) { // cria e inicializa um array de strings string[] cidades = {"Goiânia", "São Paulo", "Rio de Janeiro", "Curitiba"}; // exibe o valor do quarto elemento Console.WriteLine("A cidade escolhida foi: {0}", cidades[3]); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código nós teremos o seguinte resultado: A cidade escolhida foi: Curitiba |
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: 545 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(); } } |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string em Ruby usando a função scan()Quantidade de visualizações: 8417 vezes |
Podemos obter a quantidade de vezes em que uma substring aparece em uma string Ruby usando o método scan() da classe String. Este método nos permite executar um bloco de código a cada vez que a substring fornecida a ele for encontrada. Veja o exemplo:# declara e inicializa uma variável string frase = "Ruby? Gosto muito de Ruby" puts "A frase é: " + frase # vamos obter a quantidade de vezes em que a # substring "Ruby" aparece na frase quant = 0 substring = "Ruby" frase.scan(substring){quant = quant + 1} # exibe o resultado puts "A substring \"Ruby\" aparece " + quant.to_s \ + " vezes" Ao executarmos este código Ruby nós teremos o seguinte resultado: A frase é: Ruby? Gosto muito de Ruby A substring "Ruby" aparece 2 vezes |
Java ::: Classes e Componentes ::: JComboBox |
Como retornar o valor do item selecionado em um JComboBox do Java Swing usando a função getSelectedItem()Quantidade de visualizações: 15656 vezes |
Nesta dica mostrarei como podemos usar o método getSelectedItem() da classe JComboBox do Java Swing para obter e retornar o valor do item selecionado. Note que usei uma conversão forçada (casting) para String antes de exibir o valor do item selecionado. Para finalizar, coloquei uma mensagem JOptionPane.showMessageDialog para exibir o valor do item selecionado no JComboBox. Veja o código completo para o exemplo: package estudos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JComboBox combo; public Estudos() { super("A classe JComboBox"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria os itens da lista String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria o JComboBox combo = new JComboBox(nomes); // 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)(combo.getSelectedItem()); JOptionPane.showMessageDialog(null, "O valor selecionado é: " + valor); } } ); // Adiciona o JComboBox à janela c.add(combo); // 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 este código Java nós teremos uma mensagem JOptionPane.showMessageDialog com o seguinte texto: O valor selecionado é: Osmar |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de C - Como retornar o código ASCII associado a um caractere em C - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 592 vezes |
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em C: #include <stdio.h> #include <stdlib.h> // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema char caractere; int codigo; // vamos pedir para o usuário informar uma letra, símbolo ou pontuação printf("Informe um caractere: "); // vamos ler o caractere informado scanf("%c", &caractere); // agora vamos obter o código ASCII correspondente codigo = (int)caractere; // e mostramos o resultado printf("Você informou o caractere: %c", caractere); printf("\nO código ASCII correspondente é: %d", codigo); printf("\n\n"); system("PAUSE"); return 0; } O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
C# ::: Windows Forms ::: ListBox |
Como excluir todos os itens de uma ListBox do C# Windows Forms usando a função Clear()Quantidade de visualizações: 548 vezes |
Em algumas situações nós precisamos limpar uma ListBox do C# Windows Forms, ou seja, excluir todos os seus itens de uma só vez em tempo de execução, enquanto o programa estiver rodando. Esta tarefa pode ser realizada por meio de uma chamada ao método Clear() do objeto ObjectCollection da ListBox. Veja um trecho de código no qual clicamos em um botão e removemos todos os itens da ListBox: private void button2_Click(object sender, EventArgs e) { // remove todos os itens da ListBox listBox1.Items.Clear(); } |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como testar se uma string termina com uma determinada substring em JavaScript usando a função endsWith() C++ Builder - Como obter a quantidade de caracteres em um TEdit usando a função GetTextLen() do C++ Builder JavaScript - Como arredondar um valor numérico de ponto-flutuante para cima usando a função ceil() do objeto Math do JavaScript |
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 |