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

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:

C# ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

Tutorial C# para iniciantes - Como escrever seu primeiro método ou função em C#

Quantidade de visualizações: 15816 vezes
À medida que estamos desenvolvendo nossos códigos, percebemos que estes podem ser divididos de acordo com suas funcionalidades. Ao efetuar esta divisão, estamos na verdade criando blocos de códigos que executam uma determinada tarefa. E, descobrimos que tais blocos de códigos podem ser reaproveitados com frequencia em um mesmo programa. Assim, ao mecanismo usado para disparar a execução destes blocos de códigos é dado o nome de método (ou função em linguagens tais como C e C++).

Um método, em sua forma mais simples, é apenas um conjunto de instruções que podem ser chamadas a partir de locais estratégicos de um programa. Veja um exemplo:

// um método que não recebe nenhum argumento
// e não retorna nenhum valor
static void metodo(){
  Console.WriteLine("Sou um método");
}

Este método apenas exibe o texto "Sou um método". Veja o uso das chaves { e } para delimitar a área de atuação do método (o corpo do método). A palavra-chave void indica que este método não retorna nenhum valor ao finalizar sua execução enquanto a palavra-chave static é melhor explicada na nossa seção sobre modificadores em C#. Todos os métodos em C# possuem parênteses, os quais servem como marcadores para a lista de parâmetros do método. Parênteses vazios indicam que o método não possui parâmetros.[br][br]

Veja agora um trecho de código completo exemplificando a chamada ao método recém-criado:

// um método que não recebe nenhum argumento
// e não retorna nenhum valor
static void metodo(){
  Console.WriteLine("Sou um método");
}

static void Main(string[] args){
  // efetua uma chamada ao método
  metodo();

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}



Delphi ::: VCL - Visual Component Library ::: TEdit

Como obter a quantidade de caracteres no texto de um TEdit do Delphi usando a função SendMessage() da API do Windows e a mensagem WM_GETTEXTLENGTH

Quantidade de visualizações: 11427 vezes
Em algumas ocasiões gostaríamos de obter o tamanho do texto de um TEdit usando apenas as funções da API do Windows. Para isso podemos usar a função SendMessage() em combinação com a mensagem WM_GETTEXTLENGTH.

A função SendMessage() da API do Windows possui a seguinte assinatura em C/C++:

LRESULT SendMessage(          
  HWND hWnd,
  UINT Msg,
  WPARAM wParam,
  LPARAM lParam
);

No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:

// Protótipo
{$EXTERNALSYM SendMessage}
function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; 
  lParam: LPARAM): LRESULT; stdcall;

// Implementação
function SendMessage; external user32 name 'SendMessageW';

Quando usamos a mensagem WM_GETTEXTLENGTH para obter a quantidade de caracteres no texto de um TEdit, o retorno da função SendMessage() é um valor inteiro contendo a quantidade de caracteres na caixa de texto. Os parâmetros wParam e lParam não são usados, ou seja, podemos fornecer o valor 0 para os mesmos. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  tamanho: Integer;
begin
  // vamos obter a quantidade de caracteres na caixa de texto
  tamanho := SendMessage(Edit1.Handle, WM_GETTEXTLENGTH, 0, 0);

  // vamos exibir o resultado
  ShowMessage('O edit contém ' + IntToStr(tamanho) + ' caracteres.');
end;

Ao executar este exemplo teremos uma mensagem com um conteúdo parecido com:

O edit contém 10 caracteres.


C++ ::: Win32 API (Windows API) ::: Edit Control

Como definir a cor de fundo para um Edit Control em tempo de execução usando C++ e a API do Windows

Quantidade de visualizações: 10532 vezes
O processo de definir a cor de fundo para um Edit Control em tempo de execução usando apenas C++ e a API do Windows é um pouco complicado. A técnica apresentada aqui pode não ser a mais eficiente, mas funciona mesmo (testado como VC++ 2005 e Windows XP). Note que estarei usando as funções CreateSolidBrush(), GetDlgCtrlID(), SetBkMode() e SetBkColor() da WinAPI.

1 - Comece adicionando as linhas na parte de variáveis globais de sua aplicação:

HBRUSH hbrushEditBox = CreateSolidBrush(RGB(255, 255, 255));
HDC hdcEdit;
int id_edit_control;
HWND edit_window;


2 - Modifique ou adicione um case para a mensagem WM_CTLCOLOREDIT da seguinte forma:

case WM_CTLCOLOREDIT:
  hdcEdit = (HDC)wParam;
  edit_window = HWND(lParam);   
  id_edit_control = GetDlgCtrlID(edit_window);
		
  if(id_edit_control == IDC_EDIT1){
    SetBkMode(hdcEdit, TRANSPARENT);
    SetBkColor(hdcEdit,(LONG)hbrushEditBox);
    return (LONG)hbrushEditBox;
  }
	  
  return (LRESULT)CreateSolidBrush(RGB(255, 255, 255));

3 - A cor de fundo do Edit Control com ID IDC_EDIT1 será modificada para vermelho quando clicarmos no botão com o ID IDC_BUTTON1. Veja o case para este botão (dentro do case WM_COMMAND):

case IDC_BUTTON1: // ID do botão
 
  // Define uma nova cor de fundo para o Edit Control
  // com o ID IDC_EDIT1
  
  // Vermelho como cor de fundo
  hbrushEditBox = CreateSolidBrush(RGB(255, 0, 0));

  // Atualiza o Edit Control
  InvalidateRect(GetDlgItem(hwnd, IDC_EDIT1), 0, TRUE);
  
  break;



Revit C# ::: Dicas & Truques ::: Tratamento de Erros

Como corrigir o erro OperationCanceledException em macros e add-ins do Revit C# API

