![]() |
|
|
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 Engenharia Civil - Construção Civil |
||
|
||
|
|
||
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como usar o evento OnDrawCell para controlar o desenho das células em um TStringGrid do DelphiQuantidade de visualizações: 16634 vezes |
O evento OnDrawCell, definido originalmente na classe TCustomDrawGrid, é disparado quando uma determinada célula do TStringGrid precisa ser desenhada. Este evento possui a seguinte assinatura:property OnDrawCell: TDrawCellEvent; O tipo Grids.TDrawCellEvent apresenta, no Delphi 2009, a seguinte lista de parâmetros: TDrawCellEvent = procedure(Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState) of object; Vamos ver cada um destes parâmetros separadamente: Sender - Representa a grid na qual a célula está sendo desenhada; ACol, ARow - Índices da coluna e linha na qual a célula está sendo desenhada; Rect - Localização da célula na área de desenho (canvas); State - Um objeto Grids.TGridDrawState que indica se a célula possui o foco (gdFocused), está selecionada (gdSelected) e se a mesma é uma célula fixa (gdFixed). Células fixas permanecem vísiveis quando as barras de rolagem são acionadas. Veja um trecho de código no qual usamos o evento OnDrawCell para colorir de amarelo o fundo de uma determinada célula do TStringGrid:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
conteudo: String;
begin
// vamos obter o conteúdo da célula
conteudo := StringGrid1.Cells[ACol, ARow];
// vamos colorir a célula na segunda linha e terceira
// coluna com o fundo amarelo
if (ACol = 2) and (ARow = 1) then
begin
StringGrid1.Canvas.Brush.Color := clYellow;
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top,
conteudo);
end;
end;
Para este exemplo deixei o valor da propriedade DefaultDrawing do TStringGrid como true. Isso faz com que o fundo da célula seja pintado antes que o evento DrawCell seja chamado e o efeito 3D das células fixas seja exibido ou o retângulo de foco ao redor da célula que possui o foco no momento seja desenhado após o evento. Experimente executar o exemplo com o valor false para a propriedade DefaultDrawing para ver o resultado. Veja agora um trecho de código no qual definimos a cor vermelha para o texto das células cujo valor inteiro seja menor que 10:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
conteudo: String;
begin
// vamos obter o conteúdo da célula
conteudo := StringGrid1.Cells[ACol, ARow];
// vamos definir a cor vermelha para o texto das células
// contendo valores menores que 10
if (conteudo <> '') and (StrToInt(conteudo) < 10) then
begin
StringGrid1.Canvas.Font.Color := clRed;
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top,
conteudo);
end;
end;
Tenha cuidado para que o valor da célula possa ser convertido para inteiro por meio do uso da função StrToInt(). Caso a conversão não for possível, uma exceção do tipo EConvertError será lançada. |
GNU Octave ::: GNU Octave para Engenharia ::: Cálculo Diferencial e Integral |
Como calcular a derivada de uma função usando a função diff() do GNU Octave - Regra do Tombo (ou Regra da Potência)Quantidade de visualizações: 4089 vezes |
|
No cálculo, a derivada em um ponto de uma função y = f(x) representa a taxa de variação instantânea de y em relação a x neste ponto. Um exemplo típico é a função velocidade que representa a taxa de variação (derivada) da função espaço. Do mesmo modo, a função aceleração é a derivada da função velocidade. Geometricamente, a derivada no ponto x = a de y = f(x) representa a inclinação da reta tangente ao gráfico desta função no ponto (a,~f(a)). A função que a cada ponto x associa a derivada neste ponto de f(x) é chamada de função derivada de f(x). [Citação da Wikipédia] Nesta dica mostrarei como podemos usar a função diff() do GNU Octave para calcular a derivada de uma função usando a Regra do Tombo ou, mais formalmente, a Regra da Potência. Dada uma função: ![]() A Regra do Tombo pede que o n desça e multiplique o x, que agora estará elevado a n - 1. Vamos ver um exemplo então? Observe como a derivada de f(x) = x5 é calculada na imagem a seguir: ![]() Veja agora como podemos fazer este cálculo em GNU Octave. Para isso, abra a janela de comandos e dispare as linhas a seguir:
>> pkg load symbolic [ENTER]
>> syms x [ENTER]
>> f = x ** 5 [ENTER]
f = (sym)
5
x
>> diff(f, x) [ENTER]
ans = (sym)
4
5*x
>>
É possível que, após o comando "syms x" você veja algumas mensagens de aviso relacionadas à sua versão instalada do Python. Não se preocupe, pois esses avisos não interferem na funcionalidade da função diff(). |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar um caractere a partir de seu código ASCII em C# usando o método ToChar() da classe ConvertQuantidade de visualizações: 2 vezes |
|
A classe Convert, do namespace System, possui vários métodos que possibilitam a conversão entre tipos base. Um destes métodos nos permitem informar um número inteiro e obter o caractere ou letra correspondente. Veja um techo de código no qual informamos o valor 65 e obtemos, como retorno, a letra "A":
using System;
namespace Estudos {
class Program {
static void Main(string[] args) {
int codigo = 65;
char letra = Convert.ToChar(codigo);
Console.WriteLine("A letra para o código ASCII {0} é {1}",
codigo, letra);
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executarmos este código C# nós teremos o seguinte resultado: A letra para o código ASCII 65 é A |
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Como escrever em um arquivo texto usando as funções Write() e WriteLn() do DelphiQuantidade de visualizações: 29129 vezes |
|
Não há como fugir. Cedo ou tarde precisaremos escrever em um arquivo texto usando Delphi. E esta dica foi escrita com o propósito de facilitar esta tarefa. O primeiro passo para se escrever em um arquivo texto usando Delphi é declarar uma variável do tipo TextFile. Em seguida usamos a procedure AssignFile() para associar a variável TextFile ao arquivo em disco. Como queremos escrever conteúdo novo no arquivo, a função Rewrite() pode ser usada. Esta função cria o arquivo em disco se este ainda não existir. Se o mesmo existir, ele é excluído e a função cria outro com o mesmo nome. E, para escrever conteúdo no arquivo texto, usamos as funções Write() e WriteLn(). A primeira escreve no arquivo enquanto a segunda escreve no arquivo e adiciona o marcador de quebra de linha. Veja o exemplo para um melhor entendimento:
procedure TForm1.Button1Click(Sender: TObject);
var
arquivo: TextFile;
begin
// vamos fazer uma ligação entre a variável arquivo e o
// arquivo que queremos manipular
AssignFile(arquivo, 'C:\arquivo de codigos\dados.txt');
// vamos abrir o arquivo ou criar um novo
Rewrite(arquivo);
// vamos escrever no arquivo agora
WriteLn(arquivo, 'Sou a primeira linha.');
Write(arquivo, 'Sou a segunda linha.');
WriteLn(arquivo, ' E lá vem...');
WriteLn(arquivo, 'A terceira linha');
// hora de fechar o arquivo
CloseFile(arquivo);
// fim
ShowMessage('Operação realizada com sucesso.');
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Arquivos e diretórios em C++ - Como excluir um arquivo usando a função remove() do C++Quantidade de visualizações: 10741 vezes |
Em algumas situações nossos códigos C++ precisam excluir arquivos. Isso pode ser feito com o auxílio da função remove() ou _remove(), disponível no header io.h or stdio.h (trazido da linguagem C). Veja a assinatura desta função:int remove(const char *filename); Se o arquivo for excluído com sucesso a função retornará o valor 0. O retorno será -1 se um erro ocorrer. Neste caso a variável global errno será definido como um dos seguintes valores: a) ENOENT - No such file or directory - O caminho do arquivo é inválido; b) EACCESS - Acesso negado - Algum outro programa está usando este arquivo e mantém controle sobre o mesmo. Veja um trecho de código no qual excluimos um arquivo:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos excluir este arquivo
char arquivo[] = "C:\\Dev-Cpp\\arquivo.txt";
// vamos testar se o arquivo foi excluído com sucesso
if(remove(arquivo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Arquivo excluído com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
É possível usar a versão Unicode de remove(). O método _wremove(), também presente em io.h or stdio.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos excluir este arquivo
wchar_t arquivo[] = L"C:\\Dev-Cpp\\arquivo.txt";
// vamos testar se o arquivo foi excluído com sucesso
if(_wremove(arquivo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Arquivo excluído com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código nós teremos o seguinte resultado: Arquivo excluído com sucesso. |
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 |






