![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
C# ::: Dicas & Truques ::: Gráficos |
Como desenhar linhas em C# usando o método DrawLine() da classe Graphics - Computação Gráfica usando C#Quantidade de visualizações: 13382 vezes |
Uma das tarefas mais simples que realizamos quando estamos desenhando em C# é o desenho de linhas. Para isso usamos o método DrawLine() da classe Graphics. Este método recebe um objeto da classe Pen (representando a cor e espessura da caneta de desenho) e as coordenadas iniciais e finais da linha a ser desenhada. Veja um trecho de código no qual desenhamos uma linha na cor vermelha e com a espessura de dois pixels: private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos desenhar uma linha na cor vermelha e com espessura // de dois pixels g.DrawLine(new Pen(Color.Red, 2), new Point(100, 150), new Point(400, 450)); // vamos liberar o objeto Graphics g.Dispose(); } Execute este código e verá uma linha vermelha na vertical ser desenhada quando você clicar no botão. Aqui nós usamos dois objetos da classe Point. Um para as coordenadas iniciais (x = 100; y = 150) e outro para as coordenadas finais (x = 400; y = 450). É possível fornecer os valores das coordenadas diretamente. Veja: g.DrawLine(new Pen(Color.Red, 2), 100, 150, 400, 450); É possível também desenhar múltiplas linhas de uma só vez. Para isso podemos usar o método DrawLines(). Este método recebe um objeto da classe Pen e um array de objetos da classe Point representando as diversas coordenadas. Desta forma, todas as linhas serão conectadas. Veja um exemplo: private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos criar várias coordenadas x e y Point[] coordenadas = {new Point(15, 20), new Point(15, 300), new Point(400, 300), new Point(400, 20), new Point(15, 20)}; // vamos desenhar todas as linhas conectadas usando a cor azul e a // espessura de um pixel g.DrawLines(new Pen(Color.Blue, 1), coordenadas); // vamos liberar o objeto Graphics g.Dispose(); } Execute este código e clique no botão. Você verá um retângulo azul e com a espessura de 1 pixel ser desenhado no formulário. |
C# ::: Dicas & Truques ::: Data e Hora |
Como construir uma data e hora em C# usando o objeto DateTime e fornecendo o dia, mês, ano, horas, minutos e segundos da data e hora desejadasQuantidade de visualizações: 12554 vezes |
Esta dica mostra como construir uma data e hora em C# usando o seguinte construtor da estrutura DateTime:DateTime(Int32, Int32, Int32, Int32, Int32, Int32) Este construtor pede seis valores inteiros representando o ano, mês, dia, horas, minutos e segundos da data e hora que queremos construir e retorna um objeto DateTime representando a data e hora recém-construidas (note que a hora deve ser informada no formato 0-23). Veja um exemplo: static void Main(string[] args){ // cria um objeto DateTime para a data 10/04/2008 // e hora 18:32:10 DateTime data = new DateTime(2008, 4, 10, 18, 32, 10); // exibe o resultado System.Console.WriteLine(data.ToString( "dd/MM/yyyy - HH:mm:ss")); // pausa o programa Console.ReadKey(); } Tome cuidade. Este método pode lançar exceções dos tipos ArgumentOutOfRangeException e ArgumentException se os valores fornecidos estiverem fora das faixas permitidas. |
Java ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução switch do JavaQuantidade de visualizações: 64869 vezes |
Quando precisamos escolher entre múltiplos caminhos alternativos e esta escolha pode ser baseada em um valor inteiro, a instrução switch é uma boa opção. Veja seu uso:public class Estudos{ public static void main(String[] args){ int valor = 4; switch(valor){ case 1: System.out.println("Valor é 1"); break; case 2: System.out.println("Valor é 2"); break; case 3: System.out.println("Valor é 3"); break; default: System.out.println("Valor diferente de 1, 2 e 3"); break; } } } A variável fornecida à instrução switch deve ser do tipo byte, short, char, ou int. Ela não pode ser long, float, double, boolean ou referência a objetos. Veja o que acontece quando tentamos usar uma variável do tipo long: Estudos.java:5: possible loss of precision found : long required: int switch(valor){ ^ 1 error |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como trabalhar com strings em Delphi - Como usar strings na linguagem DelphiQuantidade de visualizações: 28313 vezes |
Strings estão presentes em praticamente todos os programas que desenvolvemos, não importa a linguagem de programação usada. Sempre que queremos trabalhar com nomes de pessoas, nomes de cidades, palavras, frases e textos, as strings estão lá para nos auxiliar. Assim, para as linguagens de programação, as strings são apenas matrizes de caracteres (letras ou símbolos). Em Delphi podemos declarar e inicializar strings da seguinte forma: procedure TForm1.Button1Click(Sender: TObject); var nome: string; // declara uma variável do tipo string begin nome := 'Osmar J. Silva'; // inicializa a variável ShowMessage(nome); // exibe o conteúdo da string end; Quando declaramos uma string em Delphi usando a palavra-chave string, o compilador automaticamente assume o tipo UnicodeString, com uma capacidade de 2^30 caracteres (mais ou menos 1.073.741.824 caracteres) com uma capacidade variando de 4 bytes até 2GB. Além do tipo string, o Delphi suporta outros tipos que possibilitam também o trabalho com strings e caracteres. Entre eles podemos citar ShortString, AnsiString, WideString entre outros. Quando puder dê mais uma revisada nas minha dicas sobre strings e caracteres para aprender mais. É possível também usar o tipo string para criar strings com tamanhos pré-definidos. Veja: var nome: string[5]; // declara uma variável do tipo string // que guardará apenas 5 caracteres Aqui temos uma string que não suportará mais que cinco caracteres. Importante notar que, internamente, teremos agora uma string do tipo ShortString e não mais UnicodeString como anteriormente. Se tentarmos atribuir mais que cinco caracteres nesta variável, o restante será truncado: nome := 'Osmar J. Silva'; // inicializa a variável ShowMessage(nome); // mostrará apenas "Osmar" Para finalizar, veja como podemos solicitar ao usuário que informe seu nome e exibí-lo usando a função ShowMessage(): procedure TForm1.Button1Click(Sender: TObject); var nome: string; // declara uma variável do tipo string begin // vamos solicitar ao usuário que informe seu nome nome := Dialogs.InputBox('Nome', 'Informe seu nome:', ''); ShowMessage('Seu nome é: ' + nome); // mostrará apenas "Osmar" end; Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercícios Resolvidos de Java - Métodos - Um método estático que recebe um vetor de inteiros e o exibeQuantidade de visualizações: 2554 vezes |
Exercício Resolvido de Java - Métodos - Um método estático que recebe um vetor de inteiros e o exibe Pergunta/Tarefa: Escreva um método Java que recebe um vetor de inteiros e o exibe. Este método deverá ter a seguinte assinatura: public static void exibirVetor(int[] vetor){ // sua implementação aqui } Sua saída deverá ser parecida com: ![]() Resposta/Solução: 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 declarar e construir um vetor de 5 inteiros int valores[] = new int[5]; // agora vamos pedir que o usuário informe os valores for(int i = 0; i < valores.length; i++){ System.out.print("Informe o valor para o " + (i + 1) + " elemento: "); valores[i] = Integer.parseInt(entrada.nextLine()); } // e agora vamos passar o vetor para o método exibirVetor() System.out.println("\nOs elementos do vetor são:\n"); exibirVetor(valores); System.out.println("\n"); } // um método estático que recebe um vetor de inteiros e o exibe public static void exibirVetor(int[] vetor){ // vamos percorrer os elementos do vetor e exibir cada um for(int i = 0; i < vetor.length; i++){ System.out.print(vetor[i] + " "); } } } |
Portugol ::: Dicas & Truques ::: Laços de Repetição |
Como somar os dígitos de um número em Portugol usando o laço ENQUANTO - Solução para número inteiro de qualquer tamanhoQuantidade de visualizações: 487 vezes |
Em algumas situações nós precisamos obter e retornar a soma dos dígitos de um número inteiro positivo. Em nosso site você encontra alguns exemplos de como isso pode ser feito. No entanto, ao contrário das outras dicas, aqui eu mostro como somar os dígitos de um número informado pelo usuário sem fixar o seu tamanho, ou seja, não há limites para a quantidade de dígitos. Veja o código Portugol completo para o exemplo: // Como somar os dígitos de um número em Portugol programa { funcao inicio() { inteiro numero, soma // inicia a soma como zero soma = 0 // vamos pedir um número inteiro positivo escreva("Informe um número inteiro positivo: ") // lê o número informado leia(numero) // enquanto o número for diferente de 0 enquanto (numero != 0) { // adiciona à soma o resultado da divisão do número por 10 soma = soma + (numero % 10) // agora dividimos os número por 10 (divisão inteira) e continuamos numero = inteiro(numero / 10) } // e mostramos o resultado escreva("A soma dos dígitos é: ", soma) } } Ao executar este código Portugol Web Studio nós teremos o seguinte resultado: Informe um número inteiro positivo: 1273 A soma dos dígitos é: 13 |
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como habilitar ou desabilitar um TEdit do Delphi usando a função EnableWindow() da API do WindowsQuantidade de visualizações: 11797 vezes |
Embora o Delphi já nos forneça as ferramentas necessárias para habilitar ou desabilitar um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função EnableWindow() com os valores true ou false. A função EnableWindow() possui a seguinte assinatura em C/C++: BOOL EnableWindow( HWND hWnd, BOOL bEnable ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal: // Protótipo {$EXTERNALSYM EnableWindow} function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall; // Implementação function EnableWindow; external user32 name 'EnableWindow'; Note que precisamos informar o HWND (parâmetro hWnd) para a caixa de texto e um valor BOOL. Se fornecermos false, a caixa de texto será desabilitada. Veja: procedure TForm1.Button1Click(Sender: TObject); begin // vamos desabilitar o TEdit usando a função EnableWindow() // com o valor false if EnableWindow(Edit1.Handle, False) = True then begin ShowMessage('A caixa de texto foi desabilitada com sucesso.'); end; end; Para habilitar a caixa de texto novamente, só precisamos fornecer o valor true para o parâmetro bEnable: procedure TForm1.Button1Click(Sender: TObject); begin // vamos habilitar o TEdit usando a função EnableWindow() // com o valor true if EnableWindow(Edit1.Handle, True) = True then begin ShowMessage('A caixa de texto foi habilitada com sucesso.'); end; end; É importante observar que o retorno da função EnableWindow será False se tentarmos habilitar uma caixa de texto que já está habilitada ou tentarmos desabilitar uma caixa de texto que já está desabilitada. |
Python ::: Dicas & Truques ::: Strings e Caracteres |
Como concatenar strings em Python usando o operador de adiçãoQuantidade de visualizações: 13377 vezes |
A concatenação de textos, frases ou palavras pode ser feita em Python usando-se o operador de soma (ou adição). Veja um exemplo de como isso pode ser feito:# método principal def main(): frase1 = "Gosto de " frase2 = "Python" frase3 = frase1 + frase2 # mostra o resultado print(frase3) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: c:\estudos_python>python estudos.py Gosto de Python |
Java ::: Fundamentos da Linguagem ::: Modificadores |
Regras importantes sobre o uso de modificadores na linguagem JavaQuantidade de visualizações: 7648 vezes |
1) Uma declaração de método ou variável pode conter somente um destes modificadores de acesso: public, protected ou private. Na ausência de um destes, o acesso será de pacote. 2) Classes não podem ser declaradas abstract e final simultâneamente. 3) Métodos abstratos não podem ser declarados private, static, final, native, strictfp ou synchronized. 4) Métodos não podem ser declarados native e strictfp ao mesmo tempo. 5) Métodos abstract e native não possuem corpo. Ex: abstract void inserir(); native void obterDados(); 6) Uma classe que contenha métodos abstratos deve ser declarada como abstrata. 7) Membros final não podem ser volatile. |
Java ::: Java Swing - Componentes Visuais ::: JList |
Como retornar os valores selecionados em uma JList de seleção múltipla do Java Swing usando o método getSelectedValues()Quantidade de visualizações: 9678 vezes |
Nesta dica mostrarei como podemos usar o método getSelectedValues() da classe JList do Java Swing para obter e retornar um vetor (array) contendo os valores selecionados em uma lista de múltipla seleção, ou seja, uma JList que permite a seleção de mais de um elemento por vez. O método getSelectedValues() retorna um vetor de Object. Note também o uso da constante ListSelectionModel.MULTIPLE_INTERVAL_SELECTION fornecida para o método setSelectionMode() para definir a forma de seleção da JList. Veja o código Java Swing completo para o exemplo: package estudos; 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 múltipla para a lista lista.setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); // Um botão que permite obter os valores selecionados JButton btn = new JButton("Obter valores selecionados"); btn.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ Object[] valores = lista.getSelectedValues(); String res = "Valores selecionados:\n"; for(int i = 0; i < valores.length; i++) res += valores[i].toString() + "\n"; JOptionPane.showMessageDialog(null, res); } } ); // 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); } } Mais de um valor pode ser marcado na JList mantendo a tecla Ctrl ou Shift enquanto se clica nos valores desejados. |
Nossas 20 dicas & truques de programação mais populares |
Java - Como converter Metros Quadrados em Quilômetros Quadrados em Java - Java para Física e Engenharia TypeScript - Como calcular o coeficiente angular de uma reta em TypeScript dados dois pontos no plano cartesiano |
Você também poderá gostar das dicas e truques de programação abaixo |
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 |