![]() |
|
|
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 - Estruturas de Concreto Armado |
||
|
||
|
|
||
Excel ::: Fórmulas do Excel ::: Matemática e Estatística |
Como gerar números aleatórios no Excel usando a função ALEATÓRIO() - Excel para Matemática e EstatísticaQuantidade de visualizações: 1307 vezes |
|
A função ALEATÓRIO() do Excel pode ser usada quando queremos gerar um número randômico, ou seja, um número aleatório entre 0 e 1. Nesse caso o número gerado é um número real aleatório que inclui o 0 mas não inclui o 1. Para gerar um número randômico usando a função ALEATÓRIO, digite o conteúdo a seguir em uma célula ou na barra de fórmulas do Excel: =ALEATÓRIO() Pressione Enter ou Tab e você terá um resultado parecido com: 0,10075557 Note que a função ALEATÓRIO retorna um número aleatório real maior que ou igual a 0 e menor que 1 distribuído uniformemente. Um novo número aleatório real é retornado sempre que a planilha é calculada. |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como inverter uma string em Ruby usando as funções reverse e reverse!Quantidade de visualizações: 10515 vezes |
Esta dica mostra como podemos inverter uma string em Ruby, ou seja, reverter a ordem de seus caracteres. Para isso nós temos dois métodos: reverse e reverse!. O método reverse retorna uma nova string enquanto reverse! reverte o conteúdo da string original. Veja o trecho de código:# declara e inicializa uma variável string frase = "Osmar J. Silva" # inverte a string sem afetar o original invertida = frase.reverse # exibe o resultado puts "Original: " + frase puts "Invertida: " + invertida # inverte afetando o original frase.reverse! # exibe o resultado puts "Original: " + frase Ao executar este código Ruby nós teremos o seguinte resultado: Original: Osmar J. Silva Invertida: avliS .J ramsO Original: avliS .J ramsO |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Java para Geometria Analítica e Álgebra Linear - Como efetuar a soma de matrizes usando JavaQuantidade de visualizações: 2262 vezes |
|
A soma de matrizes (assim como a subtração e multiplicação) é parte integrante da disciplina de Álgebra Linear e seu cálculo é muito simples. Assumindo duas matrizes A e B, ambas com a mesma quantidade de linhas e colunas, a matriz soma pode ser obtida da seguinte forma: \[A + B = \left[\begin{matrix} 3 & 4 & -1 \\ 8 & 2 & 1 \\ 7 & 5 & -3 \end{matrix}\right] + \left[\begin{matrix} -2 & 6 & 4 \\ 1 & 8 & 9 \\ -4 & 10 & 3 \end{matrix}\right] = \left[\begin{matrix} 1 & 10 & 3 \\ 9 & 10 & 10 \\ 3 & 15 & 0 \end{matrix}\right] \] Um elemento da matriz é representando por sua posição linha e coluna. Usamos a letra i para a linha e j para a coluna, ou seja, aij. Dessa forma, o elemento na primeira linha e primeira coluna da matriz é a11, o elemento na primeira linha e segunda coluna é a12 e assim por diante. Então, a soma das duas matrizes é feita da seguinte forma: Cij = Aij + Bij. E agora veja o código Java que declara duas matrizes matrizA e matrizB e obtém uma terceira (matrizC) contendo a soma das duas anteriores. Novamente, note o requisito de que as matrizes deverão ter o mesmo número de linhas e colunas:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
// declarar, construir e inicializar as matrizes
int matrizA[][] = {{3, 4, -1}, {8, 2, 1}, {7, 5, -3}};
int matrizB[][] = {{-2, 6, 4}, {1, 8, 9}, {-4, 10, 3}};
// esta é a matriz soma
int matrizSoma[][] = new int[3][3];
// e agora vamos prosseguir com a soma
for(int i = 0; i < matrizA.length; i++){
for(int j = 0; j < matrizA[0].length; j++){
matrizSoma[i][j] = matrizA[i][j] + matrizB[i][j];
}
}
// vamos exibir os valores da primeira matriz
System.out.println("Elementos da matriz A:");
for(int i = 0; i < matrizA.length; i++){
for(int j = 0; j < matrizA[0].length; j++){
System.out.printf("%5d ", matrizA[i][j]);
}
System.out.println();
}
// vamos exibir os valores da primeira matriz
System.out.println("\nElementos da matriz B:");
for(int i = 0; i < matrizB.length; i++){
for(int j = 0; j < matrizB[0].length; j++){
System.out.printf("%5d ", matrizB[i][j]);
}
System.out.println();
}
// vamos exibir os valores da matriz soma
System.out.println("\nElementos da matriz soma:");
for(int i = 0; i < matrizSoma.length; i++){
for(int j = 0; j < matrizSoma[0].length; j++){
System.out.printf("%5d ", matrizSoma[i][j]);
}
System.out.println();
}
}
}
Ao executar este código Java nós teremos o seguinte resultado:
Elementos da matriz A:
3 4 -1
8 2 1
7 5 -3
Elementos da matriz B:
-2 6 4
1 8 9
-4 10 3
Elementos da matriz soma:
1 10 3
9 10 10
3 15 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: 15526 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. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que calcula o fatorial de um determinado número inteiroQuantidade de visualizações: 3102 vezes |
|
Pergunta/Tarefa: Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. O fatorial de um número n pode ser definido recursivamente da seguinte forma: 0! = 1; n! = n x (n - 1)!; sendo n > 0
public static long fatorial(int n){
// sua implementação aqui
}
Informe um número inteiro: 5 O fatorial do número informado é: 120 Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos solicitar o número inteiro
System.out.print("Informe um número inteiro: ");
// lê o número
int numero = Integer.parseInt(entrada.nextLine());
// calcula o fatorial corresponde ao número informado
System.out.print("O fatorial do número informado é: " + fatorial(numero));
System.out.println("\n");
}
// método recursivo que calcula o fatorial de um inteiro informado
public static long fatorial(int n){
if(n == 0){ // caso base....retornar
return 1;
}
else{
return n * fatorial(n - 1); // efetua mais uma chamada recursiva
}
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





