PHP ::: Dicas & Truques ::: Gráficos e Cores |
Computação gráfica em PHP - Como obter informações sobre a biblioteca GD instaladaQuantidade de visualizações: 8176 vezes |
Nesta dica vou mostrar como é possível efetuar uma chamada ao método gd_info() da linguagem PHP para verificar quais recursos da biblioteca GD estão habilitados em nossa instalação do PHP. Veja o código abaixo: <?php // vamos efetuar uma chamada à função gd_info() $info = gd_info(); // agora percorremos as entradas foreach($info as $chave => $valor){ if($chave != "GD Version"){ if($valor == true || $valor == false){ if($valor == true){ $valor = "Habilitado"; } elseif($valor == false){ $valor = "Desabilitado"; } } } echo "$chave: $valor<br>"; } ?> Ao executarmos este código nós teremos um resultado parecido com: GD Version: bundled (2.1.0 compatible) FreeType Support: Habilitado FreeType Linkage: Habilitado GIF Read Support: Habilitado GIF Create Support: Habilitado JPEG Support: Habilitado PNG Support: Habilitado WBMP Support: Habilitado XPM Support: Habilitado XBM Support: Habilitado WebP Support: Habilitado BMP Support: Habilitado TGA Read Support: Habilitado JIS-mapped Japanese Font Support: Desabilitado É sempre bom fazer este teste antes de usar as funções gráficas da GD no PHP. |
VBA ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o código ASCII associado a um caractere em VBA usando a função Asc()Quantidade de visualizações: 429 vezes |
Em algumas situações nós precisamos retornar o código ASCII associado a um determinado caractere. Em VBA nós podemos realizar essa tarefa usando a função Asc(), que recebe uma string representando uma letra, dígito ou símbolo e retorna o código numérico correspondente. Veja um trecho de código VBA no qual informamos a letra "A" e obtemos, como retorno, o código ASCII 65: ' Macro VBA Excel usada para converter um caractere ' em seu código ASCII Sub RetornarCodigoASCII() ' Variáveis usadas na resolução do problema Dim letra As String Dim codigo As Integer ' vamos pedir para o usuário informar um caractere letra = InputBox("Informe um caractere: ", "Código ASCII", 0) Debug.Print "Você informou o caractere: " & letra ' agora vamos obter o código ASCII correspondente codigo = Asc(letra) ' e mostramos o resultado Debug.Print "O código ASCII correspondente é: " & codigo End Sub Ao executarmos este código VBA nós teremos o seguinte resultado: O código ASCII correspondente é: 65 |
C# ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em C# - Como criar uma classe C# e usar new para criar novas instâncias da mesmaQuantidade de visualizações: 16194 vezes |
Esta dica mostra a você, rapidamente, como criar uma classe C# e usar a palavra-chave new para instanciar objetos a partir desta classe. Comece analisando o código para a classe Pessoa (Pessoa.cs):public class Pessoa{ public String nome; public int idade; } Salve o código como Pessoa.cs. Esta classe possui apenas duas propriedades: nome e idade. Lembre-se que uma classe é composta de propriedades e métodos (funções). Veja agora como criamos um objeto desta classe e acessamos sua propriedade nome: static void Main(string[] args){ // cria um objeto da classe Pessoa Pessoa p = new Pessoa(); p.nome = "Osmar J. Silva"; Console.WriteLine(p.nome); } Observe o uso da palavra-chave new para reservar memória para o objeto da classe sendo criado na instrução: Pessoa p = new Pessoa(); Observe também o uso do operador "." (ponto). Este operador é usado para acessarmos as propriedades e métodos presentes nos objetos das classes em C#. |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função na linguagem C que verifica se duas strings são iguais ou diferentesQuantidade de visualizações: 9321 vezes |
Esta dica mostra como escrever uma função em C que verifica se duas strings são iguais ou diferentes. O nome da função é str_equal(). Esta função aceita duas strings como argumentos e retorna 1 se estas forem iguais e 0 em caso contrário. Experimente, faça as devidas alterações e adicione mais esta função ao seu repertório de códigos C. Veja o código completo para o exemplo: #include <stdio.h> #include <stdlib.h> #include <string.h> // função personalizada que permite verificar // se duas strings são iguais ou diferentes int str_equal(const char *str1, const char *str2){ while((*str1 == *str2) && (*str1)){ str1++; str2++; } return((*str1 == 0) && (*str2 == 0)); } int main(int argc, char *argv[]){ char palavra1[] = "Java"; char palavra2[] = "Java"; if(str_equal(palavra1, palavra2) == 1) printf("As palavras sao iguais"); else printf("As palavras sao diferentes"); puts("\n\n"); system("PAUSE"); return 0; } Ao executar este código nós teremos o seguinte resultado: As palavras são iguais |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior delesQuantidade de visualizações: 611 vezes |
Pergunta/Tarefa: Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número. Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer. Sua saída deverá ser parecida com: Informe o primeiro número inteiro: 6 Informe o segundo número inteiro: 3 O maior número é: 6 Veja a resolução comentada deste exercício em C++: #include <string> #include <iostream> using namespace std; // protótipo da função que receberá dois números inteiros // e retornará o maior deles int maior_numero(int num1, int num2); int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int num1, num2, maior; // vamos pedir para o usuário informar os dois números cout << "Informe o primeiro número inteiro: "; cin >> num1; cout << "Informe o segundo número inteiro: "; cin >> num2; // os números são iguais? if(num1 == num2){ cout << "Erro. Os dois números são iguais.\n" << endl; } else{ // vamos chamar a função para obter o número maior maior = maior_numero(num1, num2); cout << "O maior número é: " << maior << "\n" << endl; } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } // função que receberá dois números inteiros e retornará // o maior deles int maior_numero(int num1, int num2){ // o primeiro número é maior que o segundo? if(num1 > num2){ return num1; } else{ return num2; } } |
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como definir a altura padrão das linhas em um TStringGrid do Delphi usando a propriedade DefaultRowHeightQuantidade de visualizações: 10925 vezes |
A propriedade DefaultRowHeight é útil quando queremos obter ou definir a altura padrão das linhas de um TStringGrid. Por padrão, o valor desta propriedade é 24 pixels. Veja no trecho de código abaixo como o valor desta propriedade é obtido: procedure TForm1.Button1Click(Sender: TObject); begin // vamos obter a altura padrão das linhas // do TStringGrid Memo1.Lines.Add('A altura padrão das linhas do TStringGrid é: ' + IntToStr(StringGrid1.DefaultRowHeight)); end; Ao executar este trecho de código você terá o seguinte resultado: A altura padrão das linhas do TStringGrid é: 24. Podemos definir a altura padrão das linhas do TStringGrid em tempo de design ou execução simplemente definindo um valor inteiro para sua propriedade DefaultRowHeight. Veja: procedure TForm1.Button1Click(Sender: TObject); begin // vamos definir a altura padrão das linhas // do TStringGrid StringGrid1.DefaultRowHeight := 50; end; Quando novas linhas são adicionadas por meio da propriedade RowCount, suas alturas serão aquelas da propriedade DefaultRowHeight. |
Java ::: Dicas & Truques ::: Timers |
Java Swing Exemplo completo: Como usar um timer para atualizar a hora atual em uma JLabelQuantidade de visualizações: 17182 vezes |
Este exemplo mostra como criar uma janela JFrame contendo dois botões JButton, um label JLabel e um timer (java.awt.Timer). Quando o timer dispara, o texto da label é atualizado para refletir a hora atual. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para o exemplo: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Calendar; import java.text.DecimalFormat; public class Estudos extends JFrame{ JLabel hora; Timer timer; DecimalFormat formato; public Estudos() { super("Usando timers em Java"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); formato = new DecimalFormat("00"); // Cria o timer timer = new Timer(1000, new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ atualizarHoras(); } }); // Cria um botão com o texto "Iniciar" JButton iniciar = new JButton("Iniciar"); iniciar.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ timer.start(); // inicia o timer } } ); // Cria um botão com o texto "Parar" JButton parar = new JButton("Parar"); parar.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ timer.stop(); // pára o timer } } ); // JLabel que exibirá a hora atual hora = new JLabel("00:00:00"); // Adiciona os botões à janela c.add(iniciar); c.add(parar); // adiciona o label à janela c.add(hora); setSize(350, 250); setVisible(true); } private void atualizarHoras(){ // Cria uma instância de Calendar Calendar agora = Calendar.getInstance(); // horas, minutos e segundos int horas = agora.get(Calendar.HOUR); int minutos = agora.get(Calendar.MINUTE); int segundos = agora.get(Calendar.SECOND); hora.setText(formato.format(horas) + ":" + formato.format(minutos) + ":" + formato.format(segundos)); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
PHP ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern |
Como usar o padrão de projeto Singleton em suas aplicações PHPQuantidade de visualizações: 9056 vezes |
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementados extensivamente nas linguagens Java e C#. Como o PHP, a partir de sua versão 5, suporta praticamente todos os recursos da programação orientada a objetos, este padrão pode ser implementado também nesta linguagem sem muitas dificuldades. Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação. Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente. Vamos ver um exemplo deste padrão em PHP. Observe o código a seguir: <? // Uma classe Singleton responsável por gravar // logs no sistema class Logger{ // variável estática e privada que guarda a instância // atual da classe private static $instancia = NULL; // Método estático que retorna uma instância já existente, ou // cria uma nova instância public static function getInstance(){ if(self::$instancia == NULL){ self::$instancia = new Logger(); } return self::$instancia; } // Construtor privado para evitar que instâncias sejam // criadas usando new private function __construct(){ // não precisamos fazer nada aqui } // Método clone() também privado para evitar a criação // de clones desta classe private function __clone(){ // não precisamos fazer nada aqui } public function registrarLog($dados){ echo "Vou registrar o log: " . $dados; } } // vamos registrar um novo log usando a classe Singleton Logger::getInstance()->registrarLog("Novo usuário cadastrado."); ?> Ao executar este código teremos o seguinte resultado: Vou registrar o log: Novo usuário cadastrado. |
Python ::: Dicas & Truques ::: Livros, E-books, Apostilas e Cursos |
E-Book 650 Dicas, Truques e _Exercícios Resolvidos_ de Python - PDF com 1.200 páginasQuantidade de visualizações: 1049 vezes |
![]() Domine lógica de programação e a linguagem Python usando o nosso E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python. Trata-se de um PDF com 1.200 páginas para você estudar onde e quando quiser. Todos os códigos estão em português e comentados linha a linha para que você, em pouco tempo, adquira todo o conhecimento necessário para se tornar um(a) programador(a) experiente em Python. Este e-book contém anotações, dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, internet, arquivos e diretórios, Pandas, Pygame, Matplotlib, exercícios resolvidos, programação orientada a objetos e muito mais. Veja o conteúdo completo desse e-book: Conteúdo do E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas . Adquira pelo WhatsApp +55 (062) 98553-6711 (Osmar) ou diretamente pelo Mercado Pago (PIX, cartão de crédito, boleto, etc). |
jQuery ::: Dicas & Truques ::: AJAX |
Apostila jQuery - Quais as diferenças entre os métodos ajax(), get() e post() do jQuery?Quantidade de visualizações: 10885 vezes |
Existem algumas diferenças substanciais entre os métodos ajax(), get() e post(). Conhecê-las e saber quando usar cada um destes métodos poderá tornar seus códigos mais dinâmicos e eficientes. O método ajax() é o mais completo para requisições HTTP e pode ser usado com mais de um dezena de parâmetros. Este método é considerado um método de nível baixo (low level) já que permite um maior controle sobre a requisição AJAX. Além disso, se precisamos de mais flexibilidade, este é o método a ser usado. Os métodos get() e post() são métodos de nível mais alto (higher level) e aceitam pouco mais que três parâmetros cada um. Use estes métodos quando não precisar de muito controle sobre a requisição AJAX. Estes métodos, por exemplo, não fornecem formas de tratar possíveis erros na requisição HTTP. Nesta seção você encontrará exemplos de cada um desses métodos. |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
Revit Python Shell - Como copiar grupos no Revit usando a função Create.PlaceGroup() e o Revit Python Shell |
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 |