Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresCódigo-Fonte Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Você está aqui: Cards de Engenharia Civil - Construção Civil
Card 1 de 28
Fases de uma obra

A Planta de Localização (escala usual 1:200) identifica a posição da obra no terreno. Serve para implantar o projeto.

Filtrar Cards
Use esta opção para filtrar os cards pelos tópicos que mais lhe interessam.
Termos:
Aviso Importante: Nos esforçamos muito para que o conteúdo dos cards e dos testes e conhecimento seja o mais correto possível. No entanto, entendemos que erros podem ocorrer. Caso isso aconteça, pedimos desculpas e estamos à disposição para as devidas correções. Além disso, o conteúdo aqui apresentado é fruto de conhecimento nosso e de pesquisas na internet e livros. Caso você encontre algum conteúdo que não deveria estar aqui, por favor, nos comunique pelos e-mails exibidos nas opções de contato.
Link para compartilhar na Internet ou com seus amigos:

Angular ::: Dicas & Truques ::: Componentes Angular

Angular para iniciantes - Como criar o seu primeiro componente Angular usando o Angular CLI - Comando ng generate component

Quantidade de visualizações: 3125 vezes
Aplicações Angular são construidas em cima de componentes, e estes consistem de:

a) Um template HTML que declara o que deve ser renderizado na página.
b) Uma classe TypeScript que define o comportamento do componente.
c) Um seletor CSS que define com o componente será usado em um template.
d) Estilos CSS opcionais aplicados ao template.

Todos esses aspectos acima são abordados em mais dicas dessa seção. O importante agora é entendermos como criar o componente e exibí-lo no navegador.

Assim, se você ainda não o fez, crie uma nova aplicação Angular usando o Angular CLI. Você pode usar um comando parecido com:

c:\estudos_angular>ng new estudos

Este comando vai criar uma nova aplicação Angular com o nome estudos dentro da pasta "c:\estudos_angular". Aguarde alguns minutos e verá que o Angular CLI já criou toda a estrutura da aplicação. Para executá-la, dispare os comandos abaixo:

c:\estudos_angular>cd estudos
c:\estudos_angular\estudos>ng serve --open

Quando a aplicação subir, veremos o seguinte resultado:



Você obteve um resultado parecido? Então vamos continuar.

Vá até o diretório "C:\estudos_angular\estudos\src\app" e você verá que o Angular CLI já criou para nós um componente com o nome AppComponent por meio dos arquivos app.component.css,
app.component.html, app.component.spec.ts e app.component.ts. Agora vamos voltar nossa atenção para o arquivo app.module.ts. Abra ele no seu editor de texto favorito e você verá o seguinte código:

import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';

import {AppComponent} from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }


Por ora não vamos analisar todo o conteúdo deste arquivo, apenas fique atento ao que vai acontecer com ele depois que criarmos nosso novo componente, o que faremos agora.

Abra uma nova janela de terminal, navegue até o diretório raiz da aplicação e dispare o seguinte comando:

c:\angular>cd estudos
c:\angular\estudos>ng generate component noticia

Nesse momento o Angular CLI criou uma pasta noticia com os seguintes arquivos:

noticia.component.css
noticia.component.html
noticia.component.spec.ts
noticia.component.ts

Agora volte até o arquivo app.module.ts e veja que o Angular CLI o modificou, adicionando o novo componente NoticiaComponent. É importante entender bem o que acontece com este arquivo, pois é ele que indica qual componente será iniciado em primeiro lugar junto com a aplicação Angular.

Agora abra o arquivo noticia.component.ts e altere o seu conteúdo para a versão abaixo:

import { Component } from '@angular/core';

@Component({
  selector: 'app-noticia',
  templateUrl: './noticia.component.html',
  styleUrls: ['./noticia.component.css']
})
export class NoticiaComponent{
  titulo = `Presidente afirma que o preço da gasolina 
    não sobe mais.`;
}

Agora vá em noticia.component.html e altere-o para o código abaixo:

