![]() |
|
|
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 Aço e Madeira |
||
|
||
|
|
||
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em C++ - Como usar construtores em suas classes C++Quantidade de visualizações: 16325 vezes |
|
Quando um objeto de uma classe C++ é criado, a linguagem chama um construtor para tal classe. Se nenhum construtor estiver definido, um construtor padrão é invocado. Este construtor aloca memória para o objeto, mas não o inicializa. Um construtor é um método que definimos em nossas classes C++ e que possui o mesmo nome da classe. Um construtor não possui tipo de retorno e não retorna nenhum valor. Em geral construtores são públicos, mas, é possível termos construtores privados. Neste caso, somente um método estático da classe poderia criar novos objetos da classe (quando puder dê uma olhada no padrão de projeto Singleton). O uso mais frequente dos métodos construtores é quando queremos inicializar valores das variáveis e demais recursos no momento da criação de uma nova instância da classe. Esta é uma técnica útil, visto que não precisamos dispor de esforço extra para inicializar as variáveis de instância de um objeto, individualmente, após sua criação. Vamos ver um exemplo da definição e uso de construtores em uma classe C++? Comece analisando o código para o arquivo de definição da classe Pessoa: Código para Pessoa.h:
// vamos evitar múltiplas inclusões do
// arquivo de cabeçalho (header file)
#ifndef PESSOA_H
#define PESSOA_H
// vamos incluir o header string
#include <string>
using namespace std;
class Pessoa{
public:
// construtor da classe Pessoa
Pessoa(string, string, int);
// método que permite retornar o nome da pessoa
string getNome();
// método que permite retornar o e-mail da pessoa
string getEmail();
// método que permite retornar a idade da pessoa
int getIdade();
private:
// variáveis privadas
string nome;
string email;
int idade;
};
#endif
Veja a assinatura do método construtor: Pessoa(string, string, int); Note que na lista de parâmetros do construtor não precisamos informar os nomes dos parâmetros, apenas seus tipos. Veja agora o arquivo de implementação para esta classe: Código para Pessoa.cpp:
// arquivo de implementação para a
// classe Pessoa
// vamos incluir o header Pessoa.h
#include "Pessoa.h"
// implementação do construtor
Pessoa::Pessoa(string nome, string email, int idade){
this->nome = nome;
this->email = email;
this->idade = idade;
}
// método que permite obter o nome da pessoa
string Pessoa::getNome(){
return this->nome;
}
// método que permite obter o email da pessoa
string Pessoa::getEmail(){
return this->email;
}
// método que permite obter a idade da pessoa
int Pessoa::getIdade(){
return this->idade;
}
Note que na implementação do método construtor nós recebemos os argumentos para os parâmetros e os usamos para inicializar as variáveis privadas da instância da classe. Observe o uso do ponteiro this para nos referirmos à instância atual da classe Pessoa. Finalmente, veja o código para o método main() do programa. É aqui que criamos um novo objeto da classe Pessoa e usamos seu método construtor para inicializar suas variáveis privadas de uma só vez: Código para main.cpp:
#include <cstdlib>
#include <iostream>
// vamos incluir a classe Pessoa
#include "Pessoa.h"
using namespace std;
int main(int argc, char *argv[])
{
// vamos criar um novo objeto da classe Pessoa
Pessoa *p = new Pessoa("Osmar J. Silva",
"osmar@arquivodecodigos.net", 38);
// vamos exibir os dados da pessoa
cout << "Nome: " << p->getNome() << endl;
cout << "E-Mail: " << p->getEmail() << endl;
cout << "Idade: " << p->getIdade() << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Além do construtor, uma classe C++ possui também um método destrutor. Veja minhas dicas relacionadas a este assunto para aprender como definir e usar destrutores em suas classes C++. |
Java ::: Pacote java.util ::: Iterator |
Como usar objetos da interface Iterator do Java em suas aplicaçõesQuantidade de visualizações: 3236 vezes |
|
Um objeto da interface Iterator<E>, no pacote java.util, é usado para percorrer os elementos de uma coleção. Um Iterator é usado com frequencia em substituição a um Enumeration. Há duas diferenças principais entre os dois: a) Um Iterator permite a remoção de elementos na coleção sendo percorrida no momento. b) Os métodos do Iterator são mais curtos e apresentam melhoria em relação aos métodos do Enumeration. As subinterfaces conhecidas de Iterator<E> são ListIterator<E> e XMLEventReader. As classes conhecidas que implementam esta interface são BeanContextSupport.BCSIterator, EventReaderDelegate e Scanner. Veja um trecho de código no qual usamos um Iterator para percorrer e exibir os valores dos elementos de uma ArrayList:
package estudos;
import java.util.ArrayList;
import java.util.Iterator;
public class Estudos{
public static void main(String[] args){
// vamos criar uma ArrayList
ArrayList<String> pessoas = new ArrayList();
pessoas.add("Osmar");
pessoas.add("Carlos");
pessoas.add("Fernanda");
// vamos obter um Iterator para a lista e percorrer todos os elementos
for(Iterator<String> pessoa = pessoas.iterator(); pessoa.hasNext();){
System.out.println(pessoa.next());
}
}
}
Ao executar este exemplo nós teremos o seguinte resultado: Osmar Carlos Fernanda |
C++ ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MDC em C++ - C++ para matemáticaQuantidade de visualizações: 37856 vezes |
|
Como calcular MDC em C++ Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada: Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b. O trecho de código abaixo mostra como calcular o MDC de dois números informados:
#include <iostream>
using namespace std;
int MDC(int a, int b){
int resto;
while(b != 0){
resto = a % b;
a = b;
b = resto;
}
return a;
}
int main(int argc, char *argv[]){
int x, y;
cout << "Este programa permite calcular o MDC\n";
cout << "Informe o primeiro valor: ";
cin >> x;
cout << "Informe o segundo valor: ";
cin >> y;
cout << "\nO Máximo Divisor Comum de "
<< x << " e " << y << " é " << MDC(x, y) << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Este programa permite calcular o MDC Informe o primeiro número: 12 Informe o segundo número: 9 O Máximo Divisor Comum de 12 e 9 é 3 |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular desvio padrão em Java - Java para Matemática e EstatísticaQuantidade de visualizações: 3324 vezes |
|
Em Matemática e Estatística, o Desvio padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média. Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística: \[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\] Onde: a) __$\sigma__$ é o desvio; b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i; c) __$\mu__$ é a média aritmética dos valores do conjunto de dados; d) N é a quantidade de valores no conjunto. O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto. Veja o código Java completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
// conjunto dos dados
double conjunto[] = {10, 30, 90, 30};
double soma = 0.0; // soma dos elementos
double desvioPadrao = 0.0; // desvio padrão
int tam = conjunto.length; // tamanho dos dados
// vamos somar todos os elementos
for(int i = 0; i < tam; i++){
soma = soma + conjunto[i];
}
// agora obtemos a média do conjunto de dados
double media = soma / tam;
// e finalmente obtemos o desvio padrão
for(int i = 0; i < tam; i++){
desvioPadrao = desvioPadrao + Math.pow(conjunto[i] - media, 2);
}
// mostramos o resultado
System.out.println("Desvio Padrão Populacional: " +
Math.sqrt(desvioPadrao / tam));
System.out.println("Desvio Padrão Amostral: " +
Math.sqrt(desvioPadrao / (tam - 1)));
}
}
Ao executar este código Java nós teremos o seguinte resultado: Desvio Padrão Populacional: 30.0 Desvio Padrão Amostral: 34.64101615137755 Veja que, para calcular o Desvio Padrão Populacional, nós dividimos o somatório pela quantidade de elementos no conjunto, enquanto, para calcular o Desvio Padrão Amostral, nós dividimos o somatório pela quantidade de elementos - 1 (cuidado com a divisão por zero no caso de um conjunto com apenas um elemento). |
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: 10794 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 |
|
C - Como escrever uma função is_numeric() em C que verifica se uma string contém apenas dígitos de 0 a 9 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





