![]() |
|
|
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. |
||
C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios |
Arquivos e diretórios em C++ - Como escrever em arquivos usando a função WriteFile() da API do WindowsQuantidade de visualizações: 9713 vezes |
|
A função WriteFile() da Win32 API é útil quando precisamos escrever em arquivos. Esta função foi projetada para escritas síncronas e assíncronas, enquanto WriteFileEx() é somente para escritas assíncronas. Veja o protótipo desta função: BOOL WINAPI WriteFile( HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped ); Antes de escrevermos em um arquivo, é importante entendermos o significado dos parâmetros da função WriteFile(): a) HANDLE hFile - Este é o handle para o arquivo no qual queremos escrever. Este handle deve ser criado com os direitos de acesso de escrita GENERIC_WRITE. b) LPCVOID lpBuffer - Um ponteiro para o buffer que contém os dados que serão escritos no arquivo. c) DWORD nNumberOfBytesToWrite - O número de bytes a serem escritos no arquivo. d) LPDWORD lpNumberOfBytesWritten - Um ponteiro para uma variável que receberá o número de bytes escritos. A função WriteFile() define o valor desta variável como zero antes de fazer seu trabalho ou verificação de erro. d) LPOVERLAPPED lpOverlapped - Um ponteiro para um estrutura OVERLAPPED. Esta estrutura é exigida se o handle para o arquivo for obtido usando FILE_FLAG_OVERLAPPED para o parâmetro dwFlagsAndAttributes da função CreateFile(). Geralmente usamos NULL para este parâmetro. Veja um trecho de código no qual usamos a função WriteFile() para escrever duas linhas em um arquivo texto:
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[]){
// dados a serem escritos no arquivo
CHAR frase[80];
DWORD nOut; // bytes escritos
// nome do arquivo
CHAR arquivo[] = "C:\\testes.txt";
// vamos abrir o arquivo para escrita.
// se o arquivo não existir nós vamos criá-lo.
HANDLE hArquivo = CreateFile(arquivo, GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if(hArquivo == INVALID_HANDLE_VALUE){
cout << "Erro ao abrir o arquivo: " << GetLastError() << endl;
}
else{
// arquivo aberto com sucesso. Vamos escrever
// dados a serem escritos no arquivo
CHAR frase1[80] = "Programar em C++ é bom demais\r\n";
CHAR frase2[80] = "E a Win32 é da hora!!!!";
DWORD nOut; // bytes escritos
// vamos escrever a primeira frase
WriteFile(hArquivo, frase1, strlen(frase1), &nOut, NULL);
cout << nOut << " bytes foram escritos. " << endl;
// vamos escrever a segunda frase
WriteFile(hArquivo, frase2, strlen(frase2), &nOut, NULL);
cout << nOut << " bytes foram escritos. " << endl;
}
// vamos fechar o handle
CloseHandle(hArquivo);
system("PAUSE");
return EXIT_SUCCESS;
}
|
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como centralizar os títulos das colunas (ou o conteúdo de qualquer célula) de um TStringGrid do DelphiQuantidade de visualizações: 14353 vezes |
Em algumas situações nós precisamos centralizar os títulos das colunas de um TStringGrid. Em geral os títulos das colunas são exibidos nas células da primeira linha fixa do TStringGrid. Nesta dica eu mostrarei a forma mais comum de alcançar este efeito. Note que a técnica pode ser usada para centraliar o conteúdo de qualquer célula da grid:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
conteudo: String;
alinhamento_anterior: Word;
begin
// vamos centralizar os títulos das colunas, ou seja, o conteúdo
// das células na primeira linha
if ARow = 0 then
begin
// vamos obter o conteúdo da célula
conteudo := (Sender as TStringGrid).Cells[ACol, ARow];
// vamos obter o alinhamento atual
alinhamento_anterior := SetTextAlign((Sender as TStringGrid).Canvas.Handle,
TA_CENTER);
// vamos colocar o conteúdo de volta na célula
(Sender as TStringGrid).Canvas.TextRect(Rect,
Rect.Left + (Rect.Right - Rect.Left) div 2, Rect.Top + 5, conteudo);
// vamos voltar o alinhamento anterior para as demais células
SetTextAlign((Sender as TStringGrid).Canvas.Handle, alinhamento_anterior);
end;
end;
Aqui nós temos duas chamadas à função SetTextAlign() da API do Windows. Na primeira vez nós obtemos o alinhamento atual e definimos o novo alinhamento como TA_CENTER. Na segunda chamada nós voltamos o alinhamento anterior. Se não fizermos este procedimento, todas as demais células da grid terão seus conteúdos também alinhados ao centro. |
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como retornar a quantidade de dias para um determinado mês e ano em JavaScriptQuantidade de visualizações: 9247 vezes |
|
Sempre que estamos desenvolvendo aplicações de calendário ou outras tarefas envolvendo datas e horas em JavaScript nós precisamos saber quantos dias um determinado mês possui. Nesta dica que mostro como escrever uma função JavaScript chamada diasNoMes() que recebe um mês e um ano e retorna a quantidade de dias que tal mês possui. Veja a página HTML completa para o exemplo:
<!doctype html>
<html>
<head>
<title>Data e hora em JavaScript</title>
</head>
<body>
<script type="text/javascript">
// função que recebe um mês e ano e retorna
// a quantidade de dias no mês informado
function diasNoMes(mes, ano){
return 32 - new Date(ano, mes, 32).getDate();
}
// o mês começa com 0 (Fevereiro = 1)
document.write("O mês informado possui " +
diasNoMes(1, 2023) + " dias");
</script>
</body>
</html>
Ao executar este código JavaScript nós teremos o seguinte resultado: O mês informado possui 28 dias |
Python ::: Python para Engenharia ::: Engenharia Civil - Instalações de Águas Pluviais |
Como calcular a área de contribuição de água da chuva de um telhado usando Python - Python para Engenharia Civil - Instalações de Águas PluviaisQuantidade de visualizações: 894 vezes |
![]() De acordo com a NBR 10844 de 1989, que trata das instalações de águas pluviais, a área de contribuição corresponde à "Soma das áreas das superfícies que, interceptando chuva, conduzem as águas para determinado ponto da instalação". As superfícies que interceptam a água da chuva podem ser, por exemplo, superfícies planas horizontais (como lajes), superfícies inclinadas (como os telhados da maioria das casas e edifícios e mostrado na figura acima) e superfícies planas verticais (como as platibandas). No caso das superficies inclinadas, ou seja, os telhados comumente encontrados, a fórmula para o cálculo da área da contribuição da água da chuva é feito por meio da seguinte fórmula: \[A = \left(a + \frac{h}{2}\right) \cdot b\] Onde: A é a área de contribuição de água da chuva do telhado considerado em m2; a é a largura do telhado em metros; b é o comprimento do telhado em metros; h é a altura do telhado em metros, conforme mostrado na figura acima. Veja agora o código Python que pede para o usuário informar a largura, a altura e o comprimento do telhado e mostra a sua área de contribuição de água da chuva:
# função principal do programa
def main():
# vamos pedir para o usuário informar a largura do telhado
largura = float(input("Informe a largura do telhado em metros: "))
# vamos pedir para o usuário informar o comprimento do telhado
comprimento = float(input("Informe o comprimento do telhado em metros: "))
# vamos pedir para o usuário informar a altura do telhado
altura = float(input("Informe a altura do telhado em metros: "))
# vamos calcular a área de contribuição do telhado
area = (largura + (altura / 2.0)) * comprimento
# e mostramos os resultados
print("\nA área de contribuição do telhado é: {0} m2".format(
round(area, 5)))
if __name__ == "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Informe a largura do telhado em metros: 5 Informe o comprimento do telhado em metros: 15 Informe a altura do telhado em metros: 1.5 A área de contribuição do telhado é: 86.25 m2 |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como comparar strings em Java usando os métodos compareTo() e compareToIgnoreCase() da classe String JavaScript - Validação de formulários em JavaScript - Como validar CPF (com pontos e hífen) usando expressões regulares |
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 |





