![]() |
|||||
|
Node.js ::: Node.js + MongoDB ::: Passos Iniciais |
Node.js MongoDB - Como instalar o driver do MongoDB no Node.js e efetuar uma conexão Node.js + MongoDBQuantidade de visualizações: 1528 vezes |
Assumindo que você já conhece o banco de dados MongoDB, já fez sua instalação e já está um pouco familiarizado com suas características, nesta dica mostrarei como podemos efetuar uma conexão Node.js + MongoDB. Este é o passo inicial para desenvolver aplicações MEAN (Mongo, Express, Angular, Node) ou MERN (Mongo, Express, React, Node). Note que, nessa dica, usarei apenas o MongoClient para efetuar a conexão com o banco de dados MongoDB. Em outras dicas eu abordo o Mongoose. Então vamos iniciar. A primeira coisa que temos que fazer é instalar o driver MongoDB. Assim, com o Node.js devidamente instalado e funcionando, e com o banco MongoDB em perfeito funcionamento também, abra uma janela de terminal e digite o comando: npm install mongodb Após alguns minutos, a instalação será concluída e teremos o seguinte resultado: + mongodb@3.6.4 added 17 packages from 9 contributors and audited 20 packages in 9.358s 1 package is looking for funding run `npm fund` for details found 0 vulnerabilities Agora já podemos escrever o código que efetua a conexão Node.js com o MongoDB. Abra o seu editor de códigos favorito e digite a listagem abaixo: // vamos obter uma referência ao MongoClient var MongoClient = require('mongodb').MongoClient; // vamos nos conectar à base de dados escola var url = 'mongodb://localhost:27017/escola'; // Vamos nos conectar ao servidor e base de dados. Atenção: Em caso de erro, a // função pode demorar a retornar, pois o Node.js pode pensar que é lentidão // na rede MongoClient.connect(url, {useUnifiedTopology: true}, function(err, db) { if(err){ console.log("Não foi possível efetuar a conexão. Erro: " + err); } else{ console.log("Conexão efetuada com sucesso."); } // finalmente vamos fechar a conexao if(db){ db.close(); } }); Salve este código como conexao.js e execute-o no Node.js (com o MongoDB rodando, é claro) com o seguinte comando: c:\estudos_nodejs>node conexao.js Se tudo correr bem você verá a mensagem: Conexão efetuada com sucesso. Veja que, nesse código, eu efetuei uma conexão com a base de dados escola. Se a porta e o servidor estiverem corretos (talvez você tenha que informar um usuário e senha também), a conexão será efetuada com sucesso mesmo que a base de dados não exista. Quando informamos uma base de dados inexistente, o MongoDB entende que queremos criá-la, mas ele só a cria de fato, quando solicitamos a criação de uma nova coleção. Em mais dicas dessa seção você aprenderá como criar coleções no MongoDB a partir de seus códigos Node.js. Até lá e bons estudos. |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma string é igual, maior ou menor que outra em C usando a função strcmp()Quantidade de visualizações: 22670 vezes |
A função strcmp() da linguagem C pode ser usada para verificar se uma string é igual, maior ou menor que outra. Esta função, presente no header string.h aceita duas strings e retorna um valor inteiro: 0 se as strings forem iguais; maior que 0 se a primeira string for maior que a segunda e menor que 0 se a primeira string for menor que a segunda. Veja um exemplo de seu uso: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ char palavra1[] = "Java"; char palavra2[] = "JavaScript"; if(strcmp(palavra1, palavra2) == 0){ printf("As palavras sao iguais"); } else if(strcmp(palavra1, palavra2) > 0){ printf("A primeira string e maior que a segunda"); } else if(strcmp(palavra1, palavra2) < 0){ printf("A segunda string e maior que a primeira"); } puts("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A segunda string é maior que a primeira. |
PHP ::: Fundamentos da Linguagem ::: Comentários |
Aprenda a programar em PHP - Como inserir comentários em seus códigos PHPQuantidade de visualizações: 16060 vezes |
Comentários em nossos códigos são sempre uma boa idéia. Primeiro porque, no momento que estávamos escrevendo, a lógica está fresca em nossa cabeça. Porém, alguns dias depois podemos não entender muito bem a estratégia usada na resolução de um determinado problema. A outra razão para o uso de comentários é facilitar o trabalho da pessoa que dará manutenção em nossos códigos, ou talvez permitir um melhor entendimento por parte do cliente que nos contratou para desenvolver uma determinada rotina. Comentários em PHP podem ser usados de três formas diferentes. Para comentários de múltiplas linhas, devemos usar a sintáxe da linguagem C/C++: <? /* Este é um exemplo de comentário de múltiplas linhas. Você pode usar quantas linhas quiser neste tipo de comentário. Este tipo de comentário é o mesmo usado na linguagem C/C++. */ $valor = 15; echo "O valor informado é: " . $valor; ?> Podemos usar comentários de uma linha apenas, usando a sintáxe da linguagem C++: <? $valor = 30; // Define o valor da variável echo "O valor informado é: " . $valor; // exibe resultado ?> A terceira forma de comentário usa o modelo de Shell: <? $valor = 120; # Define o valor da variável echo "O valor informado é: " . $valor; # exibe resultado ?> |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Java - Escreva um programa Java para ler as notas n1 e n2 de um aluno e calcule a sua média aritméticaQuantidade de visualizações: 473 vezes |
Pergunta/Tarefa: Escreva um programa Java para ler as notas n1 e n2 de um aluno e calcule a sua média aritmética. Se a média for igual ou superior a 7,0 mostre uma mensagem indicando que o aluno foi aprovado. Se a média for igual ou maior que 3,5 e inferior a 7,0 seu programa deverá indicar que o aluno ficou de exame. Uma média menor que 3,5 indica reprovação direta. No caso do exame, leia uma nota entre 0 e 10. Agora a média do aluno deverá ser a média entre a média anterior e a nota do exame. Se a nova média for igual ou superior a 5,0 o aluno estará aprovado. Caso contrário o aluno será reprovado. Use validação para evitar que o usuário informe notas inválidas, ou seja, notas menores que 0 ou maiores que 10. Caso notas inválidas sejam fornecidas seu programa deverá solicitar a nota novamente até que o usuário forneça notas válidas. Sua saída deverá ser parecida com: Informe a nota N1: 9.4 Informe a nota N2: 11 Nota inválida. Informe a nota N2: 8.3 A média do aluno é: 8.85 O aluno foi aprovado Informe a nota N1: 4.2 Informe a nota N2: 1.8 A média do aluno é: 3.0 O aluno reprovou direto. Informe a nota N1: 5.7 Informe a nota N2: 6 A média do aluno é: 5.85 Informe a nota do exame: 7 A média do aluno com o exame é: 6.425 O aluno foi aprovado após o exame. Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double n1, n2, media, exame; // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler a primeira nota System.out.print("Informe a nota N1: "); n1 = Double.parseDouble(entrada.nextLine()); // a nota é válida? while ((n1 < 0) || (n1 > 10)) { System.out.print("Nota inválida. Informe a nota N1: "); n1 = Double.parseDouble(entrada.nextLine()); } // vamos ler a segunda nota System.out.print("Informe a nota N2: "); n2 = Double.parseDouble(entrada.nextLine()); // a nota é válida? while ((n2 < 0) || (n2 > 10)) { System.out.print("Nota inválida. Informe a nota N2: "); n2 = Double.parseDouble(entrada.nextLine()); } // vamos calcular a média do aluno media = (n1 + n2) / 2.0; System.out.println("A média do aluno é: " + media); // o aluno foi aprovado? if (media >= 7.0) { System.out.println("O aluno foi aprovado"); } // o aluno ficou de exame? else if ((media >= 3.5) && (media < 7.0)){ // vamos ler a nota do exame System.out.print("Informe a nota do exame: "); exame = Double.parseDouble(entrada.nextLine()); // a nota é válida? while ((exame < 0) || (exame > 10)) { System.out.print("Nota inválida. Informe a nota do exame: "); exame = Double.parseDouble(entrada.nextLine()); } // calcula a nota média media = (media + exame) / 2.0; System.out.println("A média do aluno com o exame é: " + media); // o aluno foi aprovado após o exame? if (media >= 5.0) { System.out.println("O aluno foi aprovado após o exame."); } else { System.out.println("O aluno foi reprovado após o exame."); } } // reprovou direto else { System.out.println("O aluno reprovou direto."); } } } |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de C++ - Como testar se um ano é bissexto em C++ - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 484 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa C++ que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando C++: #include <iostream> using namespace std; // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas para resolver o problema int ano; // vamos solicitar que o usuário informe um ano cout << "Informe o ano: "; cin >> ano; // vamos verificar se o ano informado é bissexto if(((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){ cout << "O ano informado é bissexto."; } else{ cout << "O ano informado não é bissexto."; } cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
C# ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar sua primeira classe em C# - Programação Orientada a Objetos em C#Quantidade de visualizações: 34868 vezes |
O estudo da programação orientada a objeto em C# passa obrigatoriamente pela criação de sua primeira classe. E esta não é uma tarefa fácil para os iniciantes. Esta dica o guiará passo-a-passo pelas caminhos iniciais. Esta dica assume que você já sabe criar uma aplicação console ou Windows Forms no Visual C# 2005 ou 2008. Sendo assim, crie uma nova aplicação console e vamos criar o esqueleto da classe. Em Visual C# 2005 ou 2008, a forma mais comum de adicionar uma classe ao seu projeto é clicando com o botão direito no namespace do projeto (o primeiro filho do solution explorer) e escolhendo a opção Add -> Class. Em seguida dê o nome "Pessoa.cs" para a classe e clique o botão Add. Imediatamente o código inicial para a classe será exibido, contendo o namespace e alguns using padrões. Agora faça sua classe Pessoa parecida com o código abaixo (não altere nada em relação ao namespace): class Pessoa{ // varíáveis privadas para o nome // e idade da pessoa private string nome; private int idade; // método que permite definir o nome // da pessoa public void setNome(string nome){ this.nome = nome; } // método que permite definir a idade // da pessoa public void setIdade(int idade){ this.idade = idade; } // método que permite obter o nome // da pessoa public string getNome(){ return this.nome; } // método que permite obter a idade // da pessoa public int getIdade(){ return this.idade; } } Hora de testar a classe. Volte à classe principal da aplicação (aquela que contém o método Main) e faça as seguintes alterações: static void Main(string[] args){ // Cria uma instância da classe Pessoa Pessoa p = new Pessoa(); // Define um nome e idade para a pessoa p.setNome("Osmar J. Silva"); p.setIdade(37); // Obtém o nome e idade da pessoa string nome = p.getNome(); int idade = p.getIdade(); Console.WriteLine("Nome: " + nome + " - Idade: " + idade); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Funcionou? Agora tente refazer todo o processo, desta vez usando Windows Forms. |
Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a busca binária em Python - Pesquisa binária na linguagem PythonQuantidade de visualizações: 701 vezes |
A busca binária, ou pesquisa binária, é um algoritmo eficiente para encontrar um item em uma lista (vetor ou array) ordenada. Sim, os itens devem, obrigatoriamente, estar ordenados. O processo é bem simples. A busca binária começa a partir do meio da lista e compara o item nesta posição com o valor sendo pesquisado. Se o valor não for encontrado e for menor que o item no meio da lista, o algoritmo passa para a porção à esquerda da lista, eliminando, assim, metade dos elementos do vetor ou array (a porção maior que o valor pesquisado). Se o valor não for encontrado e for maior que o item no meio da lista, então a busca reinicia a partir da metade da sub-lista à direita (os itens maiores que o valor pesquisado). Essa divisão continua até que o valor seja encontrado ou não seja mais possível dividir a lista pela metade. Se um array ou vetor possuir 100 elementos e usarmos a busca binária nele, precisaremos efetuar no máximo 7 tentativas para encontrar o valor desejado. Se a lista possuir 4 bilhões de itens nós teremos que fazer no máximo 32 tentativas. Isso acontece porque a pesquisa binária é executada em tempo logarítmico, ou seja, log2 n, onde n é a quantidade de itens no vetor. Dessa forma, se tivemos 1.000 itens em um array, log2 1000 = 10 tentativas. Lembre-se de que, na programação log e log2 retornam resultados diferentes: log(10) = 2.302585092994046 enquanto log2(10) = 3.321928094887362. Na análise da busca binária nós usamos sempre log2. Vamos agora ver como podemos codificar a busca binária em Python. Veja o código a seguir: # função principal do programa def main(): # vamos criar uma lista ordenada de inteiros valores = [3, 5, 7, 8, 9, 12, 43, 50, 52, 60] print("Os valores da lista são: {0}".format(valores)) # vamos pedir o item a ser pesquisado numero = int(input("Informe o número a ser pesquisado: ")) # agora vamos pesquisar o número no array usando a pesquisa # binária # a variável esquerda aponta para o primeiro elemento do vetor esquerda = 0 # a variável direita aponta para o último elemento do vetor direita = len(valores) - 1 # para indicar se o valor foi encontrado encontrado = False # enquanto houver mais de um elemento a ser comparado while esquerda <= direita: # obtemos o elemento na metade da lista meio = (esquerda + direita) // 2 # fazemos a comparação if numero == valores[meio]: print("O número foi encontrado no índice {0}".format( meio)) encontrado = True break # sai do laço # o item atual é maior que o valor pesquisado? if valores[meio] > numero: direita = meio - 1 # o item atual é menor que o valor pesquisado? else: esquerda = meio + 1 # o valor foi encontrado? if not encontrado: print("O valor pesquisado não foi encontrado") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Os valores da lista são: [3, 5, 7, 8, 9, 12, 43, 50, 52, 60] Informe o número a ser pesquisado: 9 O número foi encontrado no índice 4 |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como criar vetores em PHP com a construção array() e usando inteiros como chavesQuantidade de visualizações: 8421 vezes |
A linguagem PHP nos permite criar vetores (arrays) e informar os valores inteiros que queremos como chaves, ou seja, não precisamos, obrigatoriamente, iniciar os índices dos elementos em 0. Veja o código a seguir: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $linguagens = array(10 => 'Java', 11 => 'Python', 12 => 'C++'); echo "A linguagem escolhida foi: " . $linguagens[11]; ?> </body> </html> Ao executar este código nós teremos o seguinte resultado: A linguagem escolhida foi: Python |
jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico |
jQuery para iniciantes - Como obter valores de elementos de formulários HTML usando a função val() do jQueryQuantidade de visualizações: 8601 vezes |
Nesta dica eu mostro como podemos usar o método val() da biblioteca jQuery para obter o conteúdo dos elementos de formulários HTML. Veja, por exemplo, como obter o conteúdo de uma caixa de texto com o id "nome": <script type="text/javascript"> <!-- function obterTexto(){ var texto = $('#nome').val(); window.alert(texto); } //--> </script> Lembre-se de que este método atuará apenas no primeiro da possível série de elementos retornados sob uma determinada condição. O retorno val() do jQuery é uma string. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando força-brutaQuantidade de visualizações: 640 vezes |
Pergunta/Tarefa: Dado o vetor: // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor depois do passo 1: 2 1 6 9 3 7 8 5 Rotação do vetor depois do passo 2: 5 2 1 6 9 3 7 8 Rotação do vetor depois do passo 3: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java: package estudos; public class Estudos { public static void main(String[] args) { // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; // mostramos o array na ordem original System.out.println("Array na ordem original:"); exibirVetor(valores); // vamos rotacionar o array 3 casas para a direita valores = rotacionarArray(valores, 3); // e mostramos o resultado System.out.println("Array depois de rotacionar 3 vezes:"); exibirVetor(valores); } // método usado para exibir o array public static void exibirVetor(int []vetor){ // percorremos cada elemento do vetor for (int i = 0; i < vetor.length; i++) { System.out.print(vetor[i] + " "); } System.out.println("\n"); } // método que recebe um vetor de inteiros e o rotaciona um // determinado número de vezes public static int[] rotacionarArray(int[] vetor, int n) { // um laço externo que repete a mesma quantidade de n for (int i = 0; i < n; i++) { // começamos no último elemento e regredimos até // o segundo elemento do vetor for (int j = vetor.length - 1; j > 0; j--) { // avançamos um elemento de cada vez para // a direita int temp = vetor[j]; vetor[j] = vetor[j - 1]; vetor[j - 1] = temp; } // mostramos o progresso System.out.println("Rotação do vetor depois do passo " + (i + 1) + ":"); exibirVetor(vetor); } return vetor; } } A solução que apresentamos aqui usa a força-bruta, isto é, uma solução não otimizada e pouco recomendada para arrays com um número exagerado de elementos. Por ser força-bruta, o laço interno percorre todos os elementos do vetor, trocando-os de lugares. Em outras dicas do site nós colocamos versões melhoradas deste código. |
Nossas 20 dicas & truques de programação mais populares |
Delphi - Como usar o evento OnDrawCell para controlar o desenho das células em um TStringGrid do Delphi C++ - Como obter o diretório atual usando a função GetCurrentDirectory() da API do Windows - C++ e WinAPI C - Como inverter (reverter) o conteúdo de uma string em C usando uma função str_reverse() personalizada |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Como carregar uma imagem em um BufferedImage do Java usando o método read() da classe ImageIO |
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 |