<div>
  <h2>Sou o componente Noticia</h2>
  <h3>{{ titulo }}</h3>
</div>

Nosso componente está pronto. Vamos fazer uns ajustes no componente que o Angular CLI criou para nós automaticamente. Abra o arquivo app.component.ts e altere o seu conteúdo para:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  nome = 'AppComponent';
}

Agora vá até o arquivo app.component.html e modifique-o para o código abaixo:

<div>
  <h1>Sou o componente que o Angular CLI criou</h1>
  <h2>Meu nome é: {{ nome }}</h2>
</div>

<app-noticia></app-noticia>

Veja que coloquei o componente <app-noticia></app-noticia> dentro do componente principal. Agora, se você reiniciar a aplicação (é provável que as mudanças já estejam aparecendo no seu navegador) você verá o resultado abaixo:



Obteve resultado parecido? Que maravilha! Agora, para terminar esta dica, abra o arquivo noticia.component.css e vamos adicionar os estilos CSS abaixo:

h2 {color: red}
div {border: 1px solid green; padding: 10px}

Veja a aplicação novamente e note como o componente Noticia já contém uma formatação diferente. Agora é só criar vários componentes, agrupá-los, aplicar formatações CSS, imagens, etc, e contruir uma aplicação realmente interessante.


Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Estruturas de dados em Java - Como pesquisar um nó em uma árvore binária de busca usando um método recursivo usando Java

Quantidade de visualizações: 2823 vezes
Nesta dica mostraremos um exemplo completo de como pesquisar um valor em uma árvore binária de busca em Java. Note que o exemplo usa apenas inteiros, mas você não terá dificuldades para modificar a classe Nó para os dados que você precisar.

Código para No.java:

package arvore_binaria;

public class No {
  private int valor; // valor armazenado no nó
  private No esquerdo; // filho esquerdo
  private No direito; // filho direito
 
  // construtor do nó
  public No(int valor){
    this.valor = valor;
    this.esquerdo = null;
    this.direito = null;
  }

  public int getValor() {
    return valor;
  }

  public void setValor(int valor) {
    this.valor = valor;
  }

  public No getEsquerdo() {
    return esquerdo;
  }

  public void setEsquerdo(No esquerdo) {
    this.esquerdo = esquerdo;
  }

  public No getDireito() {
    return direito;
  }

  public void setDireito(No direito) {
    this.direito = direito;
  }
}

Código para ArvoreBinariaBusca.java:

package arvore_binaria;

public class ArvoreBinariaBusca {
  private No raiz; // referência para a raiz da árvore
   
  // método usado para inserir um novo nó na árvore
  // retorna true se o nó for inserido com sucesso e false
  // se o elemento
  // não puder ser inserido (no caso de já existir um 
  // elemento igual)
  public boolean inserir(int valor){
    // a árvore ainda está vazia?
    if(raiz == null){
      // vamos criar o primeiro nó e definí-lo como a raiz da árvore
      raiz = new No(valor); // cria um novo nó
    }
    else{
      // localiza o nó pai do novo nó
      No pai = null;
      No noAtual = raiz; // começa a busca pela raiz
  
      // enquanto o nó atual for diferente de null
      while(noAtual != null){
        // o valor sendo inserido é menor que o nó atual?
        if(valor < noAtual.getValor()) {
          pai = noAtual;
          // vamos inserir do lado esquerdo
          noAtual = noAtual.getEsquerdo();
        }
        // o valor sendo inserido é maior que o nó atual
        else if(valor > noAtual.getValor()){
          pai = noAtual;
          // vamos inserir do lado direito
          noAtual = noAtual.getDireito();
        }
        else{
          return false; // um nó com este valor foi encontrado
        }
      }
        
      // cria o novo nó e o adiciona como filho do nó pai
      if(valor < pai.getValor()){
         pai.setEsquerdo(new No(valor));
      }
      else{
        pai.setDireito(new No(valor));
      }
    }
 
    return true; // retorna true para indicar que o novo nó foi inserido
  }
   
