![]() |
|
|
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 Python |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como alocar memória dinâmica usando a função calloc() da linguagem CQuantidade de visualizações: 19369 vezes |
A função calloc() é bem parecida com a função malloc() e também é usada em C para alocarmos um bloco de memória. A diferença é que calloc() recebe a quantidade de elementos e o número de bytes do elemento e retorna um ponteiro do tipo void (genérico) para o início do bloco de memória obtido. Veja sua assinatura:void *calloc(size_t n, size_t size); Se a memória não puder se alocada, um ponteiro nulo (NULL) será retornado. É importante se lembrar de alguns conceitos antes de usar esta função. Suponhamos que você queira alocar memória para um único inteiro. Você poderia ter algo assim: // aloca memória para um int ponteiro = calloc(1, 4); Embora este código esteja correto, não é um boa idéia assumir que um inteiro terá sempre 4 bytes. Desta forma, é melhor usar o operador sizeof() para obter a quantidade de bytes em um inteiro em uma determinada arquitetura. Veja: // aloca memória para um int ponteiro = calloc(1, sizeof(int)); Eis o código completo para um aplicativo C que mostra como alocar memória para um inteiro e depois atribuir e obter o valor armazenado no bloco de memória alocado:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// ponteiro para uma variável do tipo inteiro
int *ponteiro;
// aloca memória para um int
ponteiro = calloc(1, sizeof(int));
// testa se a memória foi alocada com sucesso
if(ponteiro)
printf("Memoria alocada com sucesso.\n");
else
printf("Nao foi possivel alocar a memoria.\n");
// atribui valor à memória alocada
*ponteiro = 45;
// obtém o valor atribuído
printf("Valor: %d\n\n", *ponteiro);
// libera a memória
free(ponteiro);
system("PAUSE");
return 0;
}
Uma aplicação interessante da função calloc() é quando precisamos construir uma matriz dinâmica. Veja como isso é feito no código abaixo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
// quantidade de elementos na matriz
int quant = 10;
// ponteiro para o bloco de memória
int *ponteiro;
// aloca memória para uma matriz de inteiros
ponteiro = calloc(quant, sizeof(int));
// testa se a memória foi alocada com sucesso
if(ponteiro)
printf("Memoria alocada com sucesso.\n");
else{
printf("Nao foi possivel alocar a memoria.\n");
exit(1);
}
// atribui valores aos elementos do array
for(i = 0; i < quant; i++){
ponteiro[i] = i * 2;
}
// exibe os valores
for(i = 0; i < quant; i++){
printf("%d ", ponteiro[i]);
}
// libera a memória
free(ponteiro);
printf("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar o tipo de dados float do Java - Usando o tipo de dados float da linguagem JavaQuantidade de visualizações: 23153 vezes |
O tipo de dados float é usado quando precisamos armazenar números de ponto-flutuante (com parte fracionária) na faixa 1.401298464324817e-45f até 3.402823476638528860e+38f. Este tipo ocupa 32 bits na memória (o mesmo que um int) e possui precisão de 6 ou 7 dígitos significativos. Veja um exemplo de seu uso:
public class Estudos{
public static void main(String args[]){
float valor = 54.5f;
System.out.println("O valor da variável é: " +
valor);
System.exit(0);
}
}
Antes de prosseguir, veja que inserí a letra "f" (ou "F") após o valor literal atribuído à variável. Se retirássemos esta letra, o compilador emitiria a seguinte mensagem de erro:
Estudos.java:3: possible loss of precision
found : double
required: float
float valor = 54.5;
^
1 error
Isso acontece porque, por padrão, um literal de ponto-flutuante é no mínimo do tipo double. E um double não cabe em um float. A definição da letra "f" ou "F" informa ao compilador que estamos realmente definindo um literal float. O tipo de dados float pode ser convertido (sem a necessidade de cast) para os seguintes tipos: float -> double Se precisarmos converter o tipo float para os tipos char, byte, short, int ou long, teremos que lançar mão de uma coerção (cast), também conhecida como conversão forçada. Veja: float valor = 54.5f; int valor2 = (int)(valor); É preciso ficar atento ao fato de que uma coerção de um tipo de ponto-flutuante para um tipo integral (inteiro) resulta na perda da parte fracionária do valor que está sofrendo o cast. |
C ::: Dicas & Truques ::: Matemática e Estatística |
Como arredondar um valor de ponto-flutuante para cima usando a função ceil() da linguagem CQuantidade de visualizações: 15104 vezes |
|
A função ceil() da linguagem C é usada quando precisamos arredondar um valor de ponto-flutuante (com casas decimais) para cima. Esta função retorna o menor valor integral maior que o valor fornecido a ela. Note que, mesmo o retorno sendo um inteiro, ele virá encapsulado em um double. Para entender o funcionamento desta função, vamos considerar o valor 4.5. Ao aplicarmos a função ceil() a este valor, o retorno será 5.0. Isso pode ser comprovado no trecho de código abaixo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("O valor 4.5 arredondado para cima e %f",
ceil(4.5));
printf("\n\n");
system("pause");
return 0;
}
Ao executarmos este código teremos o seguinte resultado: O valor 4.5 arredondado para cima é 5.000000. |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizadaQuantidade de visualizações: 11 vezes |
|
Há muitos anos eu precisava remover espaços no final de uma string em JavaScript e percebi que o objeto String, na época, não oferecia a função trim(). Não me restou opção a não ser sentar e escrever o código na mão mesmo. Hoje em dia não precisamos mais dele, mas fica aí para que você entenda a lógica empregada na resolução do problema. Veja a página HTML completa com o exemplo:
<!doctype html>
<html>
<head>
<title>Strings em JavaScript</title>
</head>
<body>
<script type="text/javascript">
// função personalizada que remove os espaços
// no final de uma string
function trim_final(string){
// primeiro definimos o código do espaço
var espaco = String.fromCharCode(32);
// obtemos o tamanho da string
var tamanho = string.length;
// e criamos uma string temporária
var temp = "";
// a string está vazia?
if(tamanho < 0){
return "";
}
// uma variável temporária para percorrermos
// a string de trás para frente
var temp2 = tamanho - 1;
while(temp2 > -1){
if(string.charAt(temp2) == espaco){
// não faz nada
}
else{
temp = string.substring(0, temp2 + 1);
break;
}
// decrementamos a variável temp2
temp2--;
}
return temp;
}
// vamos testar a função trim_final()
var frase = "Gosto muito de JavaScript ";
document.write("Com espaços no final: " +
frase + "#" + "<br>");
// vamos remover os espaços no final da string
frase = trim_final(frase);
document.write("Sem espaços no final: " +
frase + "#" + "<br>");
</script>
</body>
</html>
Ao executar este código JavaScript nós teremos o seguinte resultado: Com espaços no final: Gosto muito de JavaScript # Sem espaços no final: Gosto muito de JavaScript# |
Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como remover elementos repetidos de um array em Ruby usando as funções uniq e uniq!Quantidade de visualizações: 10837 vezes |
|
Em algumas situações nós precisamos excluir os itens duplicados de um array em Ruby. Para isso nós podemos usar as funções uniq e uniq!. A função uniq remove os itens duplicados e retorna um novo array, enquanto uniq! opera no array original, ou seja, modificando seus valores. Veja o código Ruby completo para o exemplo: # Cria um array de inteiros com duplicações valores = [2, 3, 3, 5, 5, 6, 3] # Exibe os valores do array original puts "Os valores do array são:\n" valores.each do | valor | print valor.to_s + " " end # Obtém um novo array sem as duplicações valores2 = valores.uniq puts "\n\nO novo array sem repetições:\n" valores2.each do | valor | print valor.to_s + " " end # Remove as duplicações do array original valores.uniq! puts "\n\nO array original sem repetições:\n" valores.each do | valor | print valor.to_s + " " end Ao executar este código Ruby nós teremos o seguinte resultado: Os valores do array são: 2 3 3 5 5 6 3 O novo array sem repetições: 2 3 5 6 O array original sem repetições: 2 3 5 6 |
Desafios, Exercícios e Algoritmos Resolvidos de Ruby |
Veja mais Dicas e truques de Ruby |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



