C# ::: Dicas & Truques ::: Gráficos |
Como desenhar texto em C# usando o método DrawString() da classe GraphicsQuantidade de visualizações: 8773 vezes |
Em algumas situações precisamos desenhar uma string (texto) no formulário ou algum outro controle. Para isso podemos usar o método DrawString() da classe Graphics. A assinatura mais comumente usada deste método é:Graphics.DrawString(String, Font, Brush, Single, Single) Note que precisamos fornecer a string a ser desenhada, a fonte a ser usada (como um objeto da classe Font), a cor e preenchimento (um objeto de alguma classe que herde de Brush) e as coordenadas x e y. Veja um trecho de código no qual desenhamos a string "Arquivo de Códigos" no formulário: private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos desenhar a string "Arquivo de Códigos" g.DrawString("Arquivo de Códigos", this.Font, new SolidBrush(Color.Red), 40, 60); // vamos liberar o objeto Graphics g.Dispose(); } Aqui a string será desenhada usando a fonte do formulário e na cor vermelha e sólida. Se quiséssemos definir a fonte, o código ficaria algo assim: g.DrawString("Arquivo de Códigos", new Font("Verdana", 30), new SolidBrush(Color.Red), 40, 60); As coordenadas x e y nas quais o desenho ocorrerá podem ser informadas como um objeto da estrutura PointF. Veja: g.DrawString("Arquivo de Códigos", new Font("Verdana", 30), new SolidBrush(Color.Red), new PointF(80f, 120f)); |
Java ::: Dicas & Truques ::: Formatação de datas, strings e números |
Java para iniciantes - Como formatar moeda usando a classe NumberFormat da linguagem JavaQuantidade de visualizações: 19718 vezes |
Este exemplo mostra como formatar moeda usando o método getCurrencyInstance() da classe NumberFormat. Note que, nesse exemplo, nós formatamos um valor double para a moeda brasileira em 2021, a saber, o real. Veja o código completo para a dica: package arquivodecodigos; import java.text.*; public class Estudos{ public static void main(String[] args){ double valor = 1234567.89; System.out.println("Sem formatação: " + valor); NumberFormat nf = NumberFormat.getCurrencyInstance(); String valorFormatado = nf.format(valor); System.out.println("Formatado: " + valorFormatado); } } Ao executar este código Java nós teremos o seguinte resultado: Sem formatação: 1234567.89 Formatado: R$ 1.234.567,89 |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como obter a quantidade de dias para um determinado ano usando a função DaysInAYear() do DelphiQuantidade de visualizações: 11535 vezes |
Quando estamos trabalhando com datas, geralmente precisamos saber a quantidade de dias que um determinado ano possui, ou seja, alguns anos possuem 365 dias, outros possuem 366. A unit DateUtils possui uma função chamada DaysInAYear() que serve para este propósito. Ela aceita um inteiro representando o ano desejado e retorna um inteiro representando a quantidade de dias que tal ano possui. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var ano, dias_ano: Integer; begin ano := 2010; // vamos obter a quantidade de dias para o // ano de 2010 dias_ano := DaysInAYear(ano); // exibe o resultado ShowMessage('O ano informado contém ' + IntToStr(dias_ano) + ' dias'); end; Este trecho de código nos informará que o ano de 2010 possui 365 dias. Note que o argumento para a função DaysInAYear() deve estar entre 1 e 9999 (inclusive). Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como acessar variáveis de instâncias para escrita em Ruby sem a necessidade de métodos mutatórios usando a função attr_accessorQuantidade de visualizações: 7326 vezes |
Por padrão, variáveis de instância em Ruby só podem ser acessadas para escrita usando métodos mutatórios, ou seja, uma variável de instância @nome deve ser modificada usando um método definir_nome. É possível dispensar o uso de métodos mutatórios empregando o método attr_accessor nos nomes das variáveis que poderão ser acessadas e modificadas. Lembre-se que, ao contrário de attr_reader, o método attr_accessor possibilita o acesso à variável de instância tanto para leitura quanto para escrita. Veja um exemplo: # Definição da classe Cliente class Cliente attr_accessor :nome, :idade def initialize(nome, idade) @nome = nome @idade = idade end end # Cria uma instância da classe Cliente e inicializa as # variáveis de instância @nome e @idade cliente = Cliente.new("Osmar J. Silva", 35) # Acessa as variáveis de instância sem a necessidade # de métodos acessórios puts cliente.nome puts cliente.idade # Modifica as variáveis de instância sem a necessidade # de métodos mutatórios cliente.nome = "Carlos da Silva" cliente.idade = 56 # Obtém os resultados puts cliente.nome puts cliente.idade Se tentarmos acessar e modificar as variáveis nome e idade diretamente, sem os métodos mutatórios e a função attr_accessor nós teremos um erro do tipo: Traceback (most recent call last): estudos.arb:15:in `<main>': undefined method `nome' for #<Cliente:0x0000029a7211f080 @nome="Osmar J. Silva", @idade=35> (NoMethodError) |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular o produto escalar entre dois vetores usando Java - Geometria Analítica e Álgebra Linear usando JavaQuantidade de visualizações: 3488 vezes |
O produto escalar (em inglês: dot product) entre dois vetores é um número real que relaciona o comprimento desses dois vetores e o ângulo formado por eles. É importante notar que alguns autores se referem ao produto escalar como produto interno. Obtém-se o produto escalar entre dois vetores, no R2, ou três vetores, no R3, por meio da fórmula a seguir (assumindo dois vetores __$\vec{u} = (a, b)__$ e __$\vec{v} = (c, d)__$ no R2). \[\vec{u} \cdot \vec{v} = a \cdot c + b \cdot d \] Vamos agora a um exemplo prático. Veja a imagem abaixo, na qual temos dois vetores, com suas coordenadas e magnitudes (módulo, comprimento ou norma): ![]() Note que ambos os vetores possuem como origem as coordenadas (0, 0). O primeiro vetor possui as coordenadas finais (4, 10) e magnitude 11, e o segundo vetor possui as coordenadas finais (11, 6) e magnitude 13. Magnitude é o tamanho do vetor, ou seja, seu comprimento, seu módulo ou norma. Veja agora o código Java completo que lê as coordenadas dos dois vetores e calcula e mostra o produto escalar entre eles: package arquivodecodigos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ Scanner entrada = new Scanner(System.in); // x e y do primeiro vetor System.out.print("Coordenada x do primeiro vetor: "); float x1 = Float.parseFloat(entrada.nextLine()); System.out.print("Coordenada y do primeiro vetor: "); float y1 = Float.parseFloat(entrada.nextLine()); // x e y do segundo ponto System.out.print("Coordenada x do segundo vetor: "); float x2 = Float.parseFloat(entrada.nextLine()); System.out.print("Coordenada y do segundo vetor: "); float y2 = Float.parseFloat(entrada.nextLine()); // vamos calcular o produto escalar float pEscalar = (x1 * x2) + (y1 * y2); // mostramos o resultado System.out.println("O produto escalar é: " + pEscalar); } } Ao executar este código Java nós teremos o seguinte resultado: Coordenada x do primeiro vetor: 4 Coordenada y do primeiro vetor: 10 Coordenada x do segundo vetor: 11 Coordenada y do segundo vetor: 6 O produto escalar é: 104.0 |
Java ::: Coleções (Collections) ::: HashSet |
Java Collections - Como usar a classe HashSet em seus programas JavaQuantidade de visualizações: 5256 vezes |
A classe HashSet, no pacote java.util, é uma classe concreta que implementa a interface Set. Na maioria das vezes nós usamos objetos desta classe para armazenar elementos não duplicados (ainda que o elemento null seja permitido). Veja sua posição na hierarquia de classes da plataforma Java:java.lang.Object java.util.AbstractCollection<E> java.util.AbstractSet<E> java.util.HashSet<E> Veja um trecho de código no qual inserimos cinco elementos do tipo String em um HashSet e os listamos em seguida: package estudos; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Estudos{ public static void main(String[] args) { // vamos criar uma instância da classe HashSet Set<String> conjunto = new HashSet<>(); // vamos inserir cinco Strings neste conjunto conjunto.add(null); // o elemento null é permitido conjunto.add("Marcos"); conjunto.add("Osmar"); conjunto.add("Osmar"); // elemento duplicado aqui conjunto.add("Fernanda"); // vamos exibir os elementos Iterator iterator = conjunto.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } } Ao executarmos este código teremos o seguinte resultado: null Fernanda Marcos Abel Osmar |
PHP ::: PHP + MySQL ::: MySQL (mysql) |
Como criar uma tabela MySQL usando o comando CREATE TABLE e as funções mysql_query() e mysqli_query() do PHPQuantidade de visualizações: 22377 vezes |
Nesta dica mostrarei como podemos usar a função mysqli_query() do PHP para disparar uma instrução SQL CREATE TABLE para criar uma nova tabela na base de dados MySQL. Esta dica foi atualizada. Removi a função mysql_query(), já que esta não funciona mais nas versões atuais do PHP. Em seu lugar eu coloquei mysqli_query() e ajustei o código. Note que inclui neste exemplo o código para efetuar a conexão PHP + MySQL usando a função mysqli_connect(). Novamente vale lembrar que removi a função mysql_connect() e deixei apenas a versão mais atual. Se você pretende escrever seu primeiro CRUD PHP + MySQL, este é o exemplo ideal para você começar. Veja o código completo: <?php // vamos efetuar a conexao com o banco $servidor = "localhost"; $usuario = "root"; $senha = "osmar1234"; $base_dados = "estudos"; $conexao = mysqli_connect($servidor, $usuario, $senha, $base_dados); // Comando SQL para criar a tabela $sql = "CREATE TABLE my2_usuarios( id int(11) NOT NULL auto_increment, usuario varchar(50), senha varchar(10), data_cadastro datetime, PRIMARY KEY(id) )"; // Executa o comando SQL $result = mysqli_query($conexao, $sql); // Verifica se o comando foi executado com sucesso if(!$result){ die("Falha ao executar o comando: " . mysqli_error($conexao)); } else{ echo "Comando executado com sucesso."; } // fecha a conexão mysqli_close($conexao); ?> |
C++ ::: Dicas & Truques ::: Recursão (Recursividade) |
Como calcular fatorial em C++ usando recursividadeQuantidade de visualizações: 9740 vezes |
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma: 4 x 3 x 2 x 1 = 24 Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplicação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em C++ que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados. #include <iostream> using namespace std; // função recursiva para calcular o fatorial // de um determinado número int fatorial(int n){ if(n == 0) return 1; else return n * fatorial(n - 1); } int main(int argc, char *argv[]){ // vamos calcular o fatorial de 5 int res = fatorial(5); // exibe o resultado cout << "O fatorial de 5 é: " << res << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de C - Usando um laço for para percorrer os elementos de um vetor e exibir a soma de seus valoresQuantidade de visualizações: 14544 vezes |
Exercícios Resolvidos de C - Usando um laço for para percorrer os elementos de um vetor e exibir a soma de seus valores Pergunta/Tarefa: Considere o seguinte vetor de inteiros: // um vetor de inteiros contendo sete elementos int valores[] = {4, 5, 1, 8, 2, 2, 10}; A soma dos valores do vetor é: 32 Veja abaixo a resolução completa para esta tarefa: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // um vetor de inteiros contendo sete elementos int valores[] = {4, 5, 1, 8, 2, 2, 10}; // o primeiro passo é criar uma variável que vai receber a soma // dos valores dos elementos int soma = 0; int i; // agora vamos usar uma laço for para percorrer todos os elementos // do vetor, obter o valor do elemento atual e adicionar ao valor atual // da variável soma for(i = 0; i < 7; i++){ soma = soma + valores[i]; // poderia também ser escrito assim: // soma += valores[i]; } // vamos exibir a soma dos valores do vetor printf("A soma dos valores do vetor é: %d\n", soma); system("PAUSE"); return 0; } |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de VisuAlg - Um programa que lê três números inteiros e mostra o maiorQuantidade de visualizações: 1376 vezes |
Pergunta/Tarefa: Faça um algoritmo VisuAlg que solicita três números inteiros e mostra o maior deles. Exiba uma mensagem caso os três números não forem diferentes. Sua saída deverá ser parecida com: Informe o primeiro número: 34 Informe o segundo número: 83 Informe o terceiro número: 72 O segundo número é o maior Veja a resolução comentada deste exercício usando VisuAlg: Algoritmo "Um programa que lê três números inteiros e mostra o maior" Var // variáveis usadas na resolução do problema num1, num2, num3: inteiro Inicio // vamos solicitar os três números inteiros escreva("Informe o primeiro número: ") leia(num1) escreva("Informe o segundo número: ") leia(num2) escreva("Informe o terceiro número: ") leia(num3) // o primeiro número é o maior? se (num1 > num2) e (num1 > num3) entao escreva("O primeiro número é o maior") senao // o segundo número é o maior? se (num2 > num1) e (num2 > num3) entao escreva("O segundo número é o maior") senao // o terceiro número é o maior? se (num3 > num1) e (num3 > num2) entao escreva("O terceiro número é o maior") senao // os números não são diferentes escreva("Os três números não são diferentes") fimse fimse fimse Fimalgoritmo |
Nossas 20 dicas & truques de programação mais populares |
Java - Como usar a classe Character da linguagem Java para tratar caracteres individuais em seus programas |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizada |
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 |