![]() |
|||||
|
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Apostila C++ - Como retornar o tamanho de uma string em C++ usando a função length() da classe StringQuantidade de visualizações: 24883 vezes |
Nesta dica eu mostro como podemos usar a função length() da classe String da linguagem C++ para obter a quantidade de caracteres em uma palavra, frase ou texto. Esta função é definida na classe string da seguinte forma:size_t length() const; #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]) { string str = "C++"; size_t tamanho = str.length(); cout << "Esta string contém " << tamanho << " caracteres.\n\n"; system("PAUSE"); // pausa o programa return 0; } Ao executar este código C++ nós teremos o seguinte resultado: Esta string contém 3 caracteres. |
MySQL ::: Dicas & Truques ::: Data e Hora |
Como adicionar horas, dias, semanas, meses, anos, etc, ao valor de um campo DATE ou DATETIME usando a função DATE_ADD() do MySQLQuantidade de visualizações: 11402 vezes |
A função DATE_ADD() é muito útil quando precisamos adicionar horas, dias, semanas, meses, etc, ao valor de um campo do tipo DATE ou DATETIME. Esta função é composta de três partes:DATE_ADD(date, INTERVAL expr unit) O argumento date deve ser do tipo DATE ou DATETIME. O argumento expr indica um número inteiro que indica a quantidade de horas, dias, meses, etc, que será usada como intervalo. O argumento unit indica a unidade a ser usada. Valores possíveis são: HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc. Veja um exemplo no qual adicionamos 15 dias à data atual: SELECT DATE_ADD(NOW(), INTERVAL 15 DAY) Suponha que você tenha um campo chamado data_hora_compra do tipo DATETIME e que este campo tenha o valor 2008-03-30 02:30:15. A query: SELECT DATE_ADD(data_hora_compra, INTERVAL 2 MONTH) FROM tabela_estudos retornará 2008-05-30 02:30:15. |
LISP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter graus em radianos em LISP - Trigonometria em LISPQuantidade de visualizações: 991 vezes |
Quando estamos trabalhando com trigonometria na linguagem Common Lisp (e AutoLISP, para programadores AutoCAD), é importante ficarmos atentos ao fato de que todos os métodos e funções trigonométricas em Lisp recebem seus argumentos em radianos, em vez de graus. Nesta dica veremos como converter graus em radianos (sem a chatice de ficar relembrando regra de três). Veja a fórmula abaixo: \[Radianos = Graus \times \frac{\pi}{180}\] Agora veja como esta fórmula pode ser escrita em código LISP: ; programa LISP que converte graus em radianos (let((graus)(radianos)) ; valor em graus (setq graus 30) ; obtém o valor em radianos (setq radianos (* graus (/ pi 180))) ; mostra o resultado (format t "~F graus em radianos é ~F" graus radianos) ) Ao executarmos este código Common Lisp nós teremos o seguinte resultado: 30 graus convertidos para radianos é 0.5235987755982988 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como retornar o maior elemento em cada uma das colunas de uma matriz usando JavaQuantidade de visualizações: 949 vezes |
Pergunta/Tarefa: Dada a seguinte matriz: 6 10 4 2 9 7 20 3 1 Sua saída deverá ser parecida com: Maior elemento na coluna 0 é 20 Maior elemento na coluna 1 é 10 Maior elemento na coluna 2 é 7 Veja a resolução comentada deste exercício usando Java: package estudos; public class Estudos { public static void main(String[] args) { // vamos declarar e constuir uma matriz de 3 linhas e três colunas int matriz[][] = {{6, 10, 4}, {2, 9, 7}, {20, 3, 1}}; // vamos percorrer a matriz e exibir o maior elemento de cada coluna // começamos com cada coluna for(int i = 0; i < matriz[0].length; i++){ // assumimos que o maior valor é o primeiro dessa coluna int maior = matriz[0][i]; // percorremos todos os elementos desta linha for(int j = 0; j < matriz.length; j++){ // o elemento atual é maior que o maior? if(matriz[j][i] > maior){ // maior assume o valor atual maior = matriz[j][i]; } } // exibimos o maior elemento desta coluna System.out.println("Maior elemento na coluna " + i + " é " + maior); } } } |
Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Como abrir e fechar um dispositivo de saída MIDI usando DelphiQuantidade de visualizações: 11440 vezes |
Quando queremos executar sons MIDI no Windows, a primeira tarefa a ser realizada é abrir o dispositivo de saída MIDI. Isso é feito com uma chamada à função midiOutOpen() da API do Windows. Veja sua assinatura (em C):MMRESULT midiOutOpen( LPHMIDIOUT lphmo, UINT_PTR uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwCallbackInstance, DWORD dwFlags ); Esta função está traduzida na unit MMSystem.pas do Delphi da seguinte forma: function midiOutOpen(lphMidiOut: PHMIDIOUT; uDeviceID: UINT; dwCallback, dwInstance, dwFlags: DWORD): MMRESULT; stdcall; Antes de continuarmos, vamos entender os parâmetros desta função: lphmo - Este é um ponteiro para um HMIDIOUT (que é simplemente um Integer). Este ponteiro é preenchido com um handle identificando o dispositivo de saída MIDI aberto. Este handle é usado para identificar o dispositivo nas demais chamadas de saída MIDI. uDeviceID - Identificador do dispositivo de saída MIDI a ser aberto. O valor 0 aqui é seguro, visto que este identifica o primeiro dispositivo na lista de dispositivos de saída. Veja minha dica "Como obter uma lista dos dispositivos de saída MIDI no sistema" para mais informações. dwCallback - Um ponteiro para uma função de callback, um handle de evento, um identificador de thread ou um handle para uma janela ou thread chamada durante o playback do MIDI para processar mensagens relacionadas ao processo de playback. Se não houver nada a ser processado, podemos definir o valor 0 para este parâmetro. Dê uma olhada na minha dica relacionada à função MidiOutProc(). dwCallbackInstance - Dados de instância do usuário passados para a função de callback. Este parâmetro não é usado em callbacks de janela e thread. É seguro manter seu valor como 0. dwFlags - Flag de callback para abrir o dispositivo. Por enquanto vamos manter seu valor como CALLBACK_NULL. Veja minhas outras dicas sobre o assunto para aprofundar mais neste parâmetro. Agora que aprendemos mais sobre os parâmetros da função midiOutOpen(), vamos ver como usá-la para abrir um dispositivo de saída MIDI e tocar a nota DÓ média (aquela no meio da escala de notas possíveis). Veja o código completo para a unit: unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MMSystem; type TForm2 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } dispositivo: HMIDIOUT; // dispositivo de saída MIDI public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); var erro: Word; begin erro := midiOutOpen(@dispositivo, 0, 0, 0, CALLBACK_NULL); // houve erro na abertura do dispositivo de saída MIDI? if (erro <> 0) then begin ShowMessage('Não foi possível abrir o dispositivo MIDI. Erro: ' + IntToStr(erro)); end else begin ShowMessage('Dispositivo MIDI aberto com sucesso.'); // vamos tocar uma nota para nos certificarmos de que o dispositivo // realmente foi aberto e está funcionando // vamos tocar a nota DÓ média e com velocidade máxima midiOutShortMsg(dispositivo, rgb($90, 60, 127)); // vamos deixar a nota soar um pouco sleep(1000); // vamos silenciar a nota midiOutShortMsg(dispositivo, rgb($80, 60, 0)); // finalmente vamos fechar o dispositivo MIDI midiOutClose(dispositivo); end; end; end. O primeiro passo foi declarar uma variável do tipo HMIDIOUT: dispositivo: HMIDIOUT; Este é o dispositivo de saída que será usado nas demais chamadas MIDI, incluindo a função midiOutClose(), usada para fechar o dispositivo: midiOutClose(dispositivo); Na API do Windows está função está declarada da seguinte forma: MMRESULT midiOutClose( HMIDIOUT hmo ); Na unit MMSystem.pas do Delphi está função está traduzida da seguinte forma: function midiOutClose(hMidiOut: HMIDIOUT): MMRESULT; stdcall; Veja que só precisamos fornecer o nome da variável representando o dispositivo de saída MIDI aberto no momento para que a função se encarregue de fechá-lo. |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como remover os espaços em excesso de uma string e deixar apenas um espaço entre as palavras usando a função preg_replace() e expressões regulares do PHPQuantidade de visualizações: 253 vezes |
Nesta dica mostrarei como é possível tirar proveito da função preg_replace() da linguagem PHP para retirar os espaços em excesso de uma frase ou texto. Note o uso da função trim() para remover também os espaços antes e depois da frase ou texto. Veja o código completo para o exemplo: <?php // uma frase com excesso de espaços // vamos deixar apenas um espaço entre as palavras $frase = " Gosto muito de programar em PHP "; $frase2 = trim(preg_replace('/\s\s+/',' ', $frase)); echo "Com espaços: " . $frase . "<br>"; echo "Sem espaços: " . $frase2; ?> Ao executar este código PHP nós teremos o seguinte resultado: Com espaços: Gosto muito de programar em PHP Sem espaços: Gosto muito de programar em PHP Pode ser necessário você olhar no código fonte da página HTML para visualizar melhor o resultado. |
Java ::: Coleções (Collections) ::: ArrayList |
Java Collections para iniciantes - Arrays (vetores) ou a ArrayList? Qual devo usar?Quantidade de visualizações: 16297 vezes |
Uma das perguntas mais frequentes que os usuários do nosso site nos fazem é aquela sobre o uso de simples arrays (vetores e matrizes) ou objetos da classe ArrayList. Se o número de elementos for fixo ou você precisar de muita eficiência ao lidar com tipos primitivos, então arrays podem ser a melhor escolha. Porém, muitos problemas envolvendo o armazenamento de dados requerem estruturas de dados que possam ser redimensionadas de acordo com a necessidade do algorítmo. Neste caso, uma ArrayList (ou qualquer uma das outras classes Collections) pode ser a escolha certa. Veja um trecho de código para ficar mais fácil o entendimento: package arquivodecodigos; public class Estudos{ public static void main(String args[]){ int valores[] = {4, 12, 8, 5, 13}; System.out.println("Primeiro elemento no vetor: " + valores[0]); } } Ao executar este código nós teremos o seguinte resultado: Primeiro elemento no vetor: 4 Como podemos ver neste exemplo, um array (nesse caso um vetor) possui um tamanho fixo, ou seja, o compilador não nos permite reduzir ou aumentar a quantidade de elementos em um vetor ou matriz criado a partir da notação de arrays. Assim, apesar de todas as facilidades que os arrays trazem consigo, este pode ser um empecilho para o tipo de aplicação que queremos desenvolver em um determinado momento. A classe ArrayList, por outro lado, possui tamanho variado. Isso quer dizer que seu tamanho é aumentado ou reduzido de acordo com as necessidades do seu código. Uma outra questão que diferencia arrays de ArrayList, é que não podemos armazenar tipos primitivos em um objeto da classe ArrayList. Se precisarmos fazer isso, o tipo primitivo deve ser colocado em uma classe encapsuladora, por exemplo, a classe Integer. Em algumas situações o compilador faz isso nos bastidores, e esta operação é chamada de auto-boxing. |
C# ::: Windows Forms ::: CheckBox |
C# Windows Forms - Como usar a classe CheckBox em seus formulários C# Windows FormsQuantidade de visualizações: 12992 vezes |
Um objeto da classe System.Windows.Forms.CheckBox representa um controle Windows CheckBox. Este controle é uma caixa que pode ser marcada ou desmarcada. Além disso, este controle pode conter uma imagem, texto, ou ambos. Veja a posição da classe CheckBox na hierarquia de classes da plataforma .NET: System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ButtonBase System.Windows.Forms.CheckBox Você pode ter quantas CheckBox quiser em seus formulários. Elas não precisam necessariamente estar relacionadas. Em tempo de design podemos colocar uma CheckBox em um formulário simplesmente acessando o ToolBox -> Common Controls e arrastando o controle CheckBox para a posição desejada no formulário. Por padrão, uma CheckBox aparecerá desmarcada, ou seja, sua propriedade Checked será false. O texto ao lado da CheckBox pode ser modificado por meio da propriedade Text. Em tempo de execução podemos verificar se uma CheckBox está marcada com um código semelhante ao mostrado abaixo (estou assumindo que seu formulário possui um Button e uma CheckBox): private void button1_Click(object sender, EventArgs e){ // vamos verificar se a CheckBox está marcada ou desmarcada if(checkBox1.Checked) MessageBox.Show("A CheckBox está marcada"); else MessageBox.Show("A CheckBox está desmarcada"); } Caso precise modificar a propriedade Checked de uma CheckBox em tempo de execução, você poderá escrever algo parecido com: private void button1_Click(object sender, EventArgs e){ // vamos marcar a CheckBox checkBox1.Checked = true; } |
Laravel ::: Dicas de Estudo e Anotações ::: Passos Iniciais |
Como efetuar uma instalação do Laravel no Windows usando o ComposerQuantidade de visualizações: 2877 vezes |
O Laravel é um framework PHP livre e open-source criado por Taylor B. Otwell para o desenvolvimento de sistemas web que utilizam o padrão MVC (model, view, controller) ou seja, o padrão Modelo-Visão-Controlador. Algumas características proeminentes do Laravel são sua sintaxe simples e concisa, um sistema modular com gerenciador de dependências dedicado, várias formas de acesso a banco de dados relacionais e vários utilitários indispensáveis no auxílio ao desenvolvimento e manutenção de sistemas. De acordo com uma pesquisa feita em Março de 2015 com desenvolvedores, o Laravel foi listado como o framework PHP mais popular de 2015, seguido pelo Symfony2, Nette, CodeIgniter, Yii2 e outros. Em Agosto de 2015, o Laravel já era o principal framework de projetos PHP no GitHub. Laravel foi desenvolvido sob o MIT License, tendo seu código-fonte hospedado no GitHub. Atualmente encontra-se na versão 7.3.0. Como baixar e instalar o Laravel Para instalar o framework Laravel, direcione o seu navegador para https://getcomposer.org. Esta é a página do Composer, um gerenciador de dependências para o PHP. Para esta dica eu baixei o instalador para o Windows Composer-Setup.exe. Durante o processo de instalação, tenha o cuidado de informar o caminho do php.exe no seu sistema. Concluída a instalação do Composer, abra uma janela de terminal e digite: composer Pressione Enter e você verá um resultado parecido com: C:\Users\samsung>composer ... why-not Shows which packages prevent the given package from being installed. Isso é um bom sinal. O Composer está pronto e já podemos continuar com a instalação do Laravel. Na mesma janela de terminal, digite o comando abaixo: composer global require laravel/installer Aguarde alguns minutos e você terá o seguinte resultado: Changed current directory to C:/Users/samsung/AppData/Roaming/Composer Using version ^3.1 for laravel/installer ... Writing lock file Generating autoload files 8 packages you are using are looking for funding. Use the `composer fund` command to find out more! Para testar se sua instalação do Laravel está pronta para uso, use a mesma janela de terminal ou abra uma nova e digite: laravel --version O resultado será algo como Laravel Installer 3.1.0. Agora, para finalizar, crie um diretório em um local de sua preferência, entre nele e dispare o comando a seguir: C:\Users\samsung>cd c:\estudos_laravel c:\estudos_laravel>laravel new cadastroclientes Pressione Enter, aguarde alguns segundos e então verifique que uma instalação fresquinha do Laravel foi feita no diretório que você indicou, e ela contém, já instaladas, todas as dependências necessárias para a criação do seu projeto. |
VBA ::: Dicas & Truques ::: Laços de Repetição |
Como usar o laço de repetição For Next em nossas aplicações VBAQuantidade de visualizações: 212 vezes |
O laço For da linguagem VBA é uma estrutura de controle de repetição que nos permite, de forma eficiente, repetir uma instrução ou grupo de instruções um determinado número de vezes. Veja, por exemplo, como escrever um laço For Next que mostra os números de 0 até 10: Sub ExemploLacoFor() ' exemplo de laço For Next que conta de 0 até 10 For i = 0 To 10 MsgBox "O valor de i é: " & i Next End Sub Ao executar este código VBA nós teremos o seguinte resultado: O valor de i é: 0 O valor de i é: 1 O valor de i é: 2 O valor de i é: 3 O valor de i é: 4 O valor de i é: 5 O valor de i é: 6 O valor de i é: 7 O valor de i é: 8 O valor de i é: 9 O valor de i é: 10 É possível usar a palavra-chave Step para definirmos o incremento da variável de controle do laço. Veja: Sub ExemploLacoFor() ' exemplo de laço For Next que mostra os números ' pares de 0 até 10 For i = 0 To 10 Step 2 MsgBox "O valor de i é: " & i Next End Sub Ao executarmos o código novamente, o resultado será: O valor de i é: 0 O valor de i é: 2 O valor de i é: 4 O valor de i é: 6 O valor de i é: 8 O valor de i é: 10 Finalmente, se quisermos um laço For Next que conta de trás para a frente, ou seja, diminui a variável de controle, basta fornecermos um valor negativo para a palavra-chave Step. Veja: Sub ExemploLacoFor() ' exemplo de laço For Next que mostra os números ' pares de 10 até 0 For i = 10 To 0 Step -2 MsgBox "O valor de i é: " & i Next End Sub |
Nossas 20 dicas & truques de programação mais populares |
Java - Como construir uma data em Java usando o método set() da classe Calendar - Apostila Java Básico VB.NET - Como retornar o tamanho de uma string em VB.NET usando a propriedade Length da classe String |
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 |