  // método que permite pesquisar na árvore binária de busca
  public No pesquisar(int valor){
    return pesquisar(raiz, valor); // chama a versão recursiva do método
  }
 
  // sobrecarga do método pesquisar que recebe dois 
  // parâmetros (esta é a versão recursiva do método)
  private No pesquisar(No noAtual, int valor){
    // o valor pesquisado não foi encontrado....vamos retornar null
    if(noAtual == null){
      return null;
    }
  
    // o valor pesquisado foi encontrado?
    if(valor == noAtual.getValor()){
      return noAtual; // retorna o nó atual
    }  
    // ainda não encontramos...vamos disparar uma nova 
    // chamada para a sub-árvore da esquerda
    else if(valor < noAtual.getValor()){
      return pesquisar(noAtual.getEsquerdo(), valor);
    }
    // ainda não encontramos...vamos disparar uma nova 
    // chamada para a sub-árvore da direita
    else{
      return pesquisar(noAtual.getDireito(), valor);
    }
  }
}

E finalmente o código para a classe principal:

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 pesquisar um valor na árvore
    System.out.print("\nInforme o valor a ser pesquisado: ");
    int valorPesquisa = Integer.parseInt(entrada.nextLine());
    // obtém um objeto da classe NoArvore a partir do 
    // método pesquisar() da classe ArvoreBinariaBusca
    No res = arvore.pesquisar(valorPesquisa);
    // o valor foi encontrado?
    if(res != null){
      System.out.println("O valor foi encontrado na árvore");
    }
    else{
      System.out.println("O valor não foi encontrado na árvore");  
    }
     
    System.out.println("\n");
  }
}



Revit C# ::: Dicas & Truques ::: Colunas e Pilares

Como listar os tipos de colunas e pilares disponíveis no Revit usando a Revit C# API

Quantidade de visualizações: 470 vezes
Nesta dica mostrarei como podemos obter e retorna uma lista com as colunas e pilares disponíveis na sua instalação do Revit. Esse passo é muito importante quando precisamos informar o id do símbolo de família, ou seja, o tipo de coluna ou pilar que queremos criar, em um determinado momento, via programação Revit C# API.

O primeiro passo é acessar o documento atual do Revit usando uma chamada à this.ActiveUIDocument.Document. Em seguida nós obtemos um objeto FilteredElementCollector para filtrar e retornar os símbolos de família que se enquadrem na categoria OST_StructuralColumns. Para finalizar, nós convertemos os elementos Element em FamilySymbol.

Veja o código completo para o exemplo:

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using Autodesk.Revit.DB.Architecture;
using System.Linq;
 
namespace Estudos {
  [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.
    TransactionMode.Manual)]
  [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")]
  public partial class ThisApplication {
    private void Module_Startup(object sender, EventArgs e) {
      // vamos obter uma referência ao Document ativo
      Document doc = this.ActiveUIDocument.Document;
       
      // vamos obter um FilteredElementCollector contendo apenas
      // elementos que sejam ElementType e pertençam à categoria
      // OST_StructuralColumns
      try {
      FilteredElementCollector elementos = new FilteredElementCollector(doc)
        .WhereElementIsElementType().OfCategory(BuiltInCategory.OST_StructuralColumns);
  
      String lista = "";
      // vamos percorrer os elementos retornados
      foreach(Element elemento in elementos) {
        // vamos converter o Element em FamilySymbol
        FamilySymbol coluna = elemento as FamilySymbol;
        // agora montamos a lista de colunas (ou pilares)
        lista = lista + "Id: " + elemento.Id.IntegerValue + "; Nome: "
            + elemento.Name + "; Tipo: " + elemento.Category.Name +
            "; Família: " + coluna.Family.Name + "\n";
      }
   
      // mostramos o resultado
      TaskDialog.Show("Aviso", lista);
      }
      catch (Exception ex) {
        TaskDialog.Show("Aviso", "Erro: " + ex.Message);
      }
    }
      
    private void Module_Shutdown(object sender, EventArgs e) {
      // para fazer alguma limpeza de memória ou algo assim
    }
 
    #region Revit Macros generated code
    private void InternalStartup() {
      this.Startup += new System.EventHandler(Module_Startup);
      this.Shutdown += new System.EventHandler(Module_Shutdown);
    }
    #endregion
  }
}

