Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Delphi ::: Data Controls (Controles de Dados) ::: TDBGrid

Como definir ou retornar a cor de fundo de uma determinada coluna do TDBGrid do Delphi

Quantidade de visualizações: 8890 vezes
Em algumas situações gostaríamos de definir a cor de fundo de uma determinada coluna do DBGrid. Isso pode ser feito por meio da propriedade Color da classe TColumn.

Em tempo de design a cor de fundo de um coluna pode ser definida clicando-se com o botão direito do DBGrid e escolhendo a opção Columns Editor. Em seguida clique na coluna desejada e ajuste sua propriedade Color no Object Inspector.

Em tempo de execução podemos definir a cor de fundo para uma coluna usando o seguinte trecho de código:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos definir a cor de fundo para a primeira coluna
......


Veja que eu defini a cor de fundo como sendo uma das constantes definidas na unit Graphics. Lembre-se de que também podemos fornecer um valor RGB.

Veja agora um trecho de código que mostra como obter a cor de fundo da coluna:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos obter a cor de fundo da primeira coluna
......


Ao executarmos este código temos uma mensagem parecida com:

"A cor de fundo da coluna é: clSilver".

Esta dica foi escrita e testada no Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

R ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Quais são as palavras reservadas da linguagem R

Quantidade de visualizações: 1201 vezes
As palavras reservadas, ou palavras-chaves, de uma linguagem de programação são um conjunto de palavras e símbolos que possuem significado especial dentro da linguagem, em seu interpretador ou compilador. Estas palavras não podem ser usadas como identificadores de funções, nomes de variáveis, constantes, nomes de classes, etc.

A linguagem R, no momento que escrevo este texto, possui as seguintes palavras reservadas:

if              else         repeat
while           function     for
in              next         break
TRUE            FALSE        NULL
Inf             NaN          NA
NA_integer_     NA_real_     NA_complex_
NA_character_   ?


A qualquer momento nós podemos listas estas palavras reservadas, seja na janela de comandos ou em um script do R. Basta disparmos os comandos abaixo:

> ?reserved [ENTER]
> help(reserved) [ENTER]
......


Entre essas palavras reservadas, if, else, repeat, while, function, for, in, next e break são usadas para os testes condicionais, laços e funções definidas pelo usuário. São estas palavras que formam a estrutura básica da linguagem R.

As palavras TRUE e FALSE são as constantes lógicas em R.

NULL representa a ausência de um valor, ou um valor indefinido (ainda não houve atribuição).

A palavra reservada Inf significa "Infinity". Por exemplo, quando 1 é dividido por 0, enquanto NaN quer dizer "Not a Number" (não é um número). Um exemplo disso é quando dividimos 0 por 0.

NA significa "Not Available" e é usada para representar valores não informados.

A linguagem R é sensível a maiúsculas e minúsculas. Isso quer dizer que TRUE e True não são a mesma coisa. Enquanto TRUE é uma palavra reservada representando uma constante lógica, True pode ser usada como um nome de variável.


C ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Como usar ponteiros void na linguagem C - Curso de Linguagem C para iniciantes

Quantidade de visualizações: 16250 vezes
Em dicas desta seção você aprendeu que é possível criar ponteiros para os mais diferentes tipos. Veja:

int *ponteiro_int;
float *ponteiro_float;
......


Existe, porém, um tipo de ponteiro que pode ser usado com todos os tipos de dados existentes ou ainda a serem criados. Este tipo é conhecido como void, ou seja, um ponteiro genérico e pode ser declarado da seguinte forma:

void *ponteiro; // ponteiro genérico
......


Veja um trecho de código no qual usamos um ponteiro genéríco para apontar para variáveis de diferentes tipos:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int valor = 20;
  float valor2 = 5.23;

  void *ponteiro; // ponteiro genérico

  ponteiro = &valor; // aponta para um inteiro
......


Uma observação importante é a necessidade de uma conversão explícita (cast) no momento de desreferenciar um ponteiro genéríco. Neste caso ele precisa ser convertido para o tipo de ponteiro sendo usado no momento. Veja:

printf("%d\n", *(int *)ponteiro);
......


A parte (int *)ponteiro converte o ponteiro genérico em um ponteiro do tipo int e o símbolo * externo é usado para desreferenciar. Se essa conversão não for feita teremos um aviso e erro na maioria dos compiladores. Veja:

printf("%d\n", *ponteiro);

[Warning] dereferencing 'void *' pointer
......


Embora essa conversão seja necessária quando estamos desreferenciando um ponteiro genérico, podemos abrir mão dela na atribuição de um ponteiro genérico a um ponteiro de um tipo específico:

