Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: C# ::: Windows Forms ::: ListView

Usando os eventos ItemCheck e ItemChecked da classe ListView para detectar quando um item é marcado ou desmarcado

Quantidade de visualizações: 9371 vezes
A classe ListView permite a exibição de caixas de seleção (check boxes) ao lado de seus itens (exceto quando o modo de visualização está definido como Tile). Desta forma, é interessante sermos capazes de detectar quando a check box de um determinado item é marcada ou desmarcada.

O evento ItemCheck da ListView é disparado quando o estado de um item está em transição entre marcado e desmarcado ou vice-versa. Note que o evento é disparado durante a transição, ou seja, ele não é disparado nem no ínicio nem no fim, mas no meio da operação. Veja:

private void button1_Click(object sender, EventArgs e){
  // vamos definir o modo de exibição da ListView
  listView1.View = View.Details;

  // vamos exibir caixas de seleção ao lado de cada item
  listView1.CheckBoxes = true;

  // vamos adicionar três colunas
  listView1.Columns.Add("Código");  
  listView1.Columns.Add("Nome");
  listView1.Columns.Add("Categoria");

  // vamos adicionar uma linha de dados
  listView1.Items.Add("56"); // primeira coluna
  listView1.Items[0].SubItems.Add("Osmar J. Silva"); // segunda coluna
  listView1.Items[0].SubItems.Add("Cliente"); // terceira coluna

  // vamos adicionar mais uma linha de dados......


Veja que o tratador de evento ItemCheck recebe um objeto da classe ItemCheckEventArgs. Esta classe possui as seguintes propriedades:

CurrentValue - Obtém um dos valores da enumeração CheckState que representa o estado atual do item. Se o item estiver selecionado o valor Checked será retornado. Caso contrário o valor retornado é Unchecked.

Index - Obtém o índice do item que está prestes a ser marcado ou desmarcado.

NewValue - Obtém um dos valores da enumeração CheckState que representa o novo estado do item. Se o item estiver prestes a ser selecionado o valor Checked será retornado. Caso contrário o valor retornado é Unchecked.

O evento ItemChecked, por sua vez, é disparado quando a operação de marcar ou desmarcar um item é finalizada. Veja:

private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e){
  // vamos obter o item que foi marcado ou desmarcado
  ListViewItem item = e.Item;

  // vamos verificar se o item foi marcado ou desmarcado......


Note que o tratador de evento ItemChecked recebe um objeto da classe ItemCheckedEventArgs. E esta classe possui apenas uma propriedade, que é uma referência ao item (ListViewItem) da ListView que está sendo marcado ou desmarcado.

Link para compartilhar na Internet ou com seus amigos:

C ::: C para Engenharia ::: Física - Mecânica

Como calcular a massa de um corpo dada sua energia cinética e sua velocidade usando a linguagem C

Quantidade de visualizações: 2260 vezes
Na Física, a energia cinética em um objeto é a energia que ele possui devido ao seu movimento. Isso é definido como o trabalho necessário para acelerar um corpo de massa em repouso para que este adquira velocidade. Tendo ganho essa energia durante a aceleração, o corpo mantém essa energia cinética a menos que a sua velocidade mude. A mesma quantidade de trabalho é produzida por um corpo desacelerando da sua velocidade atual para um estado de repouso.

Os carros de uma montanha-russa atingem sua energia cinética máxima quando estão no fundo de sua trajetória. Quando eles começam a subir, a energia cinética começa a ser convertida em energia potencial gravitacional, mas, se forem assumidos atritos insignificantes e outros fatores de atraso, a quantidade total de energia no sistema permanece constante.

A fórmula para obtenção da massa de um corpo, quando temos a sua energia cinética e a sua velocidade é:

\[ \text{m} = \frac{\text{2} \cdot E_c}{v^2} \]

Onde:

m ? massa do corpo (em kg).

Ec ? energia cinética (em joule, J).

v ? velocidade do corpo (em m/s).

Vamos ver um exemplo agora? Observe o seguinte enunciado:

1) Uma bola de golfe está viajando a uma velocidade de 50m/s, e possui energia cinética de 75J. Qual é a sua massa?

Note que o exercício nos dá a velocidade já em m/s, evitando a necessidade da conversão de km/h para m/s. Temos também a energia cinética já em sua medida apropriada. Assim, só precisamos jogar na fórmula. Veja o código C completo para este cálculo:

#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
     