Ao executar este código Revit C# nós teremos o seguinte resultado:

Id: 12190; Nome: UC305x305x97; Tipo: Pilares estruturais; Família: UC-Universal Columns-Column
Id: 355634; Nome: 80 x 50; Tipo: Pilares estruturais; Família: Pila de Concreto - Retangular
Id: 355636; Nome: 50 x 50; Tipo: Pilares estruturais; Família: Pila de Concreto - Retangular


AutoCAD Civil 3D ::: Dicas & Truques ::: Coordinated Geometry Points (COGO Points)

Como criar pontos COGO no AutoCAD Civil 3D

Quantidade de visualizações: 710 vezes
Nesta dica mostrarei os passos necessários para a criação de COGO points no Civil 3D usando a opção Manual do Point Creation Tools.

Siga os passos abaixo atentamente:

A) Vá até a guia Home. Em seguida acesse o painel Create Ground Data.

B) No painel Create Ground Data, acesse a opção Points -> Point Creation Tools.

C) Será aberto um painel flutuante chamado Create Points. Na primeira opção deste painel, clique a seta ao lado do primeiro botão e marque a opção Manual (talvez já esteja marcada).

D) Agora é só clicar no botão (ao lado da seta que você acabou de acessar). Na janela de comandos do Civil 3D nós veremos a mensagem:

CREATEPOINTMANUAL Please specify a location for the new point:

Você pode clicar na tela de desenho ou informar as coordenadas x e y manualmente, por exemplo, 50,100 (o valor x para a coordenada x e o valor 100 para a coordenada y, sem espaços e com a vírgula separando os dois valores).

Note que o x é o Easting (distância para o Leste) e y é o Northing (distância para o Norte). Verifique se nas suas configurações esta é a ordem padrão.

E) Depois de informar as coordenadas x e y do COGO point, uma mensagem será exibida solicitando a descrição do ponto:

CREATEPOINTMANUAL Enter a point description <.>:

Aqui podemos informar o nome do ponto, por exemplo, BUEIRO 5.

F) Após informarmos a descrição do ponto, a seguinte mensagem é exibida:

CREATEPOINTMANUAL Specify a point elevation <.>:

Aqui nós precisamos informar a elevação do ponto e pressionar Enter. Nesse momento o novo COGO Point é criado e o Civil 3D reiniciará o processo, ou seja, será solicitada a localização do próximo ponto.

Se você não quiser continuar criando novos pontos, basta pressionar a tecla Enter.

Para visualizar os pontos criados, vá até o Painel Toolspace, aba Prospector e acesse o item Points.


Java ::: Dicas & Truques ::: Mouse e Teclado

Apostila de Java Swing - Como detectar um duplo-clique do mouse em uma JFrame ou outros controles visuais

Quantidade de visualizações: 11612 vezes
Nesta dica mostrarei como podemos usar o método getClickCount() da classe MouseEvent para detectar o duplo-clique do mouse em uma janela JFrame do Java Swing. É claro que o código pode ser aplicado em qualquer outro componente que herde de JComponent.

Veja o código completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class Estudos extends JFrame{
  public Estudos() {
    super("Eventos do Mouse e Teclado");
    Container c = getContentPane();
    FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
    c.setLayout(layout);
     
    this.addMouseListener(
      new MouseAdapter(){
        @Override
        public void mouseClicked(MouseEvent e){
          if(e.getClickCount() == 2){  
            setTitle("Duplo-clique detectado.");
          }
          else{
            setTitle("Clique simples detectado.");
          }
        }
      }
    );    
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 57 usuários muito felizes estudando em nosso site.