![]() |
|
|
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 Cards de Hidrologia |
||
|
||
|
|
||
Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar métodos e variáveis de classes em Ruby - Programação Orientada a Objetos em RubyQuantidade de visualizações: 8737 vezes |
|
Variáveis e métodos de classe, ao contrário de variáveis e métodos de instâncias, pertencem às classes e não às suas instâncias. Desta forma, uma variável ou método de classe é compartilhado por todos os objetos criados a partir de tal classe. Para que você entenda melhor, o exemplo abaixo mostra uma classe que contém uma variável e um método de classe. Execute o código e veja como o valor de @@quant_clientes é incrementado todas as vezes que um novo objeto da classe Cliente é criado:
# vamos criar a classe Cliente
class Cliente
# variável de classe
@@quant_clientes = 0;
def initialize
@@quant_clientes = @@quant_clientes + 1
end
# método de classe
def Cliente.obter_quant_clientes
@@quant_clientes
end
end
# vamos criar três objetos da classe Cliente
cliente1 = Cliente.new
cliente2 = Cliente.new
cliente3 = Cliente.new
# vamos obter a quantidade de clientes criados
quant = Cliente.obter_quant_clientes
# exibe o resultado
puts "Há " + quant.to_s + " clientes criados"
Ao executar este código Ruby nós teremos o seguinte resultado: Há 3 clientes criados |
React ::: Elementos de Formulários HTML ::: input type text Element/Object |
Como obter o conteúdo de uma caixa de texto em React usando a função useRef() para acessar os elementos HTMLQuantidade de visualizações: 1191 vezes |
|
Nesta dica mostrarei como podemos usar useRef() para criar uma referência para um elemento HTML <input type="text">. Em seguida nós vamos usar a propriedade current.value para retornar o conteúdo da caixa de texto e atualizar o estado nomeAtualizado, criado a partir da função useState(). Este código, embora simples, é o ponto de partida para aplicações React bem interessantes, pois não fazemos uso do evento onChange das caixas de texto para atualizar o estado da aplicação. Isso, como é fácil de se perceber, economiza os recursos gastos em processamento desnecessário. Veja o código para App.js:
// vamos importar o useState e useRef
import {useState, useRef} from 'react';
// função App() que será exportada
export default function App() {
// vamos criar uma referência para a caixa
// de texto. Veja que esta referência será
// usada na declaração do elemento input type text
const txtNome = useRef(null);
// vamos usar um estado para guardarmos o conteúdo
// da caixa de texto
const [nomeAtualizado, setNomeAtualizado] = useState('');
// aqui nós gerenciamos o evento onClick do botão
const tratarEventoClick = () => {
// vamos obter o conteúdo da caixa de texto
// usando "txtNome.current.value"
setNomeAtualizado(txtNome.current.value);
};
// e retornamos para renderização
return (
<div>
<input type="text"
id="nome" name="nome"
ref={txtNome}/>
<h2>Nome Atualizado: {nomeAtualizado}</h2>
<button onClick={tratarEventoClick}>
Atualizar Estado</button>
</div>
);
}
E aqui está o código para o index.js:
// vamos fazer os imports necessários
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
// definimos a raiz da aplicação React
const root = ReactDOM.createRoot(
document.getElementById('root'));
// e renderizamos a aplicação no navegador
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
Execute a aplicação React, digite um nome na caixa de texto e clique o botão Atualizar Estado. Somente neste momento é que o conteúdo da caixa de texto será transferido para o estado nomeAtualizado e refletido no elemento <h2>. |
Java ::: Dicas & Truques ::: Data e Hora |
Como validar uma data em Java usando a classe GregorianCalendarQuantidade de visualizações: 13741 vezes |
Esta dica mostra a você como validar uma data em Java usando a classe GregorianCalendar. Veja que estamos usando o método set() para atribuir valores aos campos ano, mês e dia. Contudo, o valor para o dia está incorreto. Desta forma, ao chamarmos o método getTime() uma exceção do tipo IllegalArgumentException será lançada. Veja o código:
import java.util.*;
public class Estudos{
public static void main(String args[]){
try{
GregorianCalendar data = new GregorianCalendar();
data.setLenient(false);
data.set(GregorianCalendar.YEAR, 2008); // ano
data.set(GregorianCalendar.MONTH, 11); // mês
// dia inválido
data.set(GregorianCalendar.DATE, 32);
// a validação da data ocorre aqui
Date temp = data.getTime();
}
catch(Exception e){
System.out.println("Data inválida.");
e.printStackTrace();
}
}
}
Ao executarmos este código teremos o seguinte resultado: Data inválida. java.lang.IllegalArgumentException: DAY_OF_MONTH at java.util.GregorianCalendar.computeTime(Unknown Source) at java.util.Calendar.updateTime(Unknown Source) at java.util.Calendar.getTimeInMillis(Unknown Source) at java.util.Calendar.getTime(Unknown Source) at Estudos.main(Estudos.java:14) |
Java ::: Coleções (Collections) ::: ArrayList |
Java ArrayList - Como remover uma faixa de elementos de uma ArrayList simulando a função removeRange() do JavaQuantidade de visualizações: 9814 vezes |
|
Este exemplo mostra como remover uma faixa de elementos de uma ArrayList. Note que vamos simular o comportamento do método removeRange() da classe ArrayList. Este método é marcado como protected, o que nos possibilita acesso a ele somente se escrevermos uma classe que estende (extends) ArrayList. Veja o código completo para o exemplo:
package arquivodecodigos;
import java.util.ArrayList;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList<String> nomes = new ArrayList<>();
// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
nomes.add("Maria");
// exibe os elementos da ArrayList
System.out.println("Todos os elementos:");
for(int i = 0; i < nomes.size(); i++){
System.out.println(nomes.get(i));
}
// Vamos remover os elementos 2, 3 e 4
for(int i = 1; i < 4; i++){
nomes.remove(1);
}
// exibe os elementos da ArrayList
System.out.println("\nElementos restantes:");
for(int i = 0; i < nomes.size(); i++){
System.out.println(nomes.get(i));
}
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Todos os elementos: Carlos Maria Fernanda Osmar Maria Elementos restantes: Carlos Maria |
C ::: Estruturas de Dados ::: Lista Ligada Simples |
Estrutura de Dados em C - Como inserir nós no final de uma lista singularmente ligada em CQuantidade de visualizações: 8759 vezes |
Esta dica mostra como inserir nós no final de uma lista singularmente ligada. A estrutura usada para representar cada nó é a seguinte:
struct No{
int valor;
struct No *proximo;
};
Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no final quanto a exibição dos nós são feitas usando funções. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código:
#include <stdio.h>
#include <stdlib.h>
// estrutura Nó
struct No{
int valor;
struct No *proximo;
};
// fim da estrutura Nó
// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
if(n != NULL){
do{
printf("%d\n", n->valor);
n = n->proximo;
}while(n != NULL);
}
else
printf("A lista esta vazia\n\n");
}
// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
// reserva memória para o novo nó
struct No *novo = (struct No*)malloc(sizeof(struct No));
novo->valor = v;
// verifica se a lista está vazia
if(n == NULL){
// é o primeiro nó...não deve apontar para
// lugar nenhum
novo->proximo = NULL;
return novo; // vamos retornar o novo nó como sendo o início da lista
}
else{ // não está vazia....vamos inserir o nó no final
// o primeiro passo é chegarmos ao final da lista
struct No *temp = n; // vamos obter uma referência ao primeiro nó
// vamos varrer a lista até chegarmos ao último nó
while(temp->proximo != NULL){
temp = temp->proximo;
}
// na saída do laço temp aponta para o último nó da lista
// novo será o último nó da lista...o campo próximo dele deve
// apontar para NULL
novo->proximo = NULL;
// vamos fazer o último nó apontar para o nó recém-criado
temp->proximo = novo;
return n; // vamos retornar o início da lista intacto
}
}
int main(int argc, char *argv[])
{
// declara a lista
struct No *inicio = NULL;
// vamos inserir quatro valores no final
// da lista
inicio = inserir_final(inicio, 45);
inicio = inserir_final(inicio, 3);
inicio = inserir_final(inicio, 98);
inicio = inserir_final(inicio, 47);
// vamos exibir o resultado
exibir(inicio);
system("pause");
return 0;
}
|
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




