![]() |
|
|
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 |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Strings e Caracteres |
Java para iniciantes - Como pesquisar uma substring em uma string e retornar sua posição inicialQuantidade de visualizações: 9 vezes |
|
Nesta dica mostrarei como é possível usar o método indexOf() da classe String para obter o índice (começando em 0) da primeira ocorrência de uma substring em uma string. Se a substring não for encontrada, o retorno será -1. Veja o código completo para o exemplo:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
String frase = "Programar em Java é muito bom";
System.out.println("Frase: " + frase);
// verifica se a frase contém a palavra Java
int res = frase.indexOf("Java");
if(res > 0){
System.out.println("A substring foi encontrada " +
" na posicao (índice): " + res);
}
else{
System.out.println("A substring nao foi encontrada");
}
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Frase: Programar em Java é muito bom A substring foi encontrada na posicao (índice): 13 |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivoQuantidade de visualizações: 1276 vezes |
|
Nesta dica mostrarei como podemos implementar o algorítmo da Busca em Profundidade (DFS, do inglês depth-first search) em Java de forma recursiva. Em outra dica desta seção que mostrei como fazer a mesma travessia de forma iterativa e usando uma pilha para backtracking (retrocesso). Antes de iniciarmos, veja a árvore binária que vamos usar no exemplo: ![]() Note que esta árvore possui seis nós. O nó 5 é o nó raiz, e possui como filhos os nós 4 e 9. O nó 4, por sua vez, possui apenas um filho, o nó 2, ou seja, o filho da esquerda. O nó 9 possui dois filhos: o nó 3 é o filho da esquerda e o nó 12 é o filho da direita. Os filhos da árvore binária que não possuem outros filhos são chamados de folhas. Com a abordagem da busca em profundidade, começamos com o nó raiz e viajamos para baixo em uma única ramificação. Se o nó desejado for encontrado naquela ramificação, ótimo. Do contrário, continuamos subindo e pesquisando por nós não visitados. Esse tipo de busca também tem uma notação big O de O(n). Vamos à implementação? Veja o código para a classe No, que representa um nó na árvore binária:
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
Veja agora o código completo para o exemplo. Note que estamos usando recursividade nesta dica. Observe também o uso de uma ArrayList para guardar os valores da árvore binária na ordem depth-first. Eis o código:
package estudos;
import java.util.ArrayList;
// implementação da classe No
class No{
public int valor; // o valor do nó
public No esquerdo; // o filho da esquerda
public No direito; // o filho da direita
public No(int valor){
this.valor = valor;
this.esquerdo = null;
this.direito = null;
}
}
public class Estudos{
public static void main(String[] args){
// vamos criar os nós da árvore
No cinco = new No(5); // será a raiz da árvore
No quatro = new No(4);
No nove = new No(9);
No dois = new No(2);
No tres = new No(3);
No doze = new No(12);
// vamos fazer a ligação entre os nós
cinco.esquerdo = quatro;
cinco.direito = nove;
quatro.esquerdo = dois;
nove.esquerdo = tres;
nove.direito = doze;
// agora já podemos efetuar o percurso depth-first
ArrayList<Integer> valores = new ArrayList<>();
percursoDepthFirst(valores, cinco);
System.out.println("Os valores na ordem Depth-First são: " + valores);
}
public static void percursoDepthFirst(ArrayList<Integer> valores, No no){
if(no != null){
// vamos adicionar o valor deste nó no ArrayList
valores.add(no.valor);
// passamos para o filho esquerdo
percursoDepthFirst(valores, no.esquerdo);
// passamos para o filho direito
percursoDepthFirst(valores, no.direito);
}
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: Os valores na ordem Depth-First são: [5, 4, 2, 9, 3, 12] Compare estes valores com a imagem vista anteriormente para entender ainda melhor o percurso ou busca Depth-First. |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Apostila Java - Como usar o tipo de dados double da linguagem JavaQuantidade de visualizações: 22526 vezes |
O tipo de dados double é usado quando precisamos armazenar números de ponto-flutuante (com parte fracionária) na faixa 4.94065645841246544e-324 até 1.79769313486231570e+308. Este tipo ocupa 64 bits na memória (o mesmo que um long) e possui precisão de 14 ou 15 dígitos significativos. Veja um exemplo de seu uso:
public class Estudos{
public static void main(String args[]){
double valor = 54.5;
System.out.println("O valor da variável é: " +
valor);
System.exit(0);
}
}
É importante observar que a maioria dos métodos numéricos das classes Java (principalmente Math) possuem parâmetros do tipo double. Isso é feito de modo que possamos fornecer argumentos do tipo byte, short, int, long, float, etc. Como todos os tipos primitivos (exceto boolean) podem ser convertidos para double sem a necessidade de cast, esta é sem dúvida uma escolha bem acertada dos arquitetos da linguagem. Observe ainda que o tipo double não pode ser convertido implicitamente para nenhum outro tipo de dados primitivo. Se precisarmos convertê-lo para os tipos char, byte, short, int, long ou float, teremos que lançar mão de uma coerção (cast). Veja: double valor = 54.5; int valor2 = (int)(valor); É preciso ficar atento ao fato de que uma coerção de um tipo de ponto-flutuante para um tipo integral (inteiro) resulta na perda da parte fracionária do valor que está sofrendo o cast. Não é recomendável usar o tipo double (ou float) para aplicações financeiras nas quais a precisão dos valores numéricos é de muita importância. Para estes casos recomenda-se usar a classe BigDecimal. |
C# ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um diretório existe em C# usando a propriedade Exists da classe DirectoryInfoQuantidade de visualizações: 10 vezes |
|
Em algumas situações nós precisamos verificar se um diretório existe em C#, talvez para ler ou gravar dados neste arquivo. Isso pode ser feito por meio da propriedade Exists da classe DirectoryInfo. Esta propriedade retorna um valor true se o diretório existir e false em caso contrário. Veja o código completo para o exemplo:
using System;
using System.IO;
namespace Estudos {
class Principal {
static void Main(string[] args) {
// vamos criar uma nova instância da classe DirectoryInfo
DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\imagens");
// vamos testar se o diretório existe
if (dir.Exists) {
Console.Write("Diretório existe");
}
else {
Console.Write("Diretório não existe");
}
Console.WriteLine("\nPressione uma tecla para sair...");
Console.ReadKey();
}
}
}
Ao executar este código C# nós teremos o seguinte resultado: O diretório existe. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Java - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equiláteroQuantidade de visualizações: 13527 vezes |
|
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa Java que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno 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) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos ler o primeiro lado do triângulo
System.out.print("Informe o primeiro lado do triângulo: ");
int ladoA = Integer.parseInt(entrada.nextLine());
// vamos ler o segundo lado do triângulo
System.out.print("Informe o segundo lado do triângulo: ");
int ladoB = Integer.parseInt(entrada.nextLine());
// vamos ler o terceiro lado do triângulo
System.out.print("Informe o terceiro lado do triângulo: ");
int ladoC = Integer.parseInt(entrada.nextLine());
// os lados informados formam um triângulo?
if((ladoA < (ladoB + ladoC)) && (ladoB < (ladoA + ladoC))
&& (ladoC < (ladoA + ladoB))){
// é um triângulo equilátero (todos os lados iguais)?
if((ladoA == ladoB) && (ladoB == ladoC)){
System.out.println("O triângulo é equilátero");
}
else{
// é isósceles (dois lados iguais e um diferente)?
if((ladoA == ladoB) || (ladoA == ladoC) || (ladoC == ladoB)){
System.out.println("O triângulo é isósceles");
}
else{
// é escaleno
System.out.println("O triângulo é escaleno");
}
}
}
else{
System.out.println("Os lados informados não formam um triângulo.");
}
}
}
|
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 |
|
C# - Como testar se uma string é null ou vazia em C# usando a função IsNullOrEmpty() da classe String |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