Quantidade de visualizações: 561 vezes
Nesta dica mostrarei como podemos tratar a exceção OperationCanceledException em macros e plug-ins feitos para o Revit usando a Revit C# API. Esta exceção está no namespace Autodesk.Revit.Exceptions e deve ser declarada por seu nome completo, para não ser confundida com System.OperationCanceledException.

O erro OperationCanceledException ocorre quando uma operação é cancelada de forma inesperada. Por exemplo, no código abaixo nós pedimos para o usuário selecionar um grupo e, em seguida, informar um ponto na área de desenho do Revit para que o grupo seja copiado e colocado no ponto indicado.

Se o usuário clicar com o botão direito ou pressionar Esc, a operação é cancelada automaticamente. O tratamento da exceção OperationCanceledException nos permite reagir a isso, indicando ao usuário o melhor caminho a ser seguido.

O código apresentado aqui já foi visto em dicas e truques sobre a criação e manipulação de grupos de elementos no Revit usando a Revit C# API. No entanto, no código apresentado eu não fiz o tratamento de exceções.

Veja o código Revit C# API 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 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 definir um objeto Reference para guardar
      // o elemento selecionado pelo usuário
      Reference ref_selecionado = null;
  
      // pedimos para o usuário selecionar um grupo
      Selection selecao = this.ActiveUIDocument.Selection;
      
      try {
        ref_selecionado = selecao.PickObject(ObjectType.Element,
          "Selecione um grupo");
        Element elem = doc.GetElement(ref_selecionado);
        Group group = elem as Group;
      
        // vamos pedir para o usuário selecionar um ponto na área de
        // desenho do Revit
        XYZ ponto = selecao.PickPoint(
          "Selecione um ponto para posicionar o grupo");
      
        // criamos uma nova transação e posicionamos a cópia do
        // grupo nas coordenadas indicadas pelo usuário
        Transaction transacao = new Transaction(doc);
        transacao.Start("Copiar Grupo no Revit");
        doc.Create.PlaceGroup(ponto, group.GroupType);
        transacao.Commit();
      
        // mostramos o resultado
        TaskDialog.Show("Aviso", "O grupo foi copiado com sucesso.");
      }
      // Se o usuário clicar com o botão direito ou pressionar Esc
      catch (Autodesk.Revit.Exceptions.OperationCanceledException ex) {
        TaskDialog.Show("Aviso", "Erro: Operação cancelada pelo usuário");
      }
      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
  }
}

Se o usuário cancelar a operação, ou seja, não selecionar nenhum grupo (talvez pressionando a tecla Esc), o código reagirá e mostrará a mensagem:

Erro: The user aborted the pick operation.

Se, em vez de selecionar um grupo, o usuário selecionar um outro elemento, então a mensagem de erro será:

Erro: Referência de objeto não definida para uma instância de um objeto.


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Hidrologia e Hidráulica

Exercícios Resolvidos de Python - FEMPERJ-2012-TCE-RJ: A vazão de dimensionamento de uma galeria de águas pluviais que drena uma área densamente urbanizada de 10 hectares

Quantidade de visualizações: 813 vezes
Pergunta/Tarefa:

1) FEMPERJ-2012-TCE-RJ: A vazão de dimensionamento de uma galeria de águas pluviais que drena uma área densamente urbanizada de 10 hectares, considerando-se uma chuva de projeto com intensidade de 60 mm/hora, duração igual ao tempo de concentração da bacia e coeficiente de escoamento superficial igual a 0,90, através do Método Racional, é:

A) 150 m3/s

B) 0,150 l/s

C) 1,5 m3/s

D) 150 l/s

E) 15 m3/s

Sua saída deve ser parecida com:

Intensidade da chuva em mm/h: 60
Área da bacia em hectares: 10
Coeficiente de escoamento: 0.9
A vazão de dimensionamento é: 1.5 m3/s
Resposta/Solução:

O primeiro passo para resolver esta questão é relembrar a fórmula da Vazão pelo Método Racional. Apresentado pela primeira vez em 1851 por Mulvaney e usado por Emil Kuichling em 1889, o Método Racional é um método indireto e estabelece uma relação entre a chuva e o escoamento superficial (deflúvio).

Usamos esta fórmula para calcular a vazão de pico de uma determinada bacia, considerando uma seção de estudo.

Eis a fórmula:

\[Q = \frac{C \cdot I \cdot A}{360} \]

Onde:

Q = vazão de pico (m3/s);

C = coeficiente de escoamento superficial que varia de 0 a 1. Coeficiente de Runoff (adimensional).

I = intensidade média da chuva (mm/h);

A = área da bacia (ha), onde 1 ha = 10.000m2. A [[menor_igual]] 300 ha.

Na questão do concurso nós já temos a intensidade da chuva em milímetros por hora e a área já está em hectares. Tudo que temos a fazer é jogar na fórmula.

Então, hora de vermos a resolução comentada deste exercício usando Python:

# função principal do programa
def main():
  # vamos ler a precipitação ou intensidade da chuva em mm/h
  intensidade = float(input("Intensidade da chuva em mm/h: "))
    
  # vamos ler a área da bacia em hectares
  area_bacia = float(input("Área da bacia em hectares: "))
  
  # vamos ler o coeficiente de escoamento
  coeficiente = float(input("Coeficiente de escoamento: "))
    
  # e vamos calcular a vazão de pico em metros cúbicos
  vazao = ((coeficiente * intensidade * area_bacia) / 360.0)
    
  # e mostramos o resultado
  print("A vazão de dimensionamento é: {0} m3/s".format(vazao))
  
if __name__== "__main__":
  main()



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

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 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 Apenas R$ 19,90


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