![]() |
|
|
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 - Construção Civil |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como remover quebras de linhas de uma string - Como usar o método replaceAll() da classe String para remover quebras de linha de um texto - RevisadoQuantidade de visualizações: 6 vezes |
Nesta dica eu mostro como podemos usar o método replaceAll() da classe String para remover quebras de linha de uma palavra, frase ou texto. Veja:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
String original = "Programar em Java\n é mais fácil do\n que você pensa.";
// vamos exibir a String original
System.out.println("Original: " + original);
// agora vamos remover as quebras de linha
String nova = original.replaceAll("[\\n]", "");
// vamos exibir a String sem as quebras de linha
System.out.println("Sem quebras de linha: " + nova);
System.exit(0);
}
}
Este código exibirá o seguinte resultado: Original: Programar em Java é mais fácil do que você pensa. Sem quebras de linha: Programar em Java é mais fácil do que você pensa. Esta dica foi revisada e atualizada para o Java 8. |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como obter o nó com maior valor em uma árvore binária de busca usando JavaQuantidade de visualizações: 2904 vezes |
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como obter o nó com o maior valor em uma árvore binária. O truque aqui é descer o lado direito da árvore até o último nó. Veja:
// método que permite retornar o maior nó de uma árvore
// binária de busca
public No retornarMaiorElemento(){
// chama a versão recursiva do método
return retornarMaiorElemento(raiz);
}
public No retornarMaiorElemento(No no){
if((no == null) || (no.getDireito() == null)){
return no; // ponto de parada
}
else{ // vamos continuar descendo do lado direito
return retornarMaiorElemento(no.getDireito());
}
}
Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste:
package arvore_binaria;
import java.util.Scanner;
public class ArvoreBinariaTeste {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos criar um novo objeto da classe ArvoreBinariaBusca
ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
// vamos inserir 5 valores na árvore
for(int i = 0; i < 5; i++){
System.out.print("Informe um valor inteiro: ");
int valor = Integer.parseInt(entrada.nextLine());
// vamos inserir o nó e verificar o sucesso da operação
if(!arvore.inserir(valor)){
System.out.println("Não foi possível inserir." +
" Um elemento já contém este valor.");
}
}
// vamos obter o maior elemento na árvore binária de busca
System.out.println("\nO maior nó é: " +
arvore.retornarMaiorElemento().getValor());
System.out.println("\n");
}
}
Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 6 Informe um valor inteiro: 13 Informe um valor inteiro: 64 Informe um valor inteiro: 21 Informe um valor inteiro: 3 O maior nó é: 64 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Exercícios Resolvidos de Java - Como remover no início de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeadaQuantidade de visualizações: 970 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e peça para o usuário inserir 5 elementos do tipo inteiro. Em seguida faça a remoção do nó no início da lista ligada e retorne o seu valor. Sua saída deve ser parecida com: Inserindo 5 valores na lista Informe o 1.o valor: 3 Informe o 2.o valor: 8 Informe o 3.o valor: 4 Informe o 4.o valor: 7 Informe o 5.o valor: 6 Valores na lista: 3 -> 8 -> 4 -> 7 -> 6 -> null Removendo no início da lista O nó removido foi: 3 Valores na lista novamente: 8 -> 4 -> 7 -> 6 -> null Na saída podemos ver que a lista contém os valores 3, 8, 4, 7 e 6. Depois que o nó no início é removido, os elementos da lista ficam 8, 4, 7 e 6. Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
// classe interna usada para representar um
// nó na lista ligada
class No {
int valor; // valor do nó
No proximo; // aponta para o novo nó
// construtor cheio da classe No
public No(int valor, No proximo) {
this.valor = valor;
this.proximo = proximo;
}
// construtor vazio da classe No
public No() {
this.valor = 0;
this.proximo = null;
}
}
public class Estudos {
// vamos criar uma referência para o início da lista
static No inicio = null;
public static void main(String args[]){
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos inserir 5 valores inteiros na lista ligada
int valor;
System.out.println("Inserindo 5 valores na lista\n");
for (int i = 0; i < 5; i++) {
System.out.print("Informe o " + (i + 1) + ".o valor: ");
valor = Integer.parseInt(entrada.nextLine());
// vamos inserir este valor no final da lista
inserirFinal(valor);
}
// vamos exibir os valores na lista ligada
System.out.print("\nValores na lista: ");
exibirLista();
// vamos remover o nó no início da lista ligada
System.out.println("\nRemovendo no início da lista");
No removido = removerInicio();
System.out.println("O nó removido foi: " +
removido.valor);
// vamos exibir os valores na lista ligada
System.out.print("\nValores na lista novamente: ");
exibirLista();
}
// função que permite remover o nó no início de uma lista
// dinamicamente ligada em Java
public static No removerInicio() {
// primeiro apontamos para o início da lista
No no = inicio;
// a lista está vazia?
if (no != null) {
// o início da lista aponta para o seu próximo
inicio = inicio.proximo;
}
// retorna o nó removido ou null no caso da lista vazia
return no;
}
// função que permite adicionar um nó no final da
// lista ligada
public static void inserirFinal(int valor) {
// vamos apontar para o nó inicial
No atual = inicio;
// criamos um novo nó
No novo = criarNo(valor);
// a lista ligada ainda está vazia?
if (atual == null){
// inicio recebe o novo nó
inicio = novo;
}
else { // temos um ou mais nós na lista ligada
// vamos localizar o último nó
while (atual.proximo != null) {
atual = atual.proximo;
}
// encontramos o último nó. Agora vamos inserir
// o novo nó depois dele
atual.proximo = novo;
}
}
// função usada para construir e retornar um novo nó
public static No criarNo(int valor) {
// cria o novo nó
No no = new No(valor, null);
// retorna o nó criado
return no;
}
// função usada para percorrer a lista ligada e
// exibir os valores contidos em seus nós
public static void exibirLista() {
// vamos apontar para o início da lista
No temp = inicio;
// a lista está vazia?
if (temp == null) {
System.out.println("A lista está vazia.");
}
else {
// esse laço se repete enquanto tempo for
// diferente de null
while (temp != null) {
// vamos mostrar o valor desse nó
System.out.print(temp.valor + " -> ");
// avança para o próximo nó
temp = temp.proximo;
}
// mostra o final da lista
System.out.println("null");
}
}
}
|
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular o determinante de uma matriz 3x3 usando a regra de Sarrus em Java - Java para Álgebra LinearQuantidade de visualizações: 4516 vezes |
|
Como calcular o determinante de uma matriz 3x3 usando a Regra de Sarrus em Java - Java para Álgebra Linear Os estudos da Geometria Analítica e Álgebra Linear envolvem, em boa parte de seus cálculos, a magnitude de vetores, ou seja, o módulo, tamanho, comprimento ou intensidade dos vetores. E isso não é diferente em relação às matrizes. Quando uma matriz é envolvida nos cálculos, com muita frequência precisamos obter o seu determinante, que nada mais é que um número real associado à todas as matrizes quadradas. Nesta dica mostrarei como obter o determinante de uma matriz quadrada de ordem 3, ou seja, três linhas e três colunas, usando a regra de Sarrus (somente matrizes 3x3). Note que é possível obter o mesmo resultado com o Teorema de Laplace, que não está restrito às matrizes quadradas de ordem 3. Veja também que não considerei as propriedades do determinante, o que, em alguns casos, simplifica muito os cálculos. Então, vamos supor a seguinte matriz 3x3: ![]() O primeiro passo é copiarmos a primeira e a segunda colunas para o lado direito da matriz. Assim: ![]() Agora dividimos a matriz em dois conjuntos: três linhas diagonais descendentes e três linhas diagonais ascendentes: ![]() Agora é só efetuar cálculos. Multiplicamos e somamos os elementos de cada conjunto, subtraindo o segundo conjunto do primeiro. Veja: (1 x 5 x 9 + 2 x 6 x 7 + 3 x 4 x 8) - (7 x 5 x 3 + 8 x 6 x 1 + 9 x 4 x 2) = 0 Como podemos ver, o determinante dessa matriz é 0. E agora veja o código Java no qual declaramos e instanciamos uma matriz 3x3 de double e, em seguida, calculamos o seu determinante:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
double m[][] = {{1, 2, 3}, {2, 5, 2}, {1, 3, 1}};
// calcula o determinante usando a Regra de Sarrus
double det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1]
* m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1]))
- ((m[2][0] * m[1][1] * m[0][2]) + (m[2][1]
* m[1][2] * m[0][0]) + (m[2][2] * m[1][0] * m[0][1]));
System.out.println("O determinante da matriz é: " + det);
}
}
Ao executar este código Java nós teremos o seguinte resultado: O determinante da matriz é: 2.0 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando vetor temporárioQuantidade de visualizações: 922 vezes |
|
Pergunta/Tarefa: Dado o vetor:
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Importante: a solução que apresentamos usa um array adicional para resolver o desafio. Fique à vontade para usar força-bruta ou outra abordagem que achar mais conveniente. Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor no passo 1 do primeiro laço: 8 0 0 0 0 0 0 0 Rotação do vetor no passo 2 do primeiro laço: 8 5 0 0 0 0 0 0 Rotação do vetor no passo 3 do primeiro laço: 8 5 2 0 0 0 0 0 Rotação do vetor no passo 1 do segundo laço: 8 5 2 1 0 0 0 0 Rotação do vetor no passo 2 do segundo laço: 8 5 2 1 6 0 0 0 Rotação do vetor no passo 3 do segundo laço: 8 5 2 1 6 9 0 0 Rotação do vetor no passo 4 do segundo laço: 8 5 2 1 6 9 3 0 Rotação do vetor no passo 5 do segundo laço: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
// mostramos o array na ordem original
System.out.println("Array na ordem original:");
exibirVetor(valores);
// vamos rotacionar o array 3 casas para a direita
valores = rotacionarArray(valores, 3);
// e mostramos o resultado
System.out.println("Array depois de rotacionar 3 vezes:");
exibirVetor(valores);
}
// método usado para exibir o array
public static void exibirVetor(int []vetor){
// percorremos cada elemento do vetor
for (int i = 0; i < vetor.length; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println("\n");
}
// método que recebe um vetor de inteiros e o rotaciona um
// determinado número de vezes
public static int[] rotacionarArray(int[] vetor, int n) {
// vamos obter a quantidade de elementos no vetor
int quant = vetor.length;
// o número de rotações é maior que a quantidade de
// elementos no vetor? Se for nós ajustamos o número
// de rotações usando o operador de módulo
if(n > quant){
n = n % quant;
}
// criamos um vetor temporário
int[] resultado = new int[quant];
// o primeiro laço movimenta os elementos a partir
// do valor de n
for(int i = 0; i < n; i++){
resultado[i] = vetor[quant - n + i];
// mostramos o progresso
System.out.println("Rotação do vetor no passo " + (i + 1) +
" do primeiro laço:");
exibirVetor(resultado);
}
// ajustamos o índice para o primeiro elemento do vetor
int indice = 0;
for(int i = n; i < quant; i++){
resultado[i] = vetor[indice];
// mostramos o progresso
System.out.println("Rotação do vetor no passo " + (indice + 1) +
" do segundo laço:");
exibirVetor(resultado);
indice++; // incrementa o índice
}
// retorna o vetor rotacionado
return resultado;
}
}
A solução que apresentamos aqui usa um vetor temporário, isto é, um array adicional, para melhorar a perfomance. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação. |
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 |







