![]() |
|
|
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 - Fundações |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Manipulação de imagens em Java - Como converter uma imagem JPG colorida para uma imagem na escala cinza (gray scale)Quantidade de visualizações: 12559 vezes |
Uma das formas mais comuns de se converter uma imagem colorida para uma imagem na escala cinza (grayscale) é desenhar a imagem colorida em um BufferedImage do tipo TYPE_BYTE_GRAY. Veja o resultado na imagem abaixo:![]() E agora o código completo para o exemplo:
package arquivodecodigos;
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
public class Estudos extends JFrame{
private BufferedImage imagem;
private BufferedImage imagemCinza;
AreaImagem areaImagem;
public Estudos(){
super("Estudos Java");
Container c = getContentPane();
c.setLayout(new BorderLayout());
JButton btn = new JButton("Carregar Imagem");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser fc = new JFileChooser();
int res = fc.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File arquivo = fc.getSelectedFile();
imagem = null;
try{
imagem = ImageIO.read(arquivo);
}
catch(IOException exc){
JOptionPane.showMessageDialog(null,
"Erro ao carregar a imagem: " +
exc.getMessage());
}
if(imagem != null){
areaImagem.imagem = imagem;
areaImagem.repaint();
}
}
}
}
);
JButton btn2 =
new JButton("Converter Escala Cinza");
btn2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
converterEscalaCinza();
}
}
);
JPanel painel = new JPanel();
painel.setLayout(new FlowLayout());
painel.add(btn);
painel.add(btn2);
c.add(painel, BorderLayout.SOUTH);
// Cria a área de exibição da imagem
areaImagem = new AreaImagem();
c.add(areaImagem, BorderLayout.CENTER);
setSize(400, 300);
setVisible(true);
}
public void converterEscalaCinza(){
imagemCinza = new BufferedImage(
imagem.getWidth(), imagem.getHeight(),
BufferedImage.TYPE_BYTE_GRAY);
Graphics g = imagemCinza.getGraphics();
g.drawImage(imagem, 0, 0, null);
g.dispose();
areaImagem.imagem = imagemCinza;
areaImagem.repaint();
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// Sub-classe de JPanel para exibir a imagem
class AreaImagem extends JPanel{
public BufferedImage imagem;
public void paintComponent(Graphics g){
super.paintComponent(g);
// desenha a imagem no JPanel
g.drawImage(imagem, 0, 0, this);
}
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercícios Resolvidos de Java - Como converter de decimal para números romanos em JavaQuantidade de visualizações: 975 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro decimal e converta-o para o número romano correspondente. Sua saída deverá ser parecida com: Informe um número decimal: 2023 O número romano correspondente é: MMXXIII Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos criar um array com os valores decimais possíveis de
// cada número romano
int valoresNumerosRomanos[] = new int[]{1000, 900, 500, 400,
100, 90, 50, 40, 10, 9, 5, 4, 1};
// representação dos números romanos
String numerosRomanos[] = new String[]{"M", "CM", "D", "CD",
"C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
// vamos pedir para o usuário informar um número decimal
System.out.print("Informe um número decimal: ");
int numero = Integer.parseInt(entrada.nextLine());
// para guardar o resultado
String resultado = "";
// o número é maior que zero?
if (numero > 0) {
// percorremos o array de valores decimais dos números romanos
for(int i = 0;i < valoresNumerosRomanos.length; i++){
// enquanto o número informado for maior que o valor do
// do número romano atual
while(numero >= valoresNumerosRomanos[i]){
// reduz o número informado
numero = numero - valoresNumerosRomanos[i];
// concatena o número romano e continua o cálculo
resultado = resultado + numerosRomanos[i];
}
}
}
// mostramos o resultado
if(resultado.isEmpty()){
System.out.println("O número informado não possui número romano");
}
else{
System.out.println("O número romano correspondente é: " + resultado);
}
}
}
|
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como usar a classe/contêiner vector da STL em seus programas C++Quantidade de visualizações: 9374 vezes |
|
O vetor, ou vector, é uma das classes contêineres mais simples da STL - Standard Template Library do C++. Um vector se comporta como um vetor, ou seja, uma matriz de uma linha e várias colunas, ou seja, seus elementos estão dispostos em posições contiguas na memória. O que diferencia um vector de um array comum é que o tamanho de um vector pode ser modificado dinamicamente. A especificação do template da classe vector é: template <class T, class Allocator = allocator<T>> class vector Aqui T é o tipo de dados sendo armazenado (já ouvir falar em genéricos, não?) e Allocator define o modelo de alocação de armazenagem. Por padrão, o template da classe allocator para o tipo T é usado, o que define o modelo de alocação de memória mais simples e independente de valores. Objetos da classe vector são úteis nas seguintes situações: a) Acessar os elementos individualmente usando seus índices (tempo constante); b) Percorrer os elementos em qualquer ordem (tempo linear); b) Adicionar ou remover elementos no final do contêiner (tempo constante amortizado). Para usarmos um vector em nossos programas C++ temos que incluir este contêiner da seguinte forma: #include <vector> Veja um trecho de código no qual criamos um vector, inserimos três inteiros e finalmente usamos um iterador para percorrer os elementos e imprimir seus valores:
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[]){
// um vector vazio que conterá inteiros
vector<int> valores;
// vamos inserir três elementos
valores.push_back(54);
valores.push_back(13);
valores.push_back(87);
// vamos percorrer o vector e exibir os elementos
vector<int>::iterator it;
for(it = valores.begin(); it < valores.end(); it++){
cout << *it << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executarmos este código C++ nós teremos o seguinte resultado: 54 13 87 |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como ler as linhas de texto de um JTextArea uma de cada vezQuantidade de visualizações: 6 vezes |
|
Nesta dica veremos como ler as linhas de um controle JTextArea do Java Swing individualmente, ou seja, uma linha de cada vez. Para isso nós vamos usar os método getLineStartOffset() e getLineEndOffset() da classe JTextArea para acessar suas linhas separadamente. Veja o resultado na imagem abaixo: ![]() E aqui está o código Java Swing completo para a dica:
package arquivodecodigos;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame{
JTextArea textArea;
JButton btn;
public Estudos() {
super("Lendo as linhas de um JTextArea");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
textArea = new JTextArea(10, 20);
textArea.setLineWrap(true);
btn = new JButton("Ler Linhas");
btn.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
int quant = textArea.getLineCount();
for(int i = 0; i < quant; i++){
try{
int inicio = textArea.getLineStartOffset(i);
int fim = textArea.getLineEndOffset(i);
String linha = textArea.getText(inicio, fim - inicio);
JOptionPane.showMessageDialog(null, "Linha " +
(i + 1) + " = " + linha);
}
catch(BadLocationException ble){
// possiveis erros são tratados aqui
}
}
}
}
);
c.add(textArea);
c.add(btn);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como somar os elementos de um vetor de inteiros em C++Quantidade de visualizações: 17577 vezes |
Esta dica mostra a você como usar um laço for do C++ para somar todos os valores dos elementos de um vetor de inteiros. Observe que aqui nós declaramos e inicializamos o vetor (array) em apenas uma instrução:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// declara e inicializa um array de
// 5 inteiros
int valores[] = {2, 7, 1, 5, 6};
int soma = 0;
// soma os valores dos elementos
for(int i = 0; i < 5; i++){
soma += valores[i];
// o mesmo que
// soma = soma + valores[i];
}
// exibe o resultado
cout << "Soma: " << soma << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Soma: 21 |
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 |






