![]() |
|||||
|
JavaScript ::: Dicas & Truques ::: Miscelâneas |
JavaScript para iniciantes - Como usar o método escape() para codificar uma frase em JavaScriptQuantidade de visualizações: 12730 vezes |
A função escape() da linguagem JavaScript é usada quando precisamos codificar uma palavra, frase ou texto, ou seja, uma string. Em geral nós a usamos para codificar caracteres especiais em uma string, com a exceção dos caracteres e símbolos "* @ - _ + . /". Veja um exemplo completo: <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> var frase = "Programar em JavaScript é muito bom"; document.write("Original: " + frase + "<br>"); document.write("Codificada: " + escape(frase)); </script> </body> </html> Ao executarmos este código nós teremos o seguinte resultado: Original: Programar em JavaScript é muito bom Codificada: Programar%20em%20JavaScript %20%E9%20muito%20bom Lembre-se de que o objetivo da função escape() é tornar uma string portável, ou seja, que pode ser transmitida pela rede para qualquer computador que suportar os caracteres ASCII. Nota: A função escape() foi marcada como desatualizada (deprecated) a partir do JavaScript 1.5. Em vez dela nós devemos usar as funções encodeURI() ou encodeURIComponent(). |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como concatenar strings em Ruby usando o operador <<Quantidade de visualizações: 8448 vezes |
Esta dica mostra como podemos usar o operador << para concatenar strings em Ruby. Veja: frase1 = "Gosto muito de Ruby" frase2 = " e de Python" # vamos concatenar as duas strings res = frase1 << frase2 # exibe o resultado puts res Ao executar este código Ruby nós teremos o seguinte resultado: Gosto muito de Ruby e de Python |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de Java - Faça um programa que sorteie um número aleatório entre 0 e 500 e pergunte ao usuário qual é o "número mágico". O programa deveráQuantidade de visualizações: 379 vezes |
Pergunta/Tarefa: Faça um programa que sorteie um número aleatório entre 0 e 500 e pergunte ao usuário qual é o "número mágico". O programa deverá indicar se a tentativa efetuada pelo usuário é maior ou menor que o número mágico e contar o número de tentativas. Quando o usuário conseguir acertar o número o programa deverá classificar o usuário como: De 1 a 3 tentativas: muito sortudo De 4 a 6 tentativas: sortudo De 7 a 10 tentativas: normal > 10 tentativas: tente novamente Sua saída deverá ser parecida com: Adivinhe o número mágico: 100 Tente um número menor. Adivinhe o número mágico: 50 Tente um número maior. Adivinhe o número mágico: 60 Tente um número maior. Adivinhe o número mágico: 80 Tente um número maior. Adivinhe o número mágico: 90 Tente um número maior. Adivinhe o número mágico: 95 Tente um número menor. Adivinhe o número mágico: 94 Tente um número menor. Adivinhe o número mágico: 93 Tente um número menor. Adivinhe o número mágico: 92 Você acertou o número em 9 tentativas. Classificação: Normal Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Random; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema int numero_magico, palpite, tentativas = 0; boolean acertou = false; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos sortear o número entre 0 e 500 Random rand = new Random(); numero_magico = rand.nextInt(501); // um laço que repete enquanto o usuário não // acertar o número mágico while (!acertou) { System.out.print("Adivinhe o número mágico: "); palpite = Integer.parseInt(entrada.nextLine()); // registra essa tentativa tentativas = tentativas + 1; // o usuário acertou o número mágico? if (palpite == numero_magico) { System.out.println("Você acertou o número em " + tentativas + " tentativas."); // mostra a classificação do usuário if (tentativas <= 3) { System.out.println("Classificação: Muito Sortudo"); } else if ((tentativas >= 4) && (tentativas <= 6)) { System.out.println("Classificação: Sortudo"); } else if ((tentativas >= 7) && (tentativas <= 10)) { System.out.println("Classificação: Normal"); } else { System.out.println("Classificação: Tente Novamente"); } // sai do laço acertou = true; } else { // indica se o palpite é maior ou menor if (palpite < numero_magico) { System.out.println("Tente um número maior.\n"); } else { System.out.println("Tente um número menor.\n"); } } } } } |
JavaScript ::: Dicas & Truques ::: Matemática e Estatística |
JavaScript para matemática - Como obter o maior entre dois ou mais valores numéricos usando a função max() do JavaScriptQuantidade de visualizações: 11120 vezes |
A função max() do objeto Math da linguagem JavaScript pode ser usada quando temos dois ou mais valores numéricos e gostaríamos de retornar o maior deles. Note que esta função não aceita um vetor (array) como argumento, ou seja, os valores devem ser fornecidos de forma literal ou passados como variáveis independentes. Veja o código JavaScript completo para o exemplo: <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> var n1 = 45; var n2 = 18; var maior = Math.max(n1, n2); document.write("O maior número é " + maior); </script> </body> </html> Ao executar este código nós teremos o seguinte resultado: O maior número é 43 O retorno do método max() é um objeto Number representando o maior dos valores fornecidos. Se nenhum argumento for informado, o retorno será um objeto Infinity, enquanto um objeto NaN será retornado se algum dos valores fornecidos não for um valor numérico válido. |
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como escrever uma função recursiva para calcular a potência de um número em DelphiQuantidade de visualizações: 13806 vezes |
O código abaixo mostra como você pode escrever uma função recursiva em Delphi que permite calcular a potência de um número inteiro:// uma função recursiva para elevar uma determinada // base ao seu expoente function potencia(base, expoente: Integer): Integer; begin if expoente = 0 then Result := 1 else Result := base * potencia(base, expoente - 1); end; // vamos chamar a função recursiva // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin // vamos obter o resultado de 4 elevado a 3 ShowMessage('4 ao cubo é igual a: ' + IntToStr(potencia(4, 3))); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Números Aleatórios, Números Randômicos, Amostras Aleatórias, Amostras Randômicas |
Como gerar um número randômico em Python usando a função rand() do módulo random da NumPyQuantidade de visualizações: 731 vezes |
Em algumas situações nós precisamos gerar um número aleatório na faixa de 0 e 1 (não incluído). Para isso nós podemos usar a função rand() do módulo random da biblioteca NumPy do Python. Veja um exemplo:# importamos o módulo random da biblioteca NumPy import numpy as np # método principal def main(): # vamos gerar um número decimal aleatório de 0 (incluído) # à 1 (não incluído) valor = np.random.rand() print("O número sorteado foi: {0}".format(valor)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O número sorteado foi: 0.2037063569952866 Note que o número retornado pela função rand() é um float com uma precisão semelhante ao double em outras linguagens de programação. Veja agora uma modificação deste código para gerar 10 números aleatórios: # importamos o módulo random da biblioteca NumPy import numpy as np # método principal def main(): # vamos gerar 10 números decimais aleatórios de 0 (incluído) # à 1 (não incluído) for i in range(10): valor = np.random.rand() print("O número sorteado foi: {0}".format(valor)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O número sorteado foi: 0.57920714427429 O número sorteado foi: 0.06329414607318185 O número sorteado foi: 0.12184477988071851 O número sorteado foi: 0.5410663009618577 O número sorteado foi: 0.790229323250604 O número sorteado foi: 0.4733277307431061 O número sorteado foi: 0.7669969432159425 O número sorteado foi: 0.6934927410217504 O número sorteado foi: 0.13216036543343856 O número sorteado foi: 0.6958612722883786 |
C# ::: Windows Forms ::: DataGridView |
Como retornar a quantidade de linhas em um DataGridView do C# Windows FormsQuantidade de visualizações: 14880 vezes |
A quantidade de linhas em um DataGridView do C# Windows Forms pode ser obtida por meio da propriedade RowCount. Veja: private void button2_Click(object sender, EventArgs e){ // vamos adicionar três colunas no DataGridView dataGridView1.Columns.Add("cidade", "Cidade"); dataGridView1.Columns.Add("estado", "Estado"); dataGridView1.Columns.Add("populacao", "População"); // vamos adicionar três linhas dataGridView1.Rows.Add("Goiânia", "GO", "3.453,39"); dataGridView1.Rows.Add("Cuiabá", "MT", "1.876,12"); dataGridView1.Rows.Add("Curitiba", "PR", "5.346,98"); // não vamos permitir que o usuário adicione novas // linhas (o que daria uma linha a mais na nossa // contagem dataGridView1.AllowUserToAddRows = false; // vamos obter a quantidade de linhas no DataGridView int quant_linhas = dataGridView1.RowCount; // exibe o resultado MessageBox.Show("O DataGridView contém " + quant_linhas + " linhas"); } É possível também usar a propriedade RowCount para definir a quantidade de linhas em um DataGridView: dataGridView1.RowCount = 6; Há algumas considerações importantes sobre a propriedade RowCount: 1) Se seu valor for definido como 0, todas as linhas do DataGridView serão removidas; 2) Se o novo valor for menor que o valor atual, as linhas excedentes serão removidas no final da coleção Rows; 3) Se o novo valor for maior que o valor atual, as novas linhas serão adicionadas no final da coleção Rows; 4) Se tentarmos alterar o valor desta propriedade após a definição da propriedade DataSource, uma exceção InvalidOperationException será lançada. |
C ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em C - Como inserir antes de um determinado nó em uma lista encadeada simples usando CQuantidade de visualizações: 2044 vezes |
Em algumas situações nós precisamos inserir o novo nó antes de um determinado nó na lista encadeada simples. Veja, por exemplo, uma lista com o seguintes valores: 45 | 3 | 98 | 47 Suponha que queremos inserir o valor 50 antes do 98, então o novo conteúdo da lista será: 45 | 3 | 50 | 98 | 47 Observe que neste exemplo eu tratei o caso de inserir antes do primeiro nó, ou seja, antes do 45, mas não tratei a lista vazia. Há também a questão do laço infinito caso o usuário queira inserir antes de um nó não existente (não tratada). Veja o código completo: #include <stdio.h> #include <stdlib.h> // estrutura Nó struct No{ int valor; struct No *proximo; }; // fim da estrutura Nó // função que permite exibir os valores de // todos os nós da lista void exibir(struct No *n){ if(n != NULL){ do{ printf("%d\n", n->valor); n = n->proximo; }while(n != NULL); } else printf("A lista esta vazia\n\n"); } // função que permite inserir um novo nó // antes de um determinado valor struct No *inserir_antes_valor(struct No *n, int v, int v_antes){ // reserva memória para o novo nó struct No *novo = (struct No*)malloc(sizeof(struct No)); novo->valor = v; // guarda o nó antes do valor que procuramos struct No *anterior = NULL; struct No *temp = n; // aponta para o início da lista // enquanto for diferente do valor que estamos procurando while(temp->valor != v_antes){ anterior = temp; // anterior recebe temp // e temp recebe o seu próximo temp = temp->proximo; } // ATENÇÃO: não estamos tratando a condição // de lista vazia. Para isso veja minha dica // sobre como inserior no início da lista // devemos inserior no início da lista? if(anterior == NULL){ // o próximo do novo nó é o início da lista novo->proximo = n; n = novo; // início da lista é o novo nó } else{ // o proximo do anterior é o novo nó anterior->proximo = novo; // e o próximo do novo nó é temp novo->proximo = temp; } return n; } // função que permite inserir nós no // final da lista. // veja que a função recebe o valor a ser // armazenado em cada nó e um ponteiro para o // início da lista. A função retorna um // ponteiro para o início da lista struct No *inserir_final(struct No *n, int v){ // reserva memória para o novo nó struct No *novo = (struct No*)malloc(sizeof(struct No)); novo->valor = v; // verifica se a lista está vazia if(n == NULL){ // é o primeiro nó...não deve apontar para // lugar nenhum novo->proximo = NULL; return novo; // vamos retornar o novo nó como sendo o início da lista } else{ // não está vazia....vamos inserir o nó no final // o primeiro passo é chegarmos ao final da lista struct No *temp = n; // vamos obter uma referência ao primeiro nó // vamos varrer a lista até chegarmos ao último nó while(temp->proximo != NULL){ temp = temp->proximo; } // na saída do laço temp aponta para o último nó da lista // novo será o último nó da lista...o campo próximo dele deve // apontar para NULL novo->proximo = NULL; // vamos fazer o último nó apontar para o nó recém-criado temp->proximo = novo; return n; // vamos retornar o início da lista intacto } } int main(int argc, char *argv[]) { // declara a lista struct No *inicio = NULL; // vamos inserir quatro valores no final // da lista inicio = inserir_final(inicio, 45); inicio = inserir_final(inicio, 3); inicio = inserir_final(inicio, 98); inicio = inserir_final(inicio, 47); // vamos exibir a lista puts("Valores atuais:\n"); exibir(inicio); // vamos inserir o valor 50 antes do 98 inicio = inserir_antes_valor(inicio, 50, 98); // vamos exibir a lista novamente puts("\nValores agora:\n"); exibir(inicio); puts("\n\n"); system("pause"); return 0; } |
Python ::: Dicas & Truques ::: Arquivos e Diretórios |
Como criar um diretório em Python usando a função mkdir() do módulo osQuantidade de visualizações: 3200 vezes |
Podemos usar a função mkdir() do módulo os da linguagem Python para criarmos diretórios. Em sua versão mais simples, este método pede somente o nome e caminho do diretório a ser criado. Se o caminho for omitido, o novo diretório será criado no diretório atual, ou seja, o diretório da aplicação Python. Veja um exemplo no qual criamos um diretório chamado "app" no diretório "C:\estudos_python": # importa o módulo os import os # método principal def main(): # nome do diretório diretorio = "C:\\estudos_python\\app" # vamos criar o diretório os.mkdir(diretorio) # mostramos o resultado print('O diretório foi criado com sucesso.') if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: c:\estudos_python>python estudos.py O diretório foi criado com sucesso. Note que um erro do tipo FileExistsError será exibido se o diretório já existir: Traceback (most recent call last): File "c:\estudos_python\estudos.py", line 16, in <module> main() File "c:\estudos_python\estudos.py", line 10, in main os.mkdir(diretorio) FileExistsError: [WinError 183] Não é possível criar um arquivo já existente: 'C:\\estudos_python\\app' Uma forma de evitar este erro é verificar se o diretório já existe ou usar uma construção try...except. Veja: # importa o módulo os import os # método principal def main(): # nome do diretório diretorio = "C:\\estudos_python\\app" try: # vamos criar o diretório os.mkdir(diretorio) # mostramos o resultado print('O diretório foi criado com sucesso.') except os.error as error_msg: print("Houve um erro: %s" % str(error_msg)) if __name__== "__main__": main() Execute o código novamente e veja como o tratamento de erro ficou mais elegante. |
Java ::: Pacote java.io ::: Console |
Java para iniciantes - Como usar a classe Console da linguagem JavaQuantidade de visualizações: 10015 vezes |
A classe Console, que é definida no pacote java.io como public e final, fornece métodos para acessar o dispositivo de console baseado em caracteres associado com a máquina virtual Java (JVM) sendo executada no momento. Um objeto desta classe é obtido por meio de uma chamada ao método console() da classe System. Veja:import java.io.Console; public class Estudos { public static void main(String[] args) { // vamos obter o console para a JVM atual Console console = System.console(); // vamos testar se o console foi obtido com sucesso if(console != null){ System.out.println("Console obtido com sucesso"); } else{ System.out.println("Não foi possível obter o console"); } } } É importante observar que, durante a autoria desta dica (Maio/2012), não é possível obter um objeto da classe Console executando a aplicação dentro do Netbeans e/ou Eclipse, somente executando a aplicação a partir da linha de comando ou outros editores, tais como o JCreator. A razão disso é que, tanto o Netbeans quanto o Eclipse executam a janela de console como um processo de fundo, afim de obter sua saída e exibir em suas próprias janelas. Veja a posição desta classe na hierarquia de classes da plataforma Java: java.lang.Object java.io.Console O fato de a máquina virtual ter um console ou não depende da plataforma na qual ela está sendo executada, e também na forma que a JVM foi invocada. Se a máquina virtual é iniciada a partir de uma janela de linha de comando interativa sem redirecionar os fluxos de entrada e saída padrão, então o console existirá e estará conectado ao teclado e tela a partir da qual a JVM foi lançada. Se a máquina virtual é iniciada automaticamente, por exemplo, como um gerenciador de agendamento de tarefas em segundo plano, então ela, em geral, não terá um console. Se a JVM atual tiver um console, então este é representado por uma instância única da classe Console, que pode ser obtida por meio de uma chamada ao método console() da classe System. Se nenhum dispositivo de console estiver disponível, uma chamada a este método retornará o valor null. Operações de leitura e escrita são sincronizadas para garantir a atomicidade das operações críticas. Assim, as chamadas aos métodos readLine(), readPassword(), format() e printf(), assim como operações de leitura, formatação e escrita nos objetos retornados pelos métodos reader() e writer() poderão causar bloqueios em cenários de múltiplas threads. Chamar close() nos objetos retornados pelos métodos reader() e writer() não fechará os fluxos destes objetos. Os métodos de leitura da classe Console retornam null quando o fim do fluxo de entrada de console é alcançado, por exemplo, ao digitar control-D no Linux/Unix ou control-Z no Windows. Operações de leitura subsequentes terão sucesso se caracteres adicionais forem inseridos mais tarde no dispositivo de entrada do console. |
Nossas 20 dicas & truques de programação mais populares |
TypeScript - Como calcular o coeficiente angular de uma reta em TypeScript dados dois pontos no plano cartesiano |
Você também poderá gostar das dicas e truques de programação abaixo |
C - Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C Laravel - Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2 VB.NET - Como inverter o conteúdo de uma string em VB.NET usando os métodos ToCharArray() e Reverse() |
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 |