Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

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 regulares

Quantidade 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 Java

Quantidade 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 if

Quantidade 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ês

Quantidade 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
Resposta/Solução:

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 DateTime

Quantidade 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 PHP

Quantidade 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 30

Quantidade 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];
Escreva um programa C que preencha o segundo vetor de forma que a soma dos respectivos elementos individuais de cada vetor seja igual a 30.

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
Resposta/Solução:

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ância

Quantidade 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 PHP

Quantidade 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).

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

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

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 110 usuários muito felizes estudando em nosso site.