ponteiro = &valor; // aponta para um inteiro
int *ponteiro_int = ponteiro;
......


Para finalizar, saiba que as funções malloc() e calloc() retornam ponteiros void, ou seja, ponteiros genéricos que podem ser atribuídos a ponteiros de qualquer tipos. Neste caso, o ponteiro retornado por estas funções aponta para a primeira posição do bloco de memória requisitada.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritmética

Quantidade de visualizações: 1307 vezes
Exercício Resolvido de Java - Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritmética

Pergunta/Tarefa:

Verifique se as componentes de um vetor de 10 componentes inteiros lidos pelo teclado formam uma progressão aritmética, informando se sim ou se não. Caso forme, imprima o termo inicial e a razão.

Resposta/Solução:

Para a entrada do usuário, nós vamos usar um objeto da classe Scanner. Veja a resolução comentada:

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    // vamos usar a classe Scanner para leitura
    Scanner entrada = new Scanner(System.in);

    // declara e constrói um vetor de 10 inteiros
    int valores[] = new int[10];
    
    // vamos ler os valores dos elementos do vetor
    for(int i = 0; i < valores.length; i++){
      System.out.print("Informe o valor: ");
      valores[i] = Integer.parseInt(entrada.nextLine());
    }
    
    // já temos o vetor. Agora vamos verificar se temos
    // uma progressão geométrica
    boolean progressao = true;
    // vamos obter a razão
......


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

Informe o valor: 1
Informe o valor: 2
Informe o valor: 4
Informe o valor: 8
Informe o valor: 16
Informe o valor: 32
Informe o valor: 64
Informe o valor: 128
Informe o valor: 256
Informe o valor: 512
Formam uma progressão geométrica.
A razão é: 2
O primeiro termo é: 1


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

Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python

Quantidade de visualizações: 721 vezes
Quando estamos trabalhando com computação gráfica, geometria e trigonometria ou desenvolvimento de jogos em Python, é comum precisarmos verificar se um determinado ponto (uma coordenada x, y) está contido dentro de um círculo.

Para melhor entendimento, veja a imagem a seguir:



Veja que temos um círculo com raio igual a 115 e com centro nas coordenadas (x = 205; y = 166). Temos também dois pontos. O ponto vermelho está nas coordenadas (x = 140; y = 90) e o ponto azul está nas coordenadas (x = 330; y = 500.

Como podemos ver na imagem, o ponto vermelho está dentro do círculo, enquanto o ponto azul está fora. E nosso intenção nesta dica é escrever o código Python que permite fazer essa verificação. Tenha em mente que está técnica é muito útil para o teste de colisões no desenvolvimento de games.

Veja o código completo para o exemplo:

# vamos importar o módulo Math
import math

# vamos declarar a classe Circulo
class Circulo:
  # construtor da classe
  def __init__(self, xc, yc, raio):
    self.xc = xc
    self.yc = yc
    self.raio = raio
  
# agora vamos declarar a classe Ponto
class Ponto:
  def __init__(self, x, y):
    self.x = x # coordenada x
    self.y = y # coordenada y	

# método principal
def main():
  # vamos criar um objeto Circulo
......


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

O ponto está dentro do círculo.

Experimente com círculos de raios e coordenadas centrais diferentes e também com pontos em várias coordenadas e veja como os resultados são interessantes.


Dart ::: Dicas de Estudo e Anotações ::: Estruturas de Controle

Como usar o laço while da linguagem Dart

Quantidade de visualizações: 2160 vezes
O laço while (enquanto), ou loop while, é usado quando queremos repetir uma ou mais instruções ENQUANTO uma condição estiver sendo satisfeita. A condição para a execução desse laço é o retorno de uma condição true ou false.

Veja um exemplo no qual usamos o laço while para contar de 0 até 10:

void main() {
  int cont = 1;

  while (cont < 10) {
......


Este código, quando executado, gera o seguinte resultado:

1
2
3
4
5
6
7
8
9

É importante observar que um laço while pode nunca ser executado. Para isso basta que o teste condicional na entrada do laço retorne um resultado falso.

Veja agora como usar um laço while para encontrar os 10 primeiros múltiplos de 5 e 7:

void main() {
  int cont = 0;
  int numero = 1;

  // queremos encontrar 10 múltiplos de 5 e 7
  while (cont < 10) {
    if ((numero % 5 == 0) && (numero % 7 == 0)) {
......


Quando executamos este código nós obtemos o seguinte resultado:

35
70
105
140
175
210
245
280
315
350


Veja mais Dicas e truques de Dart

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á 18 usuários muito felizes estudando em nosso site.