int main(int argc, char *argv[]){
  // velocidade (em m/s)
  float velocidade = 50; // em m/s
  // energia cinética
  float energia_cinetica = 75; // em joule
  
  // e então calculamos a massa do corpo
......


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

A massa do corpo é: 0.060000kg (ou 0.060000 x 1000 = 60 gramas).


Java ::: Classes e Componentes ::: JList

Java Swing - Como obter o valor selecionado em um JList usando o método getSelectedValue()

Quantidade de visualizações: 12754 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
......


Ao executar esta aplicação Java Swing nós teremos o seguinte resultado:




Python ::: cmath Python Module (Módulo Python cmath para números complexos) ::: Números Complexos (Complex Numbers)

Como converter um número complexo na forma retangular para a forma polar usando Python

Quantidade de visualizações: 1847 vezes
Quando estamos efetuando cálculos envolvendo números complexos, é comum precisarmos converter da forma retangular para a forma polar, e vice-versa.

Um número complexo na forma retangular apresenta o seguinte formato:

7 + j5


onde 7 é a parte real e 5 é a parte imaginária. Note que usei a notação "j" em vez de "i" para a parte imaginária, uma vez que a notação "j" é a mais comum na engenharia.

O número complexo na forma polar, por sua vez, é composto pelo raio e pela fase (phase), que é o ângulo theta (ângulo da inclinação da hipotenusa em relação ao cateto adjascente).

O raio, representado por r, é o módulo do vetor cujas coordenadas são formadas pela parte real e a parte imaginária do número complexo. A parte real se encontra no eixo das abcissas (x) e a parte imaginária fica no eixo das ordenadas (y).

Veja agora o código Python completo que lê a parte real e a parte imaginária de um número complexo e o exibe na forma polar:

# vamos importar o módulo de matemática de números complexos
import cmath

# método principal
def main():
  # vamos ler a parte real e a parte imaginária do
  # número complexo
  real = float(input("Parte real do número complexo: "))
  imaginaria = float(input("Parte imaginária do número complexo: "))

  # constrói o número complexo
......


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

Parte real do número complexo: 3
Parte imaginária do número complexo: -4
Valor absoluto (raio ou módulo): 5.0
Fase em radianos: -0.9272952180016122
Fase em graus: -53.13010235415598


Python ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em Python dados dois pontos no plano cartesiano

Quantidade de visualizações: 2782 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Python que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

# vamos importar o módulo Math
import math as math

def main():
  # x e y do primeiro ponto
  x1 = float(input("Coordenada x do primeiro ponto: "))
  y1 = float(input("Coordenada y do primeiro ponto: "))

  # x e y do segundo ponto
  x2 = float(input("Coordenada x do segundo ponto: "))
......


Ao executar este código em linguagem Python nós teremos o seguinte resultado:

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.666667

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

# vamos importar o módulo Math
import math as math

def main():
  # x e y do primeiro ponto
  x1 = float(input("Coordenada x do primeiro ponto: "))
  y1 = float(input("Coordenada y do primeiro ponto: "))

  # x e y do segundo ponto
  x2 = float(input("Coordenada x do segundo ponto: "))
  y2 = float(input("Coordenada y do segundo ponto: "))

  # vamos obter o comprimento do cateto oposto
  cateto_oposto = y2 - y1
  # e agora o cateto adjascente
......


Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


PostgreSQL ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados)

Como criar uma tabela no PostgreSQL usando o comando DDL CREATE TABLE

Quantidade de visualizações: 6071 vezes
O comando DDL CREATE TABLE do PostgreSQL é usado quando queremos criar uma nova tabela em uma determinada base de dados (e schema). Em geral criamos novas tabelas usando a ferramenta pgAdmin. No entanto, é importante conhecer e dominar este comando de forma a conseguirmos criar tabelas a partir da janela de Query do pgAdmin, do SQL Shell (psql) ou usando uma linguagem de programação.

O comando DDL CREATE TABLE contém uma série de cláusulas opcionais. Muitas delas são abordadas nas dicas desta seção. Apenas o nome da tabela a ser criada é obrigatório. Veja o comando CREATE TABLE a seguir:

CREATE TABLE produtos();
......


Este comando criará uma tabela vazia e sem nenhum campo no schema public da base de dados na qual estamos conectados no momento. É claro que uma tabela sem nenhum campo não possui nenhuma utilidade (a não ser que decidamos adicionar os campos mais tarde). Sendo assim, veja um comando CREATE TABLE que cria uma tabela chamada usuarios com os campos: id, nome, senha, data_cadastro:

CREATE TABLE usuarios(
  id serial NOT NULL,
  nome varchar(20) NOT NULL,
  senha varchar(20) NOT NULL,
......


Ao dispararmos o comando, o PostgreSQL nos exibirá a seguinte mensagem:

NOTA: CREATE TABLE criará sequência implícita "usuarios_id_seq" para coluna serial "usuarios.id"
NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito "usuarios_pkey" na tabela "usuarios"
Query returned successfully with no result in 121 ms.

Isso é sinal de que a tabela foi criada com sucesso. Para verifirmos e exibirmos os dados da tabela recém-criada, podemos disparar o seguinte comando DML SELECT:

SELECT column_name, data_type, is_nullable, character_maximum_length 
......


Como resultado teremos:

column_name    data_type           is_nullable   character_maximum_length
id             integer             NO     
nome           character varying   NO            20
senha          character varying   NO            20
data_cadastro  date                NO
Note que o campo id da tabela é do tipo auto-incremento de 4 bytes e foi marcado como chave-primária. Os campos nome e senha são varchar de 20 caracteres e o campo data_cadastro é do tipo date.

É importante termos em mente a mensagem de erro que o PostgreSQL exibirá quando tentamos criar uma tabela com um nome de uma já existente na mesma base de dados e schema:

NOTA:  CREATE TABLE criará sequência implícita "usuarios_id_seq1" 
para coluna serial "usuarios.id"
ERRO:  relação "usuarios" já existe

********** Error **********

ERRO: relação "usuarios" já existe
SQL state: 42P07
Para evitar este erro, o PostgreSQL nos fornece a cláusula IF NOT EXISTS. Esta cláusula faz com que o comando CREATE TABLE verifique antes se uma tabela com o mesmo nome já existe. Veja:

CREATE TABLE IF NOT EXISTS usuarios(
  id serial NOT NULL,
  nome varchar(20) NOT NULL,
......


Agora o PostgreSQL trocará a mensagem de erro pela seguinte mensagem de advertência:

NOTA:  relação "usuarios" já existe, ignorando

Query returned successfully with no result in 14 ms.



Veja mais Dicas e truques de PostgreSQL

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 25 usuários muito felizes estudando em nosso site.