![]() |
|
|
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 Ética e Legislação Profissional |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular juros compostos e montante usando a linguagem Java - Fórmula de juros compostos em Java - RevisadoQuantidade de visualizações: 21654 vezes |
|
O regime de juros compostos é o mais comum no sistema financeiro e, portanto, o mais útil para cálculos de problemas do dia-a-dia. Os juros gerados a cada período são incorporados ao principal para o cálculo dos juros do período seguinte. Chamamos de capitalização o momento em que os juros são incorporados ao principal. Assim, após três meses de capitalização, temos: 1º mês: M = P .(1 + i) 2º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) 3º mês: o principal é igual ao montante do mês anterior: M = P x (1 + i) x (1 + i) x (1 + i) Simplificando, obtemos a fórmula: M = P . (1 + i)^n Importante: a taxa i tem que ser expressa na mesma medida de tempo de n, ou seja, taxa de juros ao mês para n meses. Para calcularmos apenas os juros basta diminuir o principal do montante ao final do período: J = M - P Vejamos um exemplo: Considerando que uma pessoa empresta a outra a quantia de R$ 2.000,00, a juros compostos, pelo prazo de 3 meses, à taxa de 3% ao mês. Quanto deverá ser pago de juros? Veja o código Java para a resolução:
public class Estudos{
public static void main(String args[]){
double principal = 2000.00;
double taxa = 0.03;
int meses = 3;
double montante = principal * Math.pow((1 + taxa), meses);
double juros = montante - principal;
System.out.println("O total de juros a ser pago é: "
+ juros);
System.out.println("O montante a ser pago é: "
+ montante);
System.exit(0);
}
}
Ao executarmos este código nós teremos o seguinte resultado: O total de juros a ser pago é: 185.45400000000018 O montante a ser pago é: 2185.454 É claro que uma formatação para moeda deixaria os valores mais bonitos. Uma outra aplicação interessante é mostrar mês a mês a evolução dos juros. Veja o código a seguir:
public class Estudos{
public static void main(String args[]){
double principal = 2000.00;
double taxa = 0.03;
int meses = 3;
double anterior = 0.0;
for(int i = 1; i <= meses; i++){
double montante = principal * Math.pow((1 + taxa), i);
double juros = montante - principal - anterior;
anterior += juros;
System.out.println("Mês: " + i + " - Montante: "
+ montante + " - Juros: " + juros);
}
System.exit(0);
}
}
Ao executarmos este código nós teremos o seguinte resultado: Mês: 1 - Montante: 2060.0 - Juros: 60.0 Mês: 2 - Montante: 2121.7999999999997 - Juros: 61.79999999999973 Mês: 3 - Montante: 2185.454 - Juros: 63.65400000000045 Esta dica foi revisada e testada no Java 8. |
LISP ::: LISP para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como converter Coordenadas Polares para Coordenadas Cartesianas em LISP - LISP para EngenhariaQuantidade de visualizações: 1113 vezes |
|
Nesta nossa série de LISP e AutoLISP para Geometria Analítica e Álgebra Linear, mostrarei um código 100% funcional para fazer a conversão entre coordenadas polares e coordenadas cartesianas. Esta operação é muito frequente em computação gráfica e é parte integrante das disciplinas dos cursos de Engenharia (com maior ênfase na Engenharia Civil). Na matemática, principalmente em Geometria e Trigonometria, o Sistema de Coordenadas Polares é um sistema de coordenadas em duas dimensões no qual cada ponto no plano é determinado por sua distância a partir de um ponto de referência conhecido como raio (r) e um ângulo a partir de uma direção de referência. Este ângulo é normalmente chamado de theta (__$\theta__$). Assim, um ponto em Coordenadas Polares é conhecido por sua posição (r, __$\theta__$). Já o sistema de Coordenadas no Plano Cartesiano, ou Espaço Cartesiano, é um sistema que define cada ponto em um plano associando-o, unicamente, a um conjuntos de pontos numéricos. Dessa forma, no plano cartesiano, um ponto é representado pelas coordenadas (x, y), com o x indicando o eixo horizontal (eixo das abscissas) e o y indicando o eixo vertical (eixo das ordenadas). Quando saímos do plano (espaço 2D ou R2) para o espaço (espaço 3D ou R3), temos a inclusão do eixo z (que indica profundidade). Antes de prosseguirmos, veja uma imagem demonstrando os dois sistemas de coordenadas: ![]() A fórmula para conversão de Coordenadas Polares para Coordenadas Cartesianas é: x = raio × coseno(__$\theta__$) y = raio × seno(__$\theta__$) E aqui está o código LISP completo que recebe as coordenadas polares (r, __$\theta__$) e retorna as coordenadas cartesianas (x, y):
; programa LISP que converte Coordenadas Polares
; em Coordenadas Cartesianas
(let((raio)(theta)(graus)(x)(y))
; vamos ler o raio e o ângulo
(princ "Informe o raio: ")
(force-output)
(setq raio (read))
(princ "Informe o theta: ")
(force-output)
(setq theta (read))
(princ "Theta em graus (1) ou radianos (2): ")
(force-output)
(setq graus (read))
; o theta está em graus?
(if(eq graus 1)
(setq theta (* theta (/ pi 180.0)))
)
; fazemos a conversão para coordenadas cartesianas
(setq x (* raio (cos theta)))
(setq y (* raio (sin theta)))
; exibimos o resultado
(format t "As Coordenadas Cartesianas são: (x = ~F, y = ~F)"
x y)
)
Ao executar este código LISP nós teremos o seguinte resultado: Informe o raio: 1 Informe o theta: 1.57 Theta em graus (1) ou radianos (2): 2 As Coordenadas Cartesianas são: (x = 0,00, y = 1,00) |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se uma variável é do tipo array em PHP usando a função is_array()Quantidade de visualizações: 12582 vezes |
|
Em algumas situações nós precisamos verificar se uma determinada variável é do tipo array (vetor ou matriz). Em PHP esse procedimento pode ser feito com o auxílio da função is_array(), que recebe uma variável e retorna verdadeiro se ela é do tipo array e falso em caso contrário. Veja o código PHP completo para o exemplo:
<?php
// vamos criar um array de inteiros
$valores = Array(5, 2, 7, 1);
// vamos testar se a variável é do tipo array
if(is_array($valores)){
echo 'A variável $valores é do tipo array.';
}
else{
echo 'A variável $valores NÃO é do tipo array.';
}
?>
Ao executar este código PHP nós teremos o seguinte resultado: A variável $valores é do tipo array. |
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um arquivo existe usando a linguagem CQuantidade de visualizações: 14697 vezes |
Muitas vezes precisamos saber se um determinado arquivo existe antes de efetuarmos alguma operação. O trecho de código abaixo mostra como você pode implementar uma função file_exists() em C que pode ser usada em seus programas. O segredo aqui é tentar abrir o arquivo passado como argumento para a função. Se o arquivo for aberto com sucesso, sabemos que ele existe e a função retorna o valor 1 (true), do contrário retorna 0 (false):
#include <stdio.h>
#include <stdlib.h>
/*
Implementação de uma função file_exists() em C. Se
o arquivo existir o valor 1 (true) será retornado. Caso
contrário a função retornará 0 (false).
*/
int file_exists(const char *filename)
{
FILE *arquivo;
if(arquivo = fopen(filename, "r"))
{
fclose(arquivo);
return 1;
}
return 0;
}
int main(int argc, char *argv[])
{
// testa se o arquivo existe
if(file_exists("c:\\testes.txt")){
printf("O arquivo existe no local especificado.\n");
}
else
printf("O arquivo NAO existe no local especificado.\n");
printf("\n\n");
system("PAUSE");
return 0;
}
|
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes C++Quantidade de visualizações: 15473 vezes |
Como já vimos em outras dicas desta seção, uma classe C++ possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:
// definição da classe Produto
class Produto{
public:
void setNome(string);
string getNome();
void setPreco(double);
double getPreco();
private:
string nome;
double preco;
};
Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância. Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma. Métodos estáticos em C++ podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo:
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
// classe Pessoa com duas variáveis privadas e
// um método estático
class Pessoa{
public:
// um método estático que permite verificar a validade
// de um número de CPF
static bool isCPFValido(string);
private:
string nome;
int idade;
};
// implementação da classe Pessoa
bool Pessoa::isCPFValido(string cpf){
// alguns cálculos aqui
return true;
}
int main(int argc, char *argv[]){
// vamos efetuar uma chamada ao método isCPFValido() sem
// criar uma instância da classe Pessoa
if(Pessoa::isCPFValido("12345")){
cout << "CPF Válido" << endl;
}
else{
cout << "CPF inVálido" << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Aqui nós temos os códigos da definição e implementação da classe Pessoa em apenas um arquivo (main.cpp). Em uma aplicação real é interessante colocar estas partes em arquivos separados (.h e .cpp). Note que o método estático isCPFValido() foi declarado assim: static bool isCPFValido(string); Desta forma, podemos chamá-la a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja: if(Pessoa::isCPFValido("12345")){} É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo:
bool Pessoa::isCPFValido(string cpf){
// alguns cálculos aqui
// vamos acessar a variável não estática nome
nome = "Osmar J. Silva";
return true;
}
vai gerar o seguinte erro de compilação: invalid use of member `Pessoa::nome' in static member function. Se usarmos this->nome a mensagem de erro de compilação será: `this' is unavailable for static member functions. Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias. |
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 |





