Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
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: 44993 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>
|
Ruby ::: Dicas & Truques ::: Data e Hora |
Como construir uma data e hora em Ruby usando os métodos mktime() e local() da classe TimeQuantidade de visualizações: 7790 vezes |
|
Há situações em que precisamos trabalhar com datas e horas no passado ou futuro em Ruby. Para estas situações nós precisamos construir a data ou a data e a hora. Nesta dica mostrarei como usar os métodos mktime() e local() para esta finalidade. Os métodos mktime() e local() são sinônimos e ambos aceitam os seguintes argumentos: # argumentos para mktime Time.mktime(year [, month, day, hour, min, sec, usec) => time #argumentos para local Time.local(year [, month, day, hour, min, sec, usec]) => time Estes métodos criam um novo objeto Time baseado nos parâmetros fornecidos. As unidades de tempo são fornecidas em ordem inversa do mais longo para o mais curto: ano, mês, dia, horas, minutos, segundos e microsegundos. Todos os parâmetros, exceto ano, são opcionais. Quando não fornecidos, estes parâmetros são automaticamente inicializados com seus menores valores possíveis. O parâmetro de microsegundos (usec) pode ser ignorado em muitas arquiteturas. O valor para as horas deve estar na faixa 0..23 (formato 24 horas). Veja um trecho de código no qual usamos os métodos mktime() e local() para construir uma data e uma data e hora: # constrói uma data usando o método mktime # passando o ano, mês e dia hoje = Time.mktime(2008, 11, 22) # exibe o resultado puts "A data é: " + hoje.to_s # constrói uma data e hora usando o método mktime # passando o ano, mês, dia, horas, minutos e segundos hoje = Time.mktime(2008, 11, 22, 20, 25, 10) # exibe o resultado puts "A data e hora é: " + hoje.to_s Ao executar este código Ruby nós teremos o seguinte resultado: A data é: 2008-11-22 00:00:00 -0300 A data e hora é: 2008-11-22 20:25:10 -0300 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como converter de binário para decimal em Java usando o laço forQuantidade de visualizações: 6619 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que usa o laço for para converter um número binário (como uma String) em sua representação decimal (como um int). Peça ao usuário para informar um número binário e mostre o mesmo em decimal (como um int). Sua solução deve obrigatoriamente usar o laço for. Sua saída deverá ser parecida com: Informe um número binário: 1100 A representação decimal do valor binário 1100 é 12 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) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos ler o número binário (como uma String)
System.out.print("Informe um número binário: ");
String bin = entrada.nextLine();
int decimal = 0; // guarda a representação decimal
// vamos percorrer todos os dígitos do número binário começando do início
for(int i = 0, exp = bin.length() - 1; i < bin.length(); i++, exp--){
// converte o caractere atual para inteiro
int temp = Character.digit(bin.charAt(i), 10);
decimal = decimal + (temp * (int)Math.pow(2, exp));
}
System.out.println("A representação decimal do valor binário "
+ bin + " é " + decimal);
}
}
|
Java ::: Coleções (Collections) ::: ArrayList |
Como testar se um valor está contido em uma ArrayList do Java usando a função contains()Quantidade de visualizações: 19969 vezes |
|
Em algumas situações nós queremos verificar se um determinado valor está contido em um dos elementos da ArrayList. Para isso nós podemos usar o método contains(), que retorna true se o valor existir e false em caso contrário. Veja um exemplo de seu uso:
package estudos_java;
import java.util.ArrayList;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá inteiros
ArrayList<Integer> valores = new ArrayList<>();
// adiciona itens na lista
valores.add(34);
valores.add(12);
valores.add(8);
valores.add(23);
// Verifica se um determinado
if(valores.contains(12)){
System.out.println("O valor foi encontrado.");
}
else{
System.out.println("O valor não foi encontrado.");
}
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: O valor pesquisado foi encontrado. |
Delphi ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
Como abrir e fechar um dispositivo de saída MIDI usando DelphiQuantidade de visualizações: 11678 vezes |
Quando queremos executar sons MIDI no Windows, a primeira tarefa a ser realizada é abrir o dispositivo de saída MIDI. Isso é feito com uma chamada à função midiOutOpen() da API do Windows. Veja sua assinatura (em C):MMRESULT midiOutOpen( LPHMIDIOUT lphmo, UINT_PTR uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwCallbackInstance, DWORD dwFlags ); Esta função está traduzida na unit MMSystem.pas do Delphi da seguinte forma: function midiOutOpen(lphMidiOut: PHMIDIOUT; uDeviceID: UINT; dwCallback, dwInstance, dwFlags: DWORD): MMRESULT; stdcall; Antes de continuarmos, vamos entender os parâmetros desta função: lphmo - Este é um ponteiro para um HMIDIOUT (que é simplemente um Integer). Este ponteiro é preenchido com um handle identificando o dispositivo de saída MIDI aberto. Este handle é usado para identificar o dispositivo nas demais chamadas de saída MIDI. uDeviceID - Identificador do dispositivo de saída MIDI a ser aberto. O valor 0 aqui é seguro, visto que este identifica o primeiro dispositivo na lista de dispositivos de saída. Veja minha dica "Como obter uma lista dos dispositivos de saída MIDI no sistema" para mais informações. dwCallback - Um ponteiro para uma função de callback, um handle de evento, um identificador de thread ou um handle para uma janela ou thread chamada durante o playback do MIDI para processar mensagens relacionadas ao processo de playback. Se não houver nada a ser processado, podemos definir o valor 0 para este parâmetro. Dê uma olhada na minha dica relacionada à função MidiOutProc(). dwCallbackInstance - Dados de instância do usuário passados para a função de callback. Este parâmetro não é usado em callbacks de janela e thread. É seguro manter seu valor como 0. dwFlags - Flag de callback para abrir o dispositivo. Por enquanto vamos manter seu valor como CALLBACK_NULL. Veja minhas outras dicas sobre o assunto para aprofundar mais neste parâmetro. Agora que aprendemos mais sobre os parâmetros da função midiOutOpen(), vamos ver como usá-la para abrir um dispositivo de saída MIDI e tocar a nota DÓ média (aquela no meio da escala de notas possíveis). Veja o código completo para a unit:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MMSystem;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
dispositivo: HMIDIOUT; // dispositivo de saída MIDI
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var
erro: Word;
begin
erro := midiOutOpen(@dispositivo, 0, 0, 0, CALLBACK_NULL);
// houve erro na abertura do dispositivo de saída MIDI?
if (erro <> 0) then
begin
ShowMessage('Não foi possível abrir o dispositivo MIDI. Erro: ' + IntToStr(erro));
end
else
begin
ShowMessage('Dispositivo MIDI aberto com sucesso.');
// vamos tocar uma nota para nos certificarmos de que o dispositivo
// realmente foi aberto e está funcionando
// vamos tocar a nota DÓ média e com velocidade máxima
midiOutShortMsg(dispositivo, rgb($90, 60, 127));
// vamos deixar a nota soar um pouco
sleep(1000);
// vamos silenciar a nota
midiOutShortMsg(dispositivo, rgb($80, 60, 0));
// finalmente vamos fechar o dispositivo MIDI
midiOutClose(dispositivo);
end;
end;
end.
O primeiro passo foi declarar uma variável do tipo HMIDIOUT: dispositivo: HMIDIOUT; Este é o dispositivo de saída que será usado nas demais chamadas MIDI, incluindo a função midiOutClose(), usada para fechar o dispositivo: midiOutClose(dispositivo); Na API do Windows está função está declarada da seguinte forma: MMRESULT midiOutClose( HMIDIOUT hmo ); Na unit MMSystem.pas do Delphi está função está traduzida da seguinte forma: function midiOutClose(hMidiOut: HMIDIOUT): MMRESULT; stdcall; Veja que só precisamos fornecer o nome da variável representando o dispositivo de saída MIDI aberto no momento para que a função se encarregue de fechá-lo. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
|
Java - Como calcular juros simples e composto - Calculando juros simples e montante na linguagem Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







