![]() |
|
|
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. |
||
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se uma matriz é simétrica em JavaQuantidade de visualizações: 1550 vezes |
|
Uma matriz simétrica é uma matriz que é igual à sua transposta. Para que esta definição faça sentido, apenas podemos considerar matrizes que são quadradas, ou seja, mesma quantidade de linhas e colunas. De forma mais precisa, se A=[aij] é uma matriz de ordem n x n, nós dizemos que A é simétrica quando A=At. Veja um código Java completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz simétrica:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args){
int n = 3; // ordem da matriz quadrada
int matriz[][] = new int[n][n]; // matriz quadrada
// para efetuar a leitura do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar os elementos da matriz
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++) {
System.out.print("Elemento na linha " + (i + 1) +
" e coluna " + (j + 1) + ": ");
matriz[i][j] = Integer.parseInt(entrada.nextLine());
}
}
// agora verificamos se a matriz é simétrica
boolean simetrica = true;
for (int i = 0; (i < n) && (simetrica); i++) {
for (int j = 0; (j < i) && (simetrica); j++) {
// os elementos em posicoes simetricas sao iguais?
if (matriz[i][j] != matriz[j][i]){
simetrica = false;
}
}
}
// agora mostramos a matriz lida
System.out.printf("\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.printf("%d ", matriz[i][j]);
}
System.out.printf("\n");
}
if (simetrica){
System.out.printf("\nA matriz informada é uma matriz simétrica.\n");
}
else{
System.out.printf("\nA matriz informada não é uma matriz simétrica.\n");
}
}
}
Ao executar este código Java nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 5 Elemento na linha 1 e coluna 2: 1 Elemento na linha 1 e coluna 3: 2 Elemento na linha 2 e coluna 1: 1 Elemento na linha 2 e coluna 2: 6 Elemento na linha 2 e coluna 3: 3 Elemento na linha 3 e coluna 1: 2 Elemento na linha 3 e coluna 2: 3 Elemento na linha 3 e coluna 3: 8 5 1 2 1 6 3 2 3 8 A matriz informada é uma matriz simétrica. |
React ::: Elementos de Formulários HTML ::: input type text Element/Object |
Como obter o texto digitado em uma caixa de texto em React usando useState()Quantidade de visualizações: 1122 vezes |
|
Nesta dica mostrarei como podemos retornar o texto digitado em um elemento HTML <input type="text"> ao clicarmos em um botão. Para isso nós faremos uso do gerencimento de estado proporcionado pelo objeto useState do React. Note que teremos dois estados: nome e nomeAtualizado, que estarão conectados às funções setNome() e setNomeAtualizado(). No momento que o texto é digitado na caixa de texto, automaticamente o estado nome é atualizado para corresponder ao contéudo exato do elemento HTML <input type="text">. Somente quando o botão é clicado é que transferimos o valor do estado nome para o estado nomeAtualizado, por meio de uma chamada à função setNomeAtualizado. Veja o código completo para o App.js:
// vamos importar o useState
import {useState} from 'react';
// função App() que será exportada
export default function App() {
// vamos criar dois states e suas funções
// correspondentes
const [nome, setNome] = useState('');
const [nomeAtualizado, setNomeAtualizado] = useState(nome);
// aqui nós gerenciamos o evento onChange da caixa
// de texto
const tratarEventoChange = (event) => {
// e chamamos a função que atualiza o estado nome
setNome(event.target.value);
};
// aqui nós gerenciamos o evento onClick do botão
const tratarEventoClick = () => {
// aqui nós transferimos o valor do estado
// nome para o estado nomeAtualizado
setNomeAtualizado(nome);
};
// e retornamos para renderização
return (
<div>
<input type="text"
id="nome" name="nome"
onChange={tratarEventoChange}
value={nome}/>
<h2>Nome Informado: {nome}</h2>
<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 o exemplo e você verá uma caixa de texto <input type="text">, um botão <button> e dois elementos <h2>. Quando digitamos na caixa de texto, automaticamente o estado nome é atualizado. Ao clicarmos no botão, o estado nome é transferido para o estado nomeAtualizado, tudo isso é refletido de imediato na página. |
Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet |
Como tornar o TClientDataSet do Delphi somente leitura usando a propriedade ReadOnlyQuantidade de visualizações: 12392 vezes |
|
Em algumas situações gostaríamos que um TClientDataSet fosse somente leitura, ou seja, não queremos permitir inserção, atualização ou exclusão dos dados do dataset. Para isso podemos usar a propriedade ReadOnly. Se seu valor for True, os dados do TClientDataSet serão apenas para leitura. Se o valor for False, os dados podem ser modificados e/ou novos dados podem ser inseridos no dataset. O valor padrão é False. Em tempo de design a propriedade ReadOnly do TClientDataSet pode ser ajustada selecionando-se o componente no formulário e acessando o Object Inspector. Em tempo de execução esta propriedade pode ser ajustada por meio do seguinte trecho de código: procedure TForm3.Button3Click(Sender: TObject); begin // vamos tornar o TClientDataSet somente leitura ClientDataSet1.ReadOnly := True; end; Se necessário, podemos obter o valor desta propriedade em tempo de execução da seguinte forma:
procedure TForm3.Button3Click(Sender: TObject);
begin
// vamos verificar se o TClientDataSet é somente leitura
if ClientDataSet1.ReadOnly then
ShowMessage('O ClientDataSet é somente leitura')
else
ShowMessage('O ClientDataSet NÃO é somente leitura')
end;
Ao executarmos este código e clicarmos no botão teremos uma mensagem parecida com: "O ClientDataSet NÃO é somente leitura". É importante observar que se tentarmos efetuar alguma operação que modifica o conteúdo de um TClientDataSet somente leitura nós teremos uma exceção do tipo: Project Project2.exe raised exception class EDatabaseError with message 'ClientDataSet1': Cannot modify a read-only dataset'. Quando ajustamos o valor da propriedade ReadOnly para True, automaticamente a propriedade CanModify do dataset é ajustada para False. Importante: Mesmo que o valor da propriedade ReadOnly seja False, os usuários ainda podem ser impedidos de modificar os dados de um client dataset se este obtém seus dados a partir de um provider (por exemplo: TDataSetProvider). A propriedade Options do provider pode limitar se os dados podem ser editados e, se puderem, os tipos de alterações permitidos. Esta dica foi escrita e testada no Delphi 2009. |
Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o ponto médio entre dois pontos no plano usando Java - Geometria com JavaQuantidade de visualizações: 3862 vezes |
|
Nesta dica mostrarei como é possível usar um trecho de código Java para obter o ponto médio entre dois pontos quaisquer no plano, ou seja, no R2. Em mais dicas dessa seção você aprenderá como isso pode ser feito no R3 (espaço) Comece analisando a figura abaixo, na qual temos dois pontos A e B, com suas coordenadas correspondentes, e o ponto médio M: ![]() Assim, dados dois pontos A = (2, 9) e B = (10, 2) no plano cartesiano R2, as coordenadas x e y do ponto médio são calculadas por meio da seguinte fórmula: \[x = \frac{x_1 + x_2}{2}\] \[y = \frac{y_1 + y_2}{2}\] Colocando na fórmula os valores que já temos: \[x = \frac{2 + 10}{2} = \frac{12}{2} = 6 \] \[y = \frac{9 + 2}{2} = \frac{11}{2} = 5.5 \] Assim, as coordenadas do ponto médio será (x = 6, y = 5.5). E agora veja o código Java completo para calcular as coordenadas do ponto médio a partir de dois pontos no plano cartesiano (plano 2D ou R2):
package arquivodecodigos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args){
Scanner entrada = new Scanner(System.in);
// x e y do primeiro ponto
System.out.print("Coordenada x do primeiro ponto: ");
float x1 = Float.parseFloat(entrada.nextLine());
System.out.print("Coordenada y do primeiro ponto: ");
float y1 = Float.parseFloat(entrada.nextLine());
// x e y do segundo ponto
System.out.print("Coordenada x do segundo ponto: ");
float x2 = Float.parseFloat(entrada.nextLine());
System.out.print("Coordenada y do segundo ponto: ");
float y2 = Float.parseFloat(entrada.nextLine());
// vamos calcular as coordenadas x e y do ponto médio
float x = (x1 + x2) / 2;
float y = (y1 + y2) / 2;
// vamos mostrar o resultado
System.out.println("As coordenadas do ponto médio são: (x = " +
x + ", y = " + y + ")");
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 2 Coordenada y do primeiro ponto: 9 Coordenada x do segundo ponto: 10 Coordenada y do segundo ponto: 2 As coordenadas do ponto médio são: (x = 6.0, y = 5.5) |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScript Java - Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Delphi para matemática - Como arredondar valores de ponto-flutuante para cima usando a função Ceil() |
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 |




