![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
JavaScript ::: Dicas & Truques ::: Validação de Formulários |
Validação de formulários em JavaScript - Como validar CPF (com pontos e hífen) usando expressões regularesQuantidade de visualizações: 44574 vezes |
Nesta dica mostrarei como podemos escrever uma função JavaScript para a validação de números de CPF, dessa vez usando pontos e o hífen. Isso é interessante porque, muitas vezes, o usuário copia seu CPF de outro lugar e cola nas caixas de texto de nossas aplicações. A pagina HTML que contém o formulário se parece com a imagem abaixo: ![]() E agora veja o código JavaScript completo para o exemplo, incluindo o código HTML para a página: <html> <head> <title>Estudando JavaScript</title> <style type="text/css"> input {margin-bottom: 3px; margin-top: 3px} </style> <script type="text/javascript"> function validarCPF(){ var cpf = document.cadastro.cpf.value; var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i; if(!filtro.test(cpf)){ window.alert("CPF inválido. Tente novamente."); return false; } cpf = remove(cpf, "."); cpf = remove(cpf, "-"); if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){ window.alert("CPF inválido. Tente novamente."); return false; } soma = 0; for(i = 0; i < 9; i++){ soma += parseInt(cpf.charAt(i)) * (10 - i); } resto = 11 - (soma % 11); if(resto == 10 || resto == 11){ resto = 0; } if(resto != parseInt(cpf.charAt(9))){ window.alert("CPF inválido. Tente novamente."); return false; } soma = 0; for(i = 0; i < 10; i ++){ soma += parseInt(cpf.charAt(i)) * (11 - i); } resto = 11 - (soma % 11); if(resto == 10 || resto == 11){ resto = 0; } if(resto != parseInt(cpf.charAt(10))){ window.alert("CPF inválido. Tente novamente."); return false; } window.alert("CPF válido. Muito obrigado."); return true; } function remove(str, sub) { i = str.indexOf(sub); r = ""; if (i == -1) return str; r += str.substring(0,i) + remove(str.substring(i + sub.length), sub); return r; } </script> </head> <body> <form name="cadastro" onSubmit="return validarCPF()"> Informe seu CPF (use os pontos e o hífen):<br> <input type="text" maxlength="14" name="cpf"> <input type="submit" value="Enviar!"> </form> </body> </html> |
Java ::: Topografia e Geoprocessamento ::: Passos Iniciais |
Como converter graus, minutos e segundos para graus decimais em JavaQuantidade de visualizações: 544 vezes |
Em algumas situações, principalmente em cálculos da Engenharia Civil e Topografia, nós precisamos converter graus, minutos e segundos para graus decimais. É comum chamarmos graus, minutos e segundos de DMS ou GMS, enquanto os graus decimais são chamados de UTM. Nesta dica veremos como converter 85º 42' 13.75'' para graus decimais. A fórmula que usaremos é a seguinte: \[\text{Graus decimais} = \text{Graus} + \frac{\text{Minutos}}{60} + \frac{\text{Segundos}}{3600} \] Veja agora o código Java completo que pede para o usuário informar os graus, os minutos e os segundos e mostra os graus decimais: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar os graus, minutos // e segundos System.out.print("Informe os graus: "); double graus = Double.parseDouble(entrada.nextLine()); System.out.print("Informe os minutos: "); double minutos = Double.parseDouble(entrada.nextLine()); System.out.print("Informe os segundos: "); double segundos = Double.parseDouble(entrada.nextLine()); // agora vamos calcular os graus decimais double grausDecimais = graus + (minutos / 60.0) + (segundos / 3600.0); // e agora mostramos o resultado System.out.println("Os graus decimais são: " + grausDecimais); } } Ao executar este código Java nós teremos o seguinte resultado: Informe os graus: 85 Informe os minutos: 42 Informe os segundos: 13.75 Os graus decimais são: 85.70381944444445 Fique atento ao sinal. Se o valor em graus, minutos e segundos possuir os caracteres "W" ou "S", então o valor em graus decimais deverá levar o sinal de negativo. |
LISP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como testar uma condição em Lisp usando a macro ifQuantidade de visualizações: 1146 vezes |
Nesta dica mostrarei como podemos usar a macro if da linguagem Common Lisp para testar uma condição. Por se tratar de um exemplo básico, não mostrarei um caminho alternativo, ou seja, a mensagem será exibido somente se a condição for satisfeita. Em outras dicas eu complemento com o desvio opcional. Veja um exemplo no qual solicitamos um número ao usuário e informamos se o valor lido é maior que 10: ; Vamos definir as variáveis que vamos ; usar no programa (defvar numero) ; Este é o programa principal (defun Estudos() ; Vamos ler o número (princ "Informe um número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável numero (setq numero (read)) ; vamos testar se este número é maior que 10 (if (> numero 10) (format t "~D é maior que 10~%" numero)) ; E mostramos o número informado (format t "O número informado foi: ~D" numero) ) ; Auto-executa a função Estudos() (Estudos) Ao executar este código Common Lisp nós teremos o seguinte resultado: Informe um número: 12 12 é maior que 10 O número informado foi: 12 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mêsQuantidade de visualizações: 11426 vezes |
Pergunta/Tarefa: Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o seu nome, o salário fixo e o salário no final do mês. Sua saída deverá ser parecida com: Nome do vendedor: CAMILA REIS Informe o salário fixo: 1850 Total de vendas efetuadas: 5000 Resultados: Nome do vendedor: CAMILA REIS Salário fixo: 1850.0 Salário final do mês: 2600.0 Veja a resolução deste exercício usando Java: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos ler o nome do vendedor System.out.print("Nome do vendedor: "); String nome = entrada.nextLine(); // vamos ler o salário fixo System.out.print("Informe o salário fixo: "); double salario_fixo = Double.parseDouble(entrada.nextLine()); // vamos o total de vendas efetuadas pelo vendedor System.out.print("Total de vendas efetuadas: "); double total_vendas = Double.parseDouble(entrada.nextLine()); // agora vamos calcular o total da comissão a ser paga double total_comissao = total_vendas * (15.0 / 100.0); // calculamos o salário final double salario_final = salario_fixo + total_comissao; // e mostramos os resultados System.out.println("\nResultados:\n"); System.out.println("Nome do vendedor: " + nome); System.out.println("Salário fixo: " + salario_fixo); System.out.println("Salário final do mês: " + salario_final); } } |
C# ::: Datas e Horas ::: DateTime |
Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da estrutura DateTimeQuantidade de visualizações: 7903 vezes |
Em algumas situações nossos códigos precisam adicionar ou subtrair dias de uma data. Isso pode ser feito com o auxílio do método AddDays() da estrutura DateTime. Este método recebe o número de dias a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações. Veja um trecho de código no qual adicionamos 5 dias à data atual: static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos adicionar 5 dias à data de hoje DateTime data_futura = hoje.AddDays(5); // exibe a data daqui a cinco dias System.Console.WriteLine("Daqui a 5 dias será {0:d}", data_futura); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } É possível também subtrair dias. Para isso só precisamos fornecer um valor negativo para o método AddDays(). Veja: static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos subtrair 7 dias da data de hoje DateTime data_passado = hoje.AddDays(-7); // exibe a data sete dias atrás System.Console.WriteLine("Há 7 dias era {0:d}", data_passado); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } Lembre-se, contudo, que o método AddDays() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar. |
PHP ::: Dicas & Truques ::: Data e Hora |
PHP para iniciantes - Como obter o número de dias em um mês e ano usando a função cal_days_in_month() do PHPQuantidade de visualizações: 87 vezes |
Em algumas situações nós precisamos saber quantos dias um determinado mês possui, talvez para exibir um calendário. Para isso nós podemos usar a função cal_days_in_month() da linguagem PHP. Esta função pede um tipo de calendário (geralmente CAL_GREGORIAN), um número indicando o mês (1 para janeiro, 2 para fevereiro, etc) e o ano). Veja o código completo para obter a quantidade de dias para o mês de fevereiro de 2021: <?php $ano = 2021; $mes = 2; // fevereiro $quant_dias = cal_days_in_month(CAL_GREGORIAN, $mes, $ano); echo "Há $quant_dias dias no mês e ano informados"; ?> Ao executarmos este código nós teremos o seguinte resultado: Há 28 dias no mês e ano informados |
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: 841 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; } |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução switch do C#Quantidade de visualizações: 26544 vezes |
A instrução switch da linguagem C# é útil quando queremos testar condições nas quais o uso de if..else if..else poderia ser considerado excessivo ou não aplicável. Esta instrução recebe uma variável como argumento e testa seu valor por meio de cláusulas case. Veja o exemplo: static void Main(string[] args){ Console.Write("Digite um número inteiro: "); int valor = int.Parse(Console.ReadLine()); switch(valor){ case 1: Console.WriteLine("Você digitou o valor 1"); break; case 2: Console.WriteLine("Você digitou o valor 2"); break; case 3: Console.WriteLine("Você digitou o valor 3"); break; default: Console.WriteLine("Valor incorreto."); break; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Note que a instrução switch possui uma cláusula default para os casos nos quais o valor da variável não estiver presente em nenhuma das cláusulas case. Observe também o uso da instrução break para evitar a avaliação das cláusulas seguintes àquela na qual o valor desejado foi encontrado. Qualquer objeto, valor ou tipo referência que puder ser convertido em um valor inteiro, caractere, enumeração (enum) ou string pode ser usado como argumento para uma instrução switch. Veja: static void Main(string[] args){ Console.Write("Digite uma letra: "); char letra = Char.Parse(Console.ReadLine().ToLower()); switch(letra){ case "a": Console.WriteLine("Você digitou a letra a"); break; case "b": Console.WriteLine("Você digitou a letra b"); break; case "c": Console.WriteLine("Você digitou a letra c"); break; default: Console.WriteLine("Letra inválida."); break; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } É possível haver cláusulas case vazias. Neste caso, o bloco de instruções é executado caso o valor da variável seja encontrado em qualquer uma das cláusulas. Veja: static void Main(string[] args){ Console.Write("Digite uma letra: "); char letra = Char.Parse(Console.ReadLine().ToLower()); switch(letra){ case "a": case "b": Console.WriteLine("Você digitou a ou b"); break; case "c": case "d": Console.WriteLine("Você digitou c ou d"); break; case "e": Console.WriteLine("Você digitou a letra e"); break; default: Console.WriteLine("Letra inválida."); break; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } |
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em Ruby: Classes, objetos, métodos e variáveis de instânciaQuantidade de visualizações: 11153 vezes |
A melhor forma de entender a programação orientada a objetos é começar com uma analogia simples. Suponha que você queira dirigir um carro e fazê-lo ir mais rápido pressionado o acelerador. O que deve acontecer antes que você seja capaz de fazer isso? Bem, antes que você possa dirigir um carro, alguém tem que projetá-lo. Um carro geralmente começa com desenhos feitos pelos engenheiros responsáveis por tal tarefa, tal qual a planta de uma casa. Tais desenhos incluem o projeto de um acelerador que possibilita ao carro ir mais rápido. O pedal do acelerador "oculta" os mecanismos complexos responsáveis por fazer o carro ir mais rápido, da mesma forma que o pedal de freio "oculta" os mecanismos que fazem o carro ir mais devagar e o volante "oculta" os mecanismos que fazem com que o carro possa virar para a direita ou esquerda. Isso permite que pessoas com pequeno ou nenhum conhecimento de motores possam facilmente dirigir um carro. Infelizmente, não é possível dirigir o projeto de um carro. Antes que possamos dirigí-lo, o carro deve ser construído a partir do projeto que o descreve. Um carro já finalizado tem um pedal de aceleração de verdade, que faz com que o carro vá mais rápido. Ainda assim, é preciso que o motorista pressione o pedal. O carro não acelerará por conta própria. Agora vamos usar nosso exemplo do carro para introduzir alguns conceitos de programação importantes à programação orientada a objetos. A execução de uma determinada tarefa em um programa exige um método ou função. O método (ou função) descreve os mecanismos que, na verdade, executam a tarefa. O método oculta tais mecanismos do usuário, da mesma forma que o pedal de aceleração de um carro oculta do motorista os mecanismos complexos que fazem com que um carro vá mais rápido. Em Ruby, começamos criando uma unidade de programa chamada classe para abrigar um método, da mesma forma que o projeto de um carro abriga o design do pedal de acelerador. Em uma classe fornecemos um ou mais métodos que são projetados para executar as tarefas da classe. Por exemplo, a classe que representa uma conta bancária poderia conter muitos métodos, incluindo um método para depositar dinheiro na conta, outro para retirar dinheiro, um terceiro para verificar o saldo, e assim por diante. Da mesma forma que não podemos dirigir o projeto de um carro, nós não podemos "dirigir" uma classe. Da mesma forma que alguém teve que construir um carro a partir de seu projeto antes que pudessémos dirigí-lo, devemos construir um objeto de uma classe antes de conseguirmos executar as tarefas descritas nela. Quando dirigimos um carro, o pressionamento do acelerador envia uma mensagem ao carro informando-o da tarefa a ser executada (neste caso informando-o de que queremos ir mais rápido). Da mesma forma, enviamos mensagens aos objetos de uma classe. Cada mensagem é uma chamada de método e informa ao objeto qual ou quais tarefas devem ser executadas. Até aqui nós usamos a analogia do carro para introduzir classes, objetos e métodos. Já é hora de saber que um carro possui atributos (propriedades) tais como cor, o número de portas, a quantidade de gasolina em seu tanque, a velocidade atual, etc. Tais atributos são representados como parte do projeto do carro. Quando o estamos dirigindo, estes atributos estão sempre associados ao carro que estamos usando, e cada carro construído a partir do projeto sofrerá variações nos valores destes atributos em um determinado momento. Da mesma forma, um objeto tem atributos associados a ele quando o usamos em um programa. Estes atributos são definidos na classe a partir da qual o objeto é instanciado (criado) e são chamados de variáveis de instância da classe. Veremos agora como definir uma classe em Ruby e usar um objeto desta classe em um programa. Veja o trecho de código abaixo: # Definição da classe Cliente class Cliente def definir_nome(nome) @nome = nome end def obter_nome @nome end end # Cria uma instância da classe Cliente cliente = Cliente.new # Efetua uma chamada ao método definir_nome cliente.definir_nome("Laura Maria dos Santos") # Efetua uma chamada ao método obter_nome print "O nome do cliente é " + cliente.obter_nome Ao executar este código Ruby nós teremos o seguinte resultado: O nome do cliente é Laura Maria dos Santos |
PHP ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em PHP - Como usar o modificador de acesso private em suas classes PHPQuantidade de visualizações: 8845 vezes |
O modificador private serve para indicar que as propriedades ou métodos (funções) de uma classe podem ser acessados somente por código residente na mesma classe. Veja um exemplo:<? class Pessoa{ private $nome; } $pessoa = new Pessoa; $pessoa->nome = "Osmar J. Silva"; ?> Ao executarmos este código teremos a seguinte mensagem de erro: Fatal error: Cannot access private property Pessoa::$nome in C:\Apache_Web_Server\htdocs\testes.php on line 7 Esse erro ocorre porque a variável $nome, por estar marcada com o modificador private, não pode ser acessada por código fora da classe. Veja agora um exemplo envolvendo um método privado: <? class Pessoa{ private function somar($a, $b){ return $a + $b; } } $pessoa = new Pessoa; echo $pessoa->somar(4, 2); ?> Ao executarmos este código, a seguinte mensagem de erro será exibida: Fatal error: Call to private method Pessoa::somar() from context '' in C:\Apache_Web_Server\htdocs\testes.php on line 9 Novamente, este erro é causado porque o método somar() não pode ser acessado por código fora da classe Pessoa. É importante notar, contudo, que as propriedades e métodos privados de uma classe não podem ser acessados nem mesmo por suas classes derivadas (sub-classes). |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como usar a propriedade parentNode para obter o objeto pai de um elemento na hierarquia do DOM do JavaScript Java - Como converter de octal para decimal usando o método parseInt() da classe Integer da linguagem Java Java - Exercícios Resolvidos de Java - Como converter decimal em binário em Java usando o laço while |
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 |