![]() |
|
|
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 ::: Internacionalização e Localização (Internationalization, i18n, Localization, l10n) |
Como obter a localização padrão da JVM usando o método getDefault() da classe Locale da linguagem JavaQuantidade de visualizações: 9444 vezes |
Em algumas situações precisamos fazer a internacionalização de nossas aplicações. Isso implica em usar um objeto da classe Locale para aplicar a formatação de datas, horas e valores de acordo com as configurações regionais do usuário. Porém, antes de alterar o Locale padrão da JVM, é importante sabermos mais sobre ele. Para isso temos o método estático getDefault() da classe Locale:public static Locale getDefault() Este método retorna um objeto da classe Locale que nos permitirá obter informações sobre a língua, o país e demais configurações do ambiente. Veja um trecho de código demonstrando seu uso:
import java.util.*;
public class Estudos{
public static void main(String args[]){
// obtém o Locale padrão da JVM
Locale locale = Locale.getDefault();
// vamos exibir o código da linguagem e nome do
// país para o Locale obtido
System.out.println(locale.getLanguage() + " - "
+ locale.getDisplayCountry());
}
}
O resultado da execução deste código será algo como: pt - Brasil |
R ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo usando a função sin() da linguagem RQuantidade de visualizações: 2114 vezes |
|
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno 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 seno. 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 seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem R. Esta função recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: > sin(0) [ENTER] [1] 0 > sin(1) [ENTER] [1] 0.841471 > sin(2) [ENTER] [1] 0.9092974 > Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: ![]() |
Java ::: Dicas & Truques ::: Data e Hora |
Como usar a classe Calendar do Java em suas aplicações - Java para iniciantesQuantidade de visualizações: 22319 vezes |
|
[Baseado na documentação Java] - A classe Calendar (pacote java.util) é uma classe abstrata (que não pode ser instanciada usando new) que fornece métodos para efetuar a conversão entre um momento específico no tempo e um conjunto de campos de calendário, tais como YEAR, MONTH, DAY_OF_MONTH, HOUR e assim por diante, e para manipular tais campos, por exemplo, obter a data da próxima semana. Um momento no tempo pode ser representado por um valor de milisegundos que é a diferença entre a data atual e a zero hora do dia 01/01/1970 (Epoch, January 1, 1970 00:00:00.000 GMT (Gregorian)). Veja a posição desta classe na hierarquia de classes Java: java.lang.Object java.util.Calendar Esta classe também fornece campos e métodos adicionais para a implementação de um sistema concreto de calendário fora do pacote java.util. Estes campos e métodos são definidos como protected. Assim como as demais classes sensitivas à localização (locale-sensitive), a classe Calendar fornece um método de classe chamado getInstance() que nos permite obter um objeto desta classe. Este método retorna um objeto Calendar cujos campos de calendário são inicializados com a data e hora atual. Veja:
import java.util.*;
public class Estudos{
public static void main(String args[]){
Calendar agora = Calendar.getInstance();
System.out.println(agora.toString());
}
}
Experimente executar este programa e terá um resultado parecido com: java.util.GregorianCalendar[time=1228937781807, areFieldsSet=true,areAllFieldsSet =true,lenient=true,zone=sun.util.calendar.ZoneInfo [id="America/Sao_Paulo",offset =-10800000,dstSavings=3600000,useDaylight=true, transitions=129,lastRule=java.uti l.SimpleTimeZone[id=America/Sao_Paulo,offset= -10800000,dstSavings=3600000,useDay light=true,startYear=0,startMode=3,startMonth=9, startDay=15,startDayOfWeek=1,sta rtTime=0,startTimeMode=0,endMode=3,endMonth=1, endDay=15,endDayOfWeek=1,endTime=0 ,endTimeMode=0]],firstDayOfWeek=2, minimalDaysInFirstWeek=1,ERA=1,YEAR=2008,MONTH =11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH= 10,DAY_OF_YEAR=345,DAY_OF_WEEK= 4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=5,HOUR_OF_DAY =17,MINUTE=36,SECOND=21,MILLI SECOND=807,ZONE_OFFSET=-10800000,DST_OFFSET=3600000] Como podemos ver, todas as informações relativas à data e hora que poderemos precisar estão contidas neste resultado. Um objeto Calendar pode produzir todos os valores de todos os campos de calendário necessários para implementar a formatação de data e hora para uma determinada língua e estilo de calendário (por exemplo, Japanese-Gregorian, Japanese-Traditional). A classe Calendar define a faixa de valores retornados por determinados campos de calendário, assim como seus significados. Por exemplo, o primeiro mês do sistema de calendário tem o valor MONTH == JANUARY para todos os calendários. Outros valores são definidos por subclasses concretas, tais como ERA. |
Delphi ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Como carregar uma imagem JPG, convertê-la em Bitmap e desenhá-la no formulário usando DelphiQuantidade de visualizações: 19062 vezes |
Em algumas situações nós precisamos carregar uma imagem JPG, convertê-la em Bitmap e desenhá-la em nosso formulário. Nesta dica eu mostro como isso pode ser feito. Vamos começar lendo a imagem JPG a partir do diretório da aplicação:
procedure TForm3.Button1Click(Sender: TObject);
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
// uses Jpeg; // não esqueça
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos criar o JPG
jpg := TJPEGImage.Create;
try
// vamos carregar a imagem JPG
jpg.LoadFromFile('foto.jpg');
// vamos convertê-la para Bitmap
bmp.Assign(jpg);
// vamos desenhar o bitmap no formulário
// começando nas coordenadas x = 0; y = 0 a partir
// do canto superior esquerdo da área cliente do formulário
Form3.Canvas.Draw(0, 0, bmp);
finally
Jpg.Free;
Bmp.Free;
end;
end;
Veja que a técnica consiste em carregar a imagem JPG e convertê-la em Bitmap usando o método Assign() da classe TBitmap. Em seguida só precisamos usar o método Draw() do Canvas do formulário para desenhar a imagem já convertida. Caso você precise carregar a imagem JPG em tempo de execução, basta colocar um TOpenPictureDialog no formulário e alterar o código do evento Click do botão para:
procedure TForm3.Button1Click(Sender: TObject);
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
// uses Jpeg; // não esqueça
if OpenPictureDialog1.Execute then
begin
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos criar o JPG
jpg := TJPEGImage.Create;
try
// vamos carregar a imagem JPG
jpg.LoadFromFile(OpenPictureDialog1.FileName);
// vamos convertê-la para Bitmap
bmp.Assign(jpg);
// vamos desenhar o bitmap no formulário
// começando nas coordenadas x = 0; y = 0 a partir
// do canto superior esquerdo da área cliente do formulário
Form3.Canvas.Draw(0, 0, bmp);
finally
Jpg.Free;
Bmp.Free;
end;
end;
end;
Vamos complicar um pouco mais? Que tal uma função que carrega a imagem JPG, faz a conversão para Bitmap e retorna o Bitmap para o chamador? Veja:
function jpg2bitmap(const imagem: String): TBitmap;
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
// uses Jpeg; // não esqueça
// vamos criar o bitmap
bmp := TBitmap.Create;
// vamos criar o JPG
jpg := TJPEGImage.Create;
try
// vamos carregar a imagem JPG
jpg.LoadFromFile(imagem);
// vamos convertê-la para Bitmap
bmp.Assign(jpg);
except
bmp := nil;
end;
// vamos retornar o bitmap resultante
Jpg.Free;
Result := bmp;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
bmp: TBitmap;
begin
// vamos obter o Bitmap a partir da função personalizada
bmp := jpg2bitmap('foto2.jpg');
// a imagem Bitmap foi obtida com sucesso?
if bmp <> nil then
begin
// vamos desenhar o bitmap no formulário
// começando nas coordenadas x = 0; y = 0 a partir
// do canto superior esquerdo da área cliente do formulário
Form3.Canvas.Draw(0, 0, bmp);
bmp.Free;
end
else
ShowMessage('Não foi possível obter o Bitmap');
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Nossas 20 dicas & truques de programação mais populares |
|
Java - Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores Python - Como repetir os elementos de um vetor ou matriz usando a função repeat() da NumPy do Python Python - Como usar a função type() da linguagem Python para descobrir o tipo de dados de uma variável |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Python - Como exibir os valores de 0 a 10 em ordem decrescente usando o laço for da linguagem Python Python - Como repetir os elementos de um vetor ou matriz usando a função repeat() da NumPy do Python VB.NET - Como retornar a versão do .NET a partir de seus códigos VB.NET usando Environment.Version.ToString() |
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 |






