![]() |
|
|
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 Hidrostática |
||
|
||
|
|
||
C# ::: C# + MySQL ::: MySqlCommand |
Como gravar dados em uma tabela MySQL usando INSERT INTO e o comando ExecuteNonQuery() da classe MySqlCommand do C#Quantidade de visualizações: 1544 vezes |
|
Nesta dica mostrarei como inserir dados em uma tabela MySQL usando o comando SQL INSERT INTO e o comando ExecuteNonQuery() da classe MySqlCommand do C#. A tabela usada no exemplo contém os campos id, titulo, autor, paginas, data_cadastro. O campo id é auto-incremento e o campo data_cadastro é do tipo DATETIME. Por essa razão eu passei os valores NULL para o campo auto-incremento e o valor NOW() para o campo data_cadastro, de forma que a data e hora atual sejam gravadas. Como se trata de uma operação INSERT, o método ExecuteNonQuery() retorna a quantidade de registros afetados pelo comando. No exemplo eu mostro como obter e exibir este valor. Veja o código completo para o exemplo (incluindo a conexão com o banco de dados MySQL a partir do C#):
using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace EstudosMySQL {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
// objeto de conexão
MySqlConnection conn = null;
// string de conexão
string connStr = "server=localhost;user id=root; " +
"password=osmar1234; database=estudos; pooling=false";
try {
conn = new MySqlConnection(connStr);
conn.Open();
if (conn.State == ConnectionState.Open) {
// primeiro criamos um novo objeto MySqlCommand
MySqlCommand comando = new MySqlCommand();
// definimos a conexão para este comando
comando.Connection = conn;
// definimos o comando SQL a ser executado
comando.CommandText = "INSERT INTO livros (id, titulo, " +
autor, paginas, data_cadastro) " +
"VALUES(NULL, 'JAVA PARA INICIANTES', " +
"'OSMAR J. SILVA', 740, NOW())";
// e executamos o comando SQL
int res = comando.ExecuteNonQuery();
if (res > 0) {
MessageBox.Show("Operação realizada com sucesso. "
+ res + " linhas afetadas.");
}
else {
MessageBox.Show("Deve ter acontecido alguma coisa. "
+ res + " linhas afetadas.");
}
}
}
catch (MySqlException ex) {
MessageBox.Show("Erro: " +
ex.Message);
}
}
}
}
|
C# ::: Windows Forms ::: TextBox |
C# Windows Forms - Como criar uma caixa de texto TextBox do tipo senha (password)Quantidade de visualizações: 14891 vezes |
Algumas vezes precisamos fazer com que um TextBox se comporte como uma caixa de texto do tipo senha. Para isso só precisamos manipular sua propriedade PasswordChar. Esta propriedade pode ser definida em tempo de design (usando a janela de propriedades Properties) ou em tempo de execução. Veja:
private void button2_Click(object sender, EventArgs e){
// vamos definir o caractere a ser usado como máscara para a
// digitação dos caracteres de senha
textBox1.PasswordChar = '*';
}
Em tempo de execução o valor da propriedade PasswordChar pode ser obtido da seguinte forma:
private void button2_Click(object sender, EventArgs e){
// vamos definir o caractere a ser usado como máscara para a
// digitação dos caracteres de senha
textBox1.PasswordChar = '*';
// vamos obter o caractere usado como máscara para a digitação
// dos caracteres de senha
char letra = textBox1.PasswordChar;
MessageBox.Show("O caractere usado para a propriedade PasswordChar é: " +
letra);
}
É possível também forçar o TextBox a usar o caractere de senha usado pelo Windows. Para isso só precisamos fornecer o valor true para a propriedade UseSystemPasswordChar. Veja:
private void button2_Click(object sender, EventArgs e){
// queremos que o caractere usado como máscara para a digitação
// de senhas seja o mesmo do sistema
textBox1.UseSystemPasswordChar = true;
}
|
C ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções |
Apostila C para iniciantes - Como escrever suas próprias funções em CQuantidade de visualizações: 11314 vezes |
|
As funções na linguagem C têm por objetivo dividir nossos programas em partes menores. Em vez de colocar todo o nosso código na função main() nós podemos criar nossas próprias funções e, desta forma, agrupar funcionalidades relacionadas. Suponha que estejamos desenvolvendo um editor de texto em C. Poderíamos então ter funções que abrem o arquivo a ser exibido no editor, que salvam o arquivo, que verificam se houve alterações no texto, etc. E a maior vantagem disso é que conseguimos promover o reaproveitamento de código, uma vez que, diferente da função main(), as funções disponíveis na linguagem e aquelas que nós mesmos criamos podem ser chamadas mais de uma vez durante a execução do programa. Então, já sabemos que uma função não é nada mais que um bloco de códigos situado fora da função main() e que pode ser chamado a partir da função main() ou de outras funções no programa. Sendo assim, vamos escrever nossa primeira função em C. Veja o código a seguir:
#include <stdio.h>
#include <stdlib.h>
// uma função que escreve uma frase
// na tela
void escrever(void){
printf("Sou uma funcao");
}
int main(int argc, char *argv[]){
// efetua uma chamada à função escrever
escrever();
puts("\n\n");
system("PAUSE");
return 0;
}
Neste programa nós temos uma função chamada escrever() que apenas escreve uma frase na tela. Note o uso de void para indicar que a função não retorna nada e não aceita nenhum argumento. Alguns compiladores (tais como Dev-C++) não exigem que coloquemos void para indicar a ausência de parâmetros na função. Assim, a função acima pode ser reescrita da seguinte forma:
void escrever(){
printf("Sou uma funcao");
}
Importante notar que, dentro do corpo de uma função, podemos inserir a quantidade de código que desejarmos. Isso é importante, uma vez que a tarefa realizada por uma função pode não ser tão simples quanto o exemplo que usamos até este ponto. Veja um programa que contém uma função personalizada mais elaborada. Note as duas chamadas a esta função a partir da função main():
#include <stdio.h>
#include <stdlib.h>
// uma função que escreve uma frase
// na tela
void escrever(){
char nome[] = "Osmar J. Silva";
printf("Ola, meu nome e %s\n", nome);
}
int main(int argc, char *argv[]){
printf("Sou main. Vou chamar a funcao escrever()\n");
// efetua uma chamada à função escrever
escrever();
// efetua outra chamada à função escrever
escrever();
printf("Acabei de efetuar chamadas a funcao escrever()");
puts("\n\n");
system("PAUSE");
return 0;
}
Funções podem receber argumentos e retornar valores. E quando isso acontece nós estamos realmente escrevendo funções úteis. Quando perceber que já aprendeu a escrever funções simples como as demonstradas nesta dica, volte sua atenção para as funções mais elaboradas que tratamos em outras dicas relacionadas. |
Dart ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Dart usando o método cos() da biblioteca Math - Calculadora de cosseno em DartQuantidade de visualizações: 1198 vezes |
|
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Dart. Esta método, que faz parte da biblioteca Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:
// vamos importar a biblioteca dart:math
import "dart:math";
void main(){
print("Cosseno de 0 = " + cos(0).toString());
print("Cosseno de 1 = " + cos(1).toString());
print("Cosseno de 2 = " + cos(2).toString());
}
Ao executar este código Dart nós teremos o seguinte resultado: Cosseno de 0 = 1.0 Cosseno de 1 = 0.5403023058681398 Cosseno de 2 = -0.4161468365471424 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: ![]() |
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: 1046 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. |
Veja mais Dicas e truques de React |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






