![]() |
|
|
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. |
||
Delphi ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar ponteiros na linguagem Delphi - Aprenda a usar ponteiros em DelphiQuantidade de visualizações: 24449 vezes |
|
O Delphi, assim como C e C++ permite o uso de ponteiros, uma das ferramentas mais poderosas de programação e presente em códigos mais elaborados, tais como estruturas de dados. Para entender ponteiros, é preciso lembrarmos do conceito de variáveis. Uma variável, em determinados momentos, possui várias propriedades ou atributos, a saber, um nome, um valor e o tipo de dados que poderá ser armazenado na mesma. Uma variável possui também um endereço na memória do computador e o seu nome não é nada mais que um apelido para tal endereço. Ponteiros também possuem um nome, um valor e um tipo de dados. A diferença é que ponteiros, em vez de guardar valores tais como inteiros, strings, caracteres, etc, guardam o endereço de outras variáveis (ou o endereço de outros ponteiros, o que resulta em um ponteiro para um ponteiro). Assim, um ponteiro é uma forma indireta de se acessar o conteúdo de uma outra variável. Veja, por exemplo, as seguintes declarações de variáveis: var valor: integer; pvalor: ^integer; Aqui nós temos uma variável valor do tipo Integer e uma variável pvalor que é um ponteiro para um Integer. Veja agora como atribuir valores a estas variáveis:
procedure TForm1.Button1Click(Sender: TObject);
var
valor: integer;
pvalor: ^integer;
begin
// atribui um valor à variável valor
valor := 20;
// vamos atribuir à pvalor o endereço de valor
pvalor := @valor;
// vamos usar o ponteiro pvalor para alterar o
// valor de valor
pvalor^ := 30;
// vamos obter o novo valor da variável valor
ShowMessage('Valor de valor: ' + IntToStr(valor));
end;
Veja que usamos o operador @ para obtermos o endereço da variável valor e guardá-lo no ponteiro pvalor. Em seguida usamos o símbolo ^ para acessar o valor da variável para a qual o ponteiro está apontando. Este processo é chamado de desreferenciamento (dereferencing). Em resumo, o símbolo ^ pode ser usado de duas formas: na frente de um tipo de dados, para indicar que a variável está sendo declarada como ponteiro e após o nome de uma variável do tipo ponteiro para indicar que queremos acessar o valor da variável para a qual o ponteiro está apontando atualmente e não o valor do ponteiro, que seria simplesmente um valor inteiro representando um endereço de memória. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Excel ::: Fórmulas do Excel ::: Matemática e Estatística |
Como gerar números aleatórios no Excel usando a função ALEATÓRIO() - Excel para Matemática e EstatísticaQuantidade de visualizações: 1041 vezes |
|
A função ALEATÓRIO() do Excel pode ser usada quando queremos gerar um número randômico, ou seja, um número aleatório entre 0 e 1. Nesse caso o número gerado é um número real aleatório que inclui o 0 mas não inclui o 1. Para gerar um número randômico usando a função ALEATÓRIO, digite o conteúdo a seguir em uma célula ou na barra de fórmulas do Excel: =ALEATÓRIO() Pressione Enter ou Tab e você terá um resultado parecido com: 0,10075557 Note que a função ALEATÓRIO retorna um número aleatório real maior que ou igual a 0 e menor que 1 distribuído uniformemente. Um novo número aleatório real é retornado sempre que a planilha é calculada. |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução switch do C#Quantidade de visualizações: 26883 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();
}
|
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como criar e usar métodos estáticos em suas classes Java - Programação Orientada a Objetos em Java - Java OOPQuantidade de visualizações: 13951 vezes |
Como já vimos em outras dicas desta seção, uma classe Java possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:
package estudos;
// declaração da classe Produto
public class Produto {
private String nome;
private double preco;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância. Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. O método main() presente em todas as aplicações Java é um bom exemplo deste tipo de método. Métodos estáticos em Java podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo: Código para Pessoa.java:
package estudos;
// classe Pessoa com duas variáveis privadas e
// um método estático
public class Pessoa {
private String nome;
private int idade;
// um método estático que permite verificar a validade
// de um número de CPF
public static boolean isCPFValido(String cpf){
// alguns cálculos aqui
return true;
}
}
Veja agora como podemos chamar o método isCPFValido() sem a necessidade da criação de uma nova instância da classe Pessoa: Código para Main.java:
package estudos;
public class Main {
public static void main(String[] args) {
// vamos efetuar uma chamada ao método isCPFValido() sem
// criar uma instância da classe Pessoa
if(Pessoa.isCPFValido("12345")){
System.out.println("CPF Válido");
}
else{
System.out.println("CPF Inválido");
}
}
}
Note que o método estático isCPFValido() da classe Pessoa foi declarado assim: public static boolean isCPFValido(String cpf); Desta forma, podemos chamá-lo a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja: if(Pessoa.isCPFValido("12345")){} É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo:
// um método estático que permite verificar a validade
// de um número de CPF
public static boolean isCPFValido(String cpf){
// alguns cálculos aqui
// vamos acessar a variável não estática nome
nome = "Osmar J. Silva";
return true;
}
vai gerar o seguinte erro de compilação: Uncompilable source code - non-static variable nome cannot be referenced from a static context. Se usarmos this.nome a mensagem de erro de compilação será: Uncompilable source code - non-static variable this cannot be referenced from a static context. Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias. |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como exibir apenas dois dígitos após o ponto decimal em JavaScript usando a função toFixed() do objeto Number Java - Como inserir uma substring em uma string em Java usando o método insert() da classe StringBuffer Delphi - Como usar a propriedade Eof para verificar se estamos no último registro do TClientDataSet do Delphi |
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 |



