Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string termina com uma determinada substring em Ruby usando uma função ends_with() personalizadaQuantidade de visualizações: 7018 vezes |
O Ruby, até a versão 1.8.6 não dispõe de um método para verificar se uma string termina com uma determinada substring. Assim, veja abaixo como escrever uma função ends_with(). Esta função recebe a string e a substring e retorna true se a string terminar com a substring. Eis a listagem completa: # função auxiliar que permite verificar se # uma string termina com uma substring def ends_with(string, substring) pos = string.length - substring.length if string.index(substring, pos) == pos return true else return false end end # declara e inicializa uma variável string frase = "Gosto muito de Java, PHP e Ruby" # vamos verificar a string termina com "Ruby" if ends_with(frase, "Ruby") puts "A string termina com \"Ruby\"" else puts "A string NÃO termina com \"Ruby\"" end Ao executar este código Ruby nós teremos o seguinte resultado: A string termina com "Ruby" |
PHP ::: Dicas & Truques ::: Data e Hora |
Como construir uma data usando a função mktime() do PHPQuantidade de visualizações: 83 vezes |
A forma mais comum de se construir uma data e hora no PHP é por meio da função mktime(). Esta função recebe as horas e a data na sequência horas, minutos, segundos, mês, dia, ano e retorna um timestamp Unix, que é a quantidade de segundos desde 31/12/1969 - 21:00:00 (fuso horário brasileiro). Veja um trecho de código que constrói a data 13/05/2020 à meia-noite: <html> <head> <title>Estudos PHP</title> </head> <body> <?php // construir a data 13/05/2020 // se quiser fornecer as horas o formato é: // hora, minuto, segundo $timestamp = mktime(0, 0, 0, 05, 13, 2020); echo "A data é: " . date('d/m/Y', $timestamp); ?> </body> </html> Ao executar este código nós teremos o seguinte resultado: A data é: 13/05/2020 |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 795 vezes |
Pergunta/Tarefa: Considere os seguintes vetores: // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[] = new int[5]; Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[5]; int i; // vamos preencher o segundo vetor de forma que a soma dos // valores de seus elementos seja 30 for(i = 0; i < 5; i++){ b[i] = 30 - a[i]; } // vamos mostrar o resultado printf("Valores no vetor a: "); for(i = 0; i < 5; i++){ printf("%d ", a[i]); } printf("\nValores no vetor b: "); for(i = 0; i < 5; i++){ printf("%d ", b[i]); } printf("\n\n"); system("PAUSE"); return 0; } |
Java ::: Pacote java.lang ::: StringBuffer |
Curso completo de Java - Como usar a classe StringBuffer da linguagem JavaQuantidade de visualizações: 9236 vezes |
A classe StringBuffer, no pacote java.lang, representa uma sequencia de caracteres mutável e segura em relação a threads. Um objeto StringBuffer é parecido com uma String, com a diferença que um StringBuffer pode ser modificado in-place, ou seja, modificações em seu conteúdo não geram uma nova cópia, como acontece com objetos da classe String. Veja a posição desta classe na hierarquia de classes Java: java.lang.Object java.lang.StringBuffer A qualquer momento um StringBuffer contém uma sequencia de caracteres em particular, mas o tamanho e o conteúdo da sequencia pode ser alterado por meio de certas chamadas de métodos. Objetos StringBuffer são seguros para acesso em um ambiente de múltiplas threads. Os métodos são sincronizados (synchronized) onde necessário de forma a garantir que todas as operações em uma instância em particular se comportem como se estivessem em ordem serial, ou seja, sejam consistentes com a ordem das chamadas de métodos feitas por cada uma das threads envolvidas. As operações principais de um StringBuffer são os métodos append() e insert(), que são sobrecarregados para aceitar dados de qualquer tipo. Cada um destes métodos converte a informação fornecida em string e então acrescenta ou insere os caracteres desta string no string buffer. O método append() sempre adiciona os caracteres no final do buffer. O método insert(), por sua vez, adiciona os caracteres em um determinado ponto. Por exemplo, se z se refere a um objeto string buffer cujo conteúdo é "start", então a chamada de método z.append("le") faria com que o string buffer tivesse agora ""startle"", enquanto z.insert(4, "le") alteraria o conteúdo do string buffer para "starlet". Em geral, se sb se refere a uma instância de StringBuffer, então sb.append(x) tem o mesmo efeito que sb.insert(sb.length(), x). Sempre que uma operação ocorre envolvendo uma sequencia de fonte (por exemplo, adicionar ou inserir a partir de uma outra sequencia), esta classe sincroniza somente o string buffer no qual a operação está sendo feita. Todo string buffer possui uma capacidade (capacity). Enquanto o comprimento da sequencia de caracteres contida no string buffer não exceder a capacidade do mesmo, não há necessidade de alocar uma nova matriz interna de buffer. Se o buffer interno for sobrecarregado, ele será automaticamente expandido. A partir do Java 5, esta classe foi suplementada com uma classe equivalente criada para o uso em ambiente de thread única: StringBuilder. A classe StringBuilder deve ser usada em vez de StringBuffer, uma vez que ela suporta as mesmas operações mas é mais rápida por não executar sincronização. |
Node.js ::: Dicas de Estudo e Anotações ::: Passos Iniciais |
Saiba o que é o Node.js e como baixar, instalar e testar seu funcionamento no WindowsQuantidade de visualizações: 1693 vezes |
O que é o Node.js Então todos os seus amigos estão comentando sobre Node.js e você não tem a mínima idéia do que se trata? Neste pequeno tutorial falaremos um pouco sobre essa ferramenta, faremos o download do instalador no Windows 10 (deve funcionar em outras versões também) e no final testaremos a instalação para termos certeza de que já estaremos prontos para desenvolver algumas idéias. O Node.js é uma plataforma server-side, ou seja, que executa do lado do servidor web e escrito a partir do Google Chrome's JavaScript Engine (V8 Engine), o motor de interpretação e/ou compilação de códigos JavaScript do navegador Google Chrome. Esta ferramenta foi desenvolvida por Ryan Dahl e desde então tem sido adotada em vários projetos web e sofre melhorias a cada versão. O objetivo principal do Node.js é facilitar o desenvolvimento de aplicações web que sejam mais rápidas e de fácil escalabilidade. Este web server (sim, o Node.js é um servidor web tal como o Apache Web Server, Tomcat, etc) usa um modelo direcionado a eventos (event-driven) e sem bloqueio de I/O, o que o torno leve e muito eficiente, perfeito para aplicações de tempo real e acesso intensivo a dados e que possam ser executadas em ambientes distribuidos. O Node.js é uma plataforma open source e cross-platform, ou seja, permite que nossos códigos rodem em diferentes sistemas operacionais com poucas ou nenhuma alteração. Além disso, aplicações Node.js são escritas em JavaScript e são executadas dentro do runtime do próprio Node.js. Para completar, esta ferramenta nos fornece uma extensa biblioteca de módulos JavaScript, o que simplifica ainda mais o desenvolvimento de aplicações web. Baixando e instalando o Node.js Para fazer o download do Node.js, direcione o seu navegador para a URL https://nodejs.org/en/download. Você encontrará os binários e instaladores para Windows, MacOS e Linux. Para este tutorial eu baixei o instalador para o Windows 64-bit Windows Installer (.msi), node-v12.16.3-x64.msi, com o tamanho de 18,8Mb. Execute o instalador e siga o passo-a-passo da instalação. Um detalhe importante é informar, para a instalação, um diretório que não contenha espaços. Veja: ![]() Depois de escolhido o local de instalação, continue e logo você verá a seguinte tela: ![]() Aqui o instalador nos informa que alguns módulos rpm precisam ser compilados com C/C++ antes de serem instalados. Se você quiser instalar tais módulos, algumas ferramentas tais como Python e o Visual Studio Build Tools deverão ser baixadas. Mas se você não quiser, não precisa se preocupar com isso agora. Apenas clique o botão Next e finalize a instalação. Testando a sua instalação do Node.js Finalizada a instalação, chegou a hora de fazermos o teste. Abra um janela de comando (cmd) e digite: node -v Opcionalmente você pode digitar --version em vez de -v. O resultado será a versão do Node.js que você acaba de instalar. Para concluir, vamos testar a interface de linha de comando do Node. Abra de novo a janela de terminal do Windows e digite apenas: node Agora você verá o sinal ">" aguardando os seus comandos. Digite algo como: console.log('Que beleza. O Node.js está pronto!'); Pressione a tecla Enter e o Node.js exibirá o conteúdo digitado. Para sair do comando de linha do Node e voltar para o terminal do Windows, basta pressionar Ctrl+D. Pronto! Agora você já pode ver nossas dicas de Node.js e dar continuidade aos seus estudos. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Declare uma matriz de 10 inteiros e use um laço for para preencher os elementos da matriz usando valores aleatórios de 0 até 10Quantidade de visualizações: 11824 vezes |
Pergunta/Tarefa: Escreva um programa C que declara uma matriz de 10 inteiros. Use um laço for para preencher os elementos da matriz usando valores aleatórios de 0 até 10 (incluindo os valores 0 e 10). Para finalizar, percorra os elementos da matriz e exiba seus valores. A saída do programa deverá ser parecida com: 3 5 5 1 3 8 10 0 9 7 Resposta/Solução: Veja abaixo a resolução completa para esta tarefa: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // vamos inicializar o gerador de números aleatórios srand(time(NULL)); // vamos declarar e construir uma matriz de 10 inteiros int valores[10]; // vamos preencher a matriz com valores aleatórios de 0 até 10 (incluindo) int i; for(i = 0; i < 10; i++){ valores[i] = rand() % 11; } // vamos exibir os valores dos elementos da matriz for(i = 0; i < 10; i++){ printf("%d ", valores[i]); } printf("\n\n"); system("PAUSE"); return 0; } Espero que você tenha gostado e continue a acessar a nossa Lista de Exercícios de C. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string Java é um valor numérico válido usando o método isDigit() da classe CharacterQuantidade de visualizações: 213 vezes |
O método isDigit() da classe Character nos permite verificar se um determinado caractere é um número, ou seja, está na faixa de 0 a 9. Podemos tirar proveito disso para varrer todos os caracteres de uma string, usando o método charAt() da classe String, e testar se essa string é um valor numérico válido. Veja o código completo para o exemplo: package arquivodecodigos; // Este exemplo mostra como verificar se uma // string é um valor númerico public class Estudos { public static void main(String[] args) { String valor = "2334554"; boolean valido = true; for (int i = 0; i < valor.length(); i++) { Character caractere = valor.charAt(i); if (!Character.isDigit(caractere)) { valido = false; break; } } if (valido) { System.out.println("Valor numérico valido"); } else { System.out.println("NãO é um valor numerico valido"); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Valor numérico válido. |
Java ::: Classes e Componentes ::: JButton |
Como definir a cor do texto de um botão JButton do Java SwingQuantidade de visualizações: 9493 vezes |
Nesta dica eu mostrarei como é possível definir a cor do texto de um componente JButton do Java Swing. Para isso nós usamos o método setForeground() da classe JButton, fornecendo a cor desejada, por exemplo, Color.RED. Veja um exemplo Java Swing completo: package arquivodecodigos; import java.awt.*; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Estudos Swing"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria um JButton com a cor do texto vermelho JButton btn1 = new JButton("Clique Aqui!"); btn1.setForeground(Color.RED); // Cria um JButton com a cor de fundo verde JButton btn2 = new JButton("Clique Aqui!"); btn2.setForeground(Color.GREEN); // Adiciona os botões à janela c.add(btn1); c.add(btn2); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução switch para desviar o fluxo de execução de seus códigos PHPQuantidade de visualizações: 14778 vezes |
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários elseif. Desta forma, cada possibilidade é testada em um bloco case. Veja um exemplo: <?php $valor = 4; switch($valor){ case 0: echo "Valor é igual a 0"; break; case 1: echo "Valor é igual a 1"; break; case 2: echo "Valor é igual a 2"; break; default: echo "Nenhuma das anteriores"; } ?> Ao executarmos este código PHP nós teremos o seguinte resultado: Nenhuma das anteriores Veja que, se nenhuma das condições testadas em um bloco case for satisfatória, a parte default da instrução switch será executada. |
JavaScript ::: Dicas & Truques ::: Mouse e Teclado |
Como bloquear o botão direito do mouse em suas páginas HTML usando JavaScriptQuantidade de visualizações: 63 vezes |
Em algumas situações, principalmente games desenvolvidos em JavaScript ou HTML5, nós gostaríamos de evitar o botão direito do mouse, ou seja, o menu de contexto no corpo da página web. Para isso só precisamos retornar false para o evento oncontextmenu. Veja como isso pode ser feito no trecho de código JavaScript abaixo: <html> <head> <title>Estudos JavaScript</title> </head> <body oncontextmenu="return false"> <h1>Você não pode usar o botão direito nessa página</h1> </body> </html> Uma boa idéia é avisar ao usuário (por meio de uma mensagem window.alert) que ele não pode usar o botão de contexto no documento HTML. Veja: <html> <head> <title>Estudos JavaScript</title> </head> <body oncontextmenu="return aviso()"> <script type="text/javascript"> function aviso(){ window.alert("Botão direito não permitido."); return false; } </script> </body> </html> Agora, ao clicarmos com o botão direito do mouse na página, uma mensagem window.alert será exibida com o seguinte texto: Botão direito não permitido. |
Nossas 20 dicas & truques de programação mais populares |
Java - Como converter de octal para decimal usando o método parseInt() da classe Integer da linguagem Java Java - Como usar null em Java Portugol - Exercício Resolvido de Portugol - Um programa que lê três números inteiros e mostra o maior |
Você também poderá gostar das dicas e truques de programação abaixo |
Python - Como gerar permutações de uma string em Python usando o objeto permutations do módulo Itertools JavaScript - Como retornar o nome ou tipo de exceção de um erro em JavaScript usando a propriedade name do objeto Error |
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 |