![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Cards de Ética e Legislação Profissional |
||
|
||
|
|
||
C# ::: Dicas & Truques ::: Validação de Dados |
C# Windows Forms - Como validar o conteúdo de uma caixa de texto usando o evento Validating da classe ControlQuantidade de visualizações: 18182 vezes |
|
O evento Validating (disponível para todas as classes que herdam de System.Windows.Forms.Control) é muito útil quando precisamos verificar a validade dos valores inseridos nos controle Windows Forms. Neste exemplo mostrarei como usá-lo para validar o conteúdo de um TextBox. Aqui veremos como verificar se o conteúdo inserido é um valor inteiro válido. Tudo começa com a propriedade CausesValidation da classe Control. Esta propriedade nos permite definir se o controle provocará uma validação de seus dados quando o mesmo estiver prestes a perder o foco, ou seja, o usuário começara a interagir com outro controle após inserir dados no controle alvo da validação. Se o valor desta propriedade for true a validação ocorrerá. Em seguida voltamos nossa atenção para o evento Validating (também declarado originalmente na classe Control). Este evento é disparado quando a propriedade CausesValidation é true e o controle está prestes a perder o foco (o usuário está saindo para interagir com outro controle). Veja a ordem dos eventos quando estamos saindo do controle usando o teclado: a) Leave b) Validating c) Validated d) LostFocus Se estivermos saindo do controle usando o mouse (clicando em outro controle), a ordem é: a) Leave b) Validating c) Validated Veja um exemplo do uso do evento Validating de um TextBox:
private void textBox1_Validating(object sender, CancelEventArgs e){
MessageBox.Show("Meu conteúdo pode ser validado agora");
}
Experimente executar este código, coloque o foco na caixa de texto e depois "saia" para outro componente. Você verá a caixa de mensagem ser exibida. O tratador de evento Validating recebe um objeto da classe CancelEventArgs. Esta classe possui apenas uma propriedade chamada Cancel. Se o valor desta propriedade for definido como true, o evento Validating (e todos que viriam após ele) é cancelado. Isso faz com que o foco fique preso no controle até que o usuário informe o valor correto. Veja:
private void textBox1_Validating(object sender, CancelEventArgs e){
// vamos verificar se a caixa de texto contém um valor inteiro válido
try{
// vamos tentar converter o texto recebido em um valor inteiro
int valor = Int32.Parse(textBox1.Text);
MessageBox.Show("Validação ocorreu com sucesso!");
}
catch(FormatException fe){
// não conseguimos converter o texto em um valor inteiro
MessageBox.Show("Valor inválido! Tente novamente! " +
fe.Message.ToString());
// limpamos a caixa de texto
textBox1.Text = "";
// e "prendemos" o foco na caixa de texto
e.Cancel = true;
}
}
Neste trecho de código nós usamos um bloco try...catch para tentar converter o texto do TextBox em um valor inteiro. Se houver falha na conversão nós avisamos o usuário, limpamos a caixa de texto e forçamos o usuário a fazer a correção. Para finalizar, entra em cena o evento Validated. Este evento é disparado imediatamente após o evento Validating finalizar sua parte e é um bom lugar para avisarmos o usuário sobre o sucesso da validação ou remover quaisquer efeito visual que tenhamos inserido durante o processo de validação. Veja:
private void textBox1_Validating(object sender, CancelEventArgs e){
// vamos verificar se a caixa de texto contém um valor inteiro válido
try{
// vamos tentar converter o texto recebido em um valor inteiro
int valor = Int32.Parse(textBox1.Text);
}
catch(FormatException fe){
// não conseguimos converter o texto em um valor inteiro
MessageBox.Show("Valor inválido! Tente novamente! " +
fe.Message.ToString());
// limpamos a caixa de texto
textBox1.Text = "";
// e "prendemos" o foco na caixa de texto
e.Cancel = true;
}
}
private void textBox1_Validated(object sender, EventArgs e){
MessageBox.Show("Validação ocorreu com sucesso!");
}
Veja que tudo que fizemos aqui foi remover a mensagem de sucesso de validação do evento Validating para o evento Validated. |
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Dart - Escreva um programa Dart para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no arrayQuantidade de visualizações: 973 vezes |
|
Pergunta/Tarefa: Dado o seguinte vetor de inteiros: // vamos declarar e construir um vetor (List) de 8 inteiros List<int> valores = [0, 3, 0, 5, 7, 4, 0, 9]; Sua saída deverá ser parecida com: Vetor na ordem original: 0 3 0 5 7 4 0 9 Vetor com os zeros deslocados para o final: 3 5 7 4 9 0 0 0 Veja a resolução comentada deste exercício usando Dart:
// Vamos importar a biblioteca dart:io
import "dart:io";
void main(){
// vamos declarar e construir um vetor (List) de 8 inteiros
List<int> valores = [0, 3, 0, 5, 7, 4, 0, 9];
// vamos mostrar o vetor na ordem original
print("Vetor na ordem original:\n");
for(int i = 0; i < valores.length; i++){
stdout.write("${valores[i]} ");
}
// vamos inicializar j como 0 para que ele aponte para
// o primeiro elemento do vetor
int j = 0;
// agora o laço for percorre todos os elementos do vetor,
// incrementanto a variável i e deixando o j em 0
for(int i = 0; i < valores.length; i++){
// encontramos um valor que não é 0
if(valores[i] != 0){
// fazemos a troca entre os elementos nos índices
// i e j
int temp = valores[i];
valores[i] = valores[j];
valores[j] = temp;
// e avançamos o j para o elemento seguinte
j++;
}
}
// agora mostramos o resultado
print("\n\nVetor com os zeros deslocados para o final:\n");
for(int i = 0; i < valores.length; i++){
stdout.write("${valores[i]} ");
}
}
Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes. |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de VisuAlg - Como retornar o código ASCII associado a um caractere em VisuAlg - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 1399 vezes |
|
Pergunta/Tarefa: Escreva um programa VisuAlg que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em VisuAlg:
algoritmo "Como retornar código ASCII em VisuAlg"
var
// variáveis usadas na resolução do problema
ch: caractere
codigo: inteiro
inicio
// vamos pedir para o usuário informar uma letra, símbolo ou pontuação
escreva("Informe um caractere: ")
leia(ch)
// agora vamos obter o código ASCII correspondente
codigo <- Asc(ch)
// e mostramos o resultado
escreval("Você informou o caractere: ", ch)
escreval("O código ASCII correspondente é: ", codigo)
fimalgoritmo
O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
PHP para iniciantes - Como usar a usar o laço do...while em PHP - Como usar o laço do...while da linguagem PHPQuantidade de visualizações: 14794 vezes |
O laço do...while, ou loop do...while (faça...enquanto) da linguagem PHP é bem parecido com o laço while (enquanto). A diferença é que no do...while, a condição é testada no final da primeira iteração, o que garante que o laço será executado no mínimo uma vez. Veja um exemplo de seu uso:
<?
$valor = 1;
do{
echo $valor . "<br>";
$valor++;
}while($valor <= 10);
?>
Este laço exibirá o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Lembre-se que o teste de continuidade do laço do...while ocorre no final da primeira iteração, enquanto no laço while(), o teste de continuidade ocorre antes da primeira iteração. Dica revisada, atualizada e testada no PHP 8. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma substring está contida em uma string usando as funções ContainsStr() e AnsiContainsStr() do DelphiQuantidade de visualizações: 33149 vezes |
|
Em algumas situações precisamos verificar se uma substring está contida em uma string. Em Delphi isso pode ser feito com o auxílio da função ContainsStr() ou AnsiContainsStr(). Esta função requer a string alvo da pesquisa e a substring a ser pesquisada. O retorno será true se a substring estiver contida na string. Do contrário o retorno será false. Estas duas funções possuem as seguintes assinaturas: function ContainsStr(const AText, ASubText: string): Boolean; function AnsiContainsStr(const AText, ASubText: string): Boolean; Veja agora um exemplo de seu uso:
procedure TForm1.Button1Click(Sender: TObject);
var
frase: string;
begin
frase := 'Gosto muito de Delphi, PHP e Java';
// vamos verificar se a string contém a substring "PHP"
if AnsiContainsStr(frase, 'PHP') then
ShowMessage('A frase contem a substring indicada')
else
ShowMessage('A frase NÃO contem a substring indicada')
end;
Lembre-se de que esta função diferencia maiúsculas e minúsculas. Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



