Delphi ::: VCL - Visual Component Library ::: TListBox |
Como usar um laço for para pesquisar valores nos itens de uma ListBox do DelphiQuantidade de visualizações: 13061 vezes |
Nesta dica mostro como é possível pesquisar valores nos itens de uma ListBox. Note que, se o valor pesquisado for encontrado, nós o selecionamos na lista e informamos seu índice. Se não for encontrado nós ajustamos uma variável Boolean e avisamos do não sucesso da operação. Finalmente note que este código faz diferenciação de letras maiúsculas e minúsculas, ou seja, Osmar será diferente de OSMAR. Veja o código:
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
pesquisa: string;
encontrou: Boolean;
begin
// vamos solicitar o texto a ser pesquisado na ListBox
pesquisa := InputBox('Pesquisar', 'Informe o texto', '');
encontrou := false;
// vamos usar um laço for para percorrer todos os itens
// da ListBox
for i := 0 to ListBox1.Count - 1 do
begin
if ListBox1.Items[i] = pesquisa then
begin
encontrou := true;
// vamos selecionar o item encontrado
ListBox1.ItemIndex := i;
ShowMessage('O texto pesquisado foi encontrado ' +
'no índice ' + IntToStr(ListBox1.ItemIndex));
end;
end;
// não foi encontrado?
if not encontrou then
begin
ShowMessage('O texto pesquisado não foi encontrado.');
end;
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C ::: Dicas & Truques ::: Struct (Estruturas, Registros) |
Linguagem C para iniciantes - Como usar estruturas (struct) em CQuantidade de visualizações: 68861 vezes |
Vetores e matrizes (arrays) são muito importantes quando precisamos agrupar várias variáveis de um mesmo tipo de dados. Porém, há casos em que precisamos agrupar variáveis de diferentes tipos. Para estes casos a linguagem C nos fornece as estruturas (struct). Veja como declará-las:
// uma estrutura Pessoa
struct Pessoa
{
char *nome;
int idade;
};
Veja que esta estrutura possui dois tipos de dados diferentes: um ponteiro para uma cadeia de caracteres e uma variável do tipo int. Para declarar variáveis do tipo Pessoa você tem duas opções. A primeira consiste em declarar as variáveis juntamente com a declaração da estrutura. Veja:
// uma estrutura Pessoa
struct Pessoa
{
char *nome;
int idade;
}pessoa, cliente, chefe;
A outra forma consiste em declarar a variável no local no qual ela será usada. Esta forma é mais prática. Veja um exemplo completo de como isso é feito:
#include <stdio.h>
#include <stdlib.h>
// uma estrutura Pessoa
struct Pessoa
{
char *nome;
int idade;
};
int main(int argc, char *argv[])
{
// declara uma variável do tipo struct
struct Pessoa cliente;
cliente.nome = "Osmar J. Silva";
cliente.idade = 36;
// obtém os dados
printf("O nome do cliente e: %s\n", cliente.nome);
printf("A idade do cliente e: %d\n", cliente.idade);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Pacote java.awt ::: Graphics |
Como desenhar linhas em determinados ângulos usando o método drawLine() da classe Graphics - Computação Gráfica em JavaQuantidade de visualizações: 14087 vezes |
É possível usar o método drawLine() da classe Graphics para desenhar linhas em determinados ângulos. Observe atentamente a assinatura deste método:public abstract void drawLine(int x1, int y1, int x2, int y2) Aqui x1 e x2 representam as coordenadas iniciais da linha e x2 e y2 representam as coordenadas finais. Assim, vamos analisar a fórmula matemática que permite definir o ângulo de desenho. Comece definindo os valores para as coordenadas iniciais x1 e y1, o ângulo desejado e o comprimento da linha: int x1 = 30; int y1 = 50; int ang = 0; int comp = 100; Vamos começar obtendo a coordenada x final, que chamaremos de x2. Já sabemos que o ângulo é 0, então obteremos uma linha horizontal para a direita. Vamos ao cálculo: int x2 = (int)(x1 + Math.cos(ang / 180.0 * Math.PI) * comp); Já sabemos que o valor de x2 é igual a 0 pois (pode testar na barra de endereços de seu browser): javascript:alert(0 / 180.0 * Math.PI) resulta em 0 e: javascript:alert(Math.cos(0)) resulta em 1. Assim: x1 + (1 * 100) = 130. Para que nosso código esteja correto, o valor de y2 deverá ser igual a y1. Vejamos: int y2 = (int)(y1 - Math.sin(ang / 180.0 * Math.PI) * comp); Já sabemos que (ang / 180.0 * Math.PI) resulta em 0 e que o seno de 0 é 0. Assim: y1 - (0 * 100) = 50. Veja o código completo:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Estudos extends JFrame{
JLabel label;
public Estudos() {
super("Desenhando em um JLabel");
Container c = getContentPane();
c.setLayout(new BorderLayout());
// Cria um JLabel
label = new JLabel();
c.add(label, BorderLayout.CENTER);
// Cria um botão
JButton btn = new
JButton("Desenhar uma linha (ângulo)");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
// Desenha uma string no JLabel
int x1 = 30; // coordenada inicial x
int y1 = 50; // coordenada inicial y
int ang = 0; // ângulo
int comp = 100; // comprimento
// coordenada x final
int x2 = (int)(x1 +
Math.cos(ang / 180.0 * Math.PI) * comp);
// coordenada y final
int y2 = (int)(y1 -
Math.sin(ang / 180.0 * Math.PI) * comp);
Graphics graphics = label.getGraphics();
graphics.drawLine(x1, y1, x2, y2);
}
}
);
// Adiciona o botão à janela
c.add(btn, BorderLayout.SOUTH);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Experimente agora fornecer ângulos diferentes, por exemplo, 45 (uma linha diagonal para a direita e para cima), 90 (uma linha vertical para cima), 135 (uma linha diagonal para a esquerda e para cima), 180 (uma linha horizontal para a esquerda), 225 (uma linha diagonal para a esquerda e para baixo), 270 (uma linha vertical para baixo), 315 (uma linha diagonal para a direita e para baixo) e 360 (uma linha horizontal para a direita). Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso. |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de C# - Escreva um programa (algorítmo) C# que usa o laço do...while para ler um número indeterminado de idades. A condição de parada do laço é o valor da idade igual a 0Quantidade de visualizações: 2412 vezes |
|
Pergunta/Tarefa: Escreva um programa (algorítmo) C# que usa o laço do...while para ler um número indeterminado de idades de algumas pessoas. A condição de parada do laço é o valor da idade igual a 0. Calcule a escreva a idade média deste grupo de pessoas. Sua saída deverá ser parecida com: Informe a idade: 19 Informe a idade: 30 Informe a idade: 21 Informe a idade: 45 Informe a idade: 0 A idade média é: 28,75 Veja a resolução comentada deste exercício usando C# console:
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
int idade; // guarda a idade lida de cada indivíduo
double idade_media; // a idade média calculada
int soma = 0; // a soma das idades de cada indivíduo
int contador = 0; // conta as idades lidas
// laço do...while que repetirá até que o valor da idade seja 0
do {
Console.Write("Informe a idade: ");
idade = int.Parse(Console.ReadLine());
// a idade lida é diferente de 0?
if (idade != 0) {
soma = soma + idade; // soma mais esta idade
contador++; // aumenta a quantidade de idades lidas
}
} while (idade != 0);
// calcula a idade média
// note que forcei contador para o tipo double antes da divisão
// isso faz com que o resultado seja do tipo double
idade_media = soma / (contador * 1.0);
// finalmente mostramos o resultado
Console.WriteLine("A idade média é: " + idade_media);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
|
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como transformar um StringBuffer em uma String usando o método toString() da classe StringBuffer |
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 |






