![]() |
|
|
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# ::: Dicas & Truques ::: Strings e Caracteres |
C# para iniciantes - Qual a diferença entre string e String?Quantidade de visualizações: 1 vezes |
Muitos usuários do nosso site nos enviam essa pergunta, pois ficam confusos com a escrita de "string" e "String". Nesta dica mostrarei a diferença entre esses dois tipos de dados. Comece analisando o código abaixo:
using System;
namespace Estudos{
class Program{
static void Main(string[] args) {
string frase = "Sou uma string";
String outra = "Sou outra string";
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Se você tentar compilar o código acima, verá que ele não somente compila como também executa sem problemas. Isso acontece porque, do ponto de vista do compilador e interpretador C#, não há diferença alguma entre "string" e "String". O tipo string representa uma string de caracteres Unicode (16 bits - 2 bytes) e é um apelido para a classe String da plataforma .NET. O fato de os projetistas da linguagem C# terem permitido a escrita toda em letras minúsculas se deve à frequência com que esse tipo é usado em nossos códigos, se asemelhando aos tipos primitivos int, float, double, etc. |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um diretório em C++ usando a função rename()Quantidade de visualizações: 8929 vezes |
Em algumas situações nossos códigos C++ precisam renomear diretórios. Isso pode ser feito com o auxílio da função rename() ou _rename(), disponível no header io.h or stdio.h (trazido da linguagem C). Veja a assinatura desta função:int rename(const char *oldname, const char *newname); Se o diretório for renomeado 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) EINVAL - Invalid argument - Os nomes dos diretórios contém caracteres inválidos; b) ENOENT - No such file or directory - O caminho do diretório é inválido; c) EACCESS - Acesso negado - Algum outro programa está usando este diretório e mantém controle sobre o mesmo. Veja um trecho de código no qual renomeamos um diretório:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos renomear este diretório
char dir_antigo[] = "C:\\Dev-Cpp\\estudos";
char dir_novo[] = "C:\\Dev-Cpp\\estudos2";
// vamos testar se o diretório for renomeado com sucesso
if(rename(dir_antigo, dir_novo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório renomeado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
É possível usar a versão Unicode de rename() ou _rename(). O método _wrename, 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 renomear este diretório
wchar_t dir_antigo[] = L"C:\\Dev-Cpp\\estudos";
wchar_t dir_novo[] = L"C:\\Dev-Cpp\\estudos2";
// vamos testar se o diretório for renomeado com sucesso
if(_wrename(dir_antigo, dir_novo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório renomeado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Diretório renomeado com sucesso |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair dias de uma data em Delphi usando a função IncDay()Quantidade de visualizações: 25939 vezes |
|
Em algumas situações precisamos adicionar ou subtrair dias de uma determinada data. Em Delphi isso pode ser feito com o auxílio da função IncDay() da unit DateUtils. Este função aceita um TDateTime e a quantidade de dias que queremos acrescentar ao TDateTime fornecido como argumento. O retorno será um novo TDateTime com a quantidade de dias acrescida. Veja um trecho de código no qual adicionamos 4 dias à data atual:
procedure TForm1.Button1Click(Sender: TObject);
var
hoje: TDateTime;
begin
// não esqueça de adicionar DateUtils ao seus uses
// vamos obter a data de hoje
hoje := Now;
// vamos exibir a data de hoje
ShowMessage('Hoje é: ' + DateToStr(hoje));
// vamos adicionar 4 dias à data de hoje
hoje := IncDay(hoje, 4);
// vamos exibir o resultado
ShowMessage('Daqui a 4 dias será: ' + DateToStr(hoje));
end;
É possível também usar a função IncDay() para substrair dias de uma data. Para isso só precisamos fornecer uma quantidade negativa de dias. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
hoje: TDateTime;
begin
// não esqueça de adicionar DateUtils ao seus uses
// vamos obter a data de hoje
hoje := Now;
// vamos exibir a data de hoje
ShowMessage('Hoje é: ' + DateToStr(hoje));
// vamos subtrair 5 dias da data de hoje
hoje := IncDay(hoje, -5);
// vamos exibir o resultado
ShowMessage('Há 5 dias era: ' + DateToStr(hoje));
end;
O valor padrão para o segundo argumento de IncDay() é 1. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular vetor unitário em Java - Java para Física e EngenhariaQuantidade de visualizações: 832 vezes |
|
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$. O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$. O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor. Então, vejamos a fórmula para a obtenção do vetor unitário: \[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\] Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível. Veja agora o código Java que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos ler os valores x e y
System.out.print("Informe o valor de x: ");
double x = Double.parseDouble(entrada.nextLine());
System.out.print("Informe o valor de y: ");
double y = Double.parseDouble(entrada.nextLine());
// o primeiro passo é calcular a norma do vetor
double norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
// agora obtemos as componentes x e y do vetor unitário
double u_x = x / norma;
double u_y = y / norma;
// mostra o resultado
System.out.println("O vetor unitário é: (x = " +
u_x + "; y = " + u_y);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Informe o valor de x: -4 Informe o valor de y: 6 O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437 Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos ler os valores x, y e z
System.out.print("Informe o valor de x: ");
double x = Double.parseDouble(entrada.nextLine());
System.out.print("Informe o valor de y: ");
double y = Double.parseDouble(entrada.nextLine());
System.out.print("Informe o valor de z: ");
double z = Double.parseDouble(entrada.nextLine());
// o primeiro passo é calcular a norma do vetor
double norma = Math.sqrt(Math.pow(x, 2)
+ Math.pow(y, 2) + Math.pow(z, 2));
// agora obtemos as componentes x, y e z do vetor unitário
double u_x = x / norma;
double u_y = y / norma;
double u_z = z / norma;
// mostra o resultado
System.out.println("O vetor unitário é: (x = " +
u_x + "; y = " + u_y + "; z = " + u_z);
}
}
Ao executarmos este novo código nós teremos o seguinte resultado: Informe o valor de x: 3 Informe o valor de y: 7 Informe o valor de z: 5 O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517 |
Nossas 20 dicas & truques de programação mais populares |
|
LISP - Como converter Coordenadas Cartesianas para Coordenadas Polares em LISP - LISP para Engenharia Java - Java para iniciantes - Como pesquisar uma substring em uma string e retornar sua posição inicial |
Você também poderá gostar das dicas e truques de programação abaixo |
|
AutoLISP - Como retornar o nome da layer atual do AutoCAD usando AutoLISP e a variável de sistema CLAYER |
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 |




