Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa 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
Card 1 de 40
Segurança e Estados Limites Ações nas Estruturas de Concreto Armado

As combinações últimas normais e as combinações últimas de construção ou especiais se diferem apenas pelo coeficiente ψ, que é ψ0 para as combinações normais últimas e pode ser ψ0 ou ψ2 para as combinações últimas de construção ou especiais, dependendo da duração da ação variável principal.

Nas combinações últimas excepcionais, a ação excepcional é considerada em seu valor característico, isto é, não majorada.

As ações variáveis são consideradas com seus valores quase permanentes pela multiplicação pelo fator de redução ψ2.

Nas combinações frequentes de serviço, existe uma ação variável principal considerada no seu valor frequente pela multiplicação pelo fator ψ1, e as demais consideradas em seus quase permanentes, pela multiplicação por ψ2.

Já, nas combinações raras de serviço, a variável principal se encontra em seu valor característico, ao passo que as demais ações variáveis são consideradas em seus valores frequentes, pela multiplicação por ψ1.

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:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Um laço for que solicita ao usuário 10 números inteiros e mostra o menor e o maior valor informado

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

Escreva um programa Java console que usa o laço for para solicitar ao usuário que informe 10 números inteiros. Em seguida mostre o maior e o menor valor lido. Não é permitido usar matrizes:

Dica: Use um objeto da classe Scanner para obter a entrada do usuário.

Resposta/Solução:

Como a solução deste exercício depende de valores informados pelo usuário, a classe Scanner deverá ser usada. Desta forma, você deverá importá-la, usando a linha:

import java.util.Scanner;
Lembre-se de que os imports devem estar entre a declaração de pacote (package) e a declaração da classe. Veja a solução comentada no código abaixo:

public static void main(String[] args){
  // para este exercício você deverá importar a classe
  // Scanner. Ela está no pacote java.util.*;
    
  // vamos construir um objeto da classe Scanner para ler a
  // entrada do usuário
  Scanner entrada = new Scanner(System.in);

  int valor; // guarda o valor lido
  int maior = 0, menor = 0; // variáveis que guardarão o maior e o menor valor lido

  // vamos pedir ao usuário que informe 10 valores inteiros
  for(int i = 0; i < 10; i++){
    System.out.print("Informe o " + (i + 1) + "º valor: ");
    valor = Integer.parseInt(entrada.nextLine());

    // esta é a primeira iteração do laço? se for vamos assumir que o
    // maior e menor valor lido são o primeiro valor informado
    if(i == 0){
      maior = valor;
      menor = valor;
      // poderia ser escrito assim:
      //maior = menor = valor;
    }
    else{ // não é a primeira iteração
      // vamos verificar se é maior que o valor atual da variável maior
      if(valor > maior){
        maior = valor;
      }
      // vamos verificar se é menor que o valor atual da variável menor
      if(valor < menor){
        menor = valor;
      }
    }
  }

  // vamos exibir o maior e o menor valor lido
  System.out.println("\nO maior valor lido foi: " + maior);
  System.out.println("O menor valor lido foi: " + menor);
}



Revit C# ::: Dicas & Truques ::: Revit C# Windows Forms

Como criar um formulário Windows Forms a partir do Revit C#

Quantidade de visualizações: 1224 vezes
Nesta dica mostrarei os passos necessários para se criar uma aplicação Revit C# contendo uma formulário Windows Forms. O objetivo é demonstrar como o usuário pode interagir com os elementos do formulário para acessar e manipular objetos do Revit a partir de códigos C#.

Antes de continuarmos, veja a janela Windows Forms que criamos logo abaixo:



Veja que temos um formulário contendo 6 Labels e 6 TextBox contendo as coordenadas inicias e finais de uma linha geométrica usada para criar um novo eixo na área de desenho do Revit. Ao informar as coordenadas e clicar o botão Desenhar Eixo, um novo objeto da classe Grid da Revit API é criado e desenhado no documento atual.

Este código é muito útil para iniciantes em programação Revit C# porque mostra como acessar o documento ativo usando ActiveUIDocument e em seguida passar este objeto para uma outra classe C#. De posse deste objeto nós podemos realizar várias tarefas, entre elas criar uma nova linha geométrica usando Line.CreateBound() e, em seguida, criar um novo Grid usando Grid.Create().

Veja o código completo para uma macro chamada Estudos do tipo Aplicativo. Se tiver dificuldades para executar, chama a gente nos contatos na parte superior do site que teremos prazer em ajudá-lo.

Eis a listagem do código C#:

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

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) {
      JanelaPrincipal janela = new JanelaPrincipal();
      janela.uidoc = this.ActiveUIDocument;
      janela.ShowDialog();
    }

    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
  }
  
  // classe para representar o formulário
  public class JanelaPrincipal : System.Windows.Forms.Form {
    public UIDocument uidoc;
    public System.Windows.Forms.TextBox txtX0;
    public System.Windows.Forms.TextBox txtY0;    
    public System.Windows.Forms.TextBox txtZ0;
    public System.Windows.Forms.TextBox txtX1;
    public System.Windows.Forms.TextBox txtY1;    
    public System.Windows.Forms.TextBox txtZ1;
    
    // construtor da classe
    public JanelaPrincipal() {
      this.Text = "Meu Formulário Revit C# Windows Forms"; // título da janela 
      this.Width = 390; // largura da janela
      this.Height = 240; // altura da janela
      // define a posição atual da janela
      this.StartPosition = FormStartPosition.CenterScreen;
      
      // vamos criar quatro labels e quatro caixas de texto
      Label label1 = new Label();
      label1.Text = "X Inicial:";
      label1.Location = new System.Drawing.Point(20, 20);
      label1.Height = 15;
      label1.Width = 80;

      Label label2 = new Label();
      label2.Text = "Y Inicial:";
      label2.Location = new System.Drawing.Point(120, 20);
      label2.Height = 15;
      label2.Width = 80;
      
      Label label3 = new Label();
      label3.Text = "Z Inicial:";
      label3.Location = new System.Drawing.Point(220, 20);
      label3.Height = 15;
      label3.Width = 80;
      
      txtX0 = new System.Windows.Forms.TextBox();   
      txtX0.Location = new System.Drawing.Point(20, 40);
      txtX0.Width = 80;
      txtX0.Height = 15;
      
      txtY0 = new System.Windows.Forms.TextBox();   
      txtY0.Location = new System.Drawing.Point(120, 40);
      txtY0.Width = 80;
      txtY0.Height = 15;
      
      txtZ0 = new System.Windows.Forms.TextBox();   
      txtZ0.Location = new System.Drawing.Point(220, 40);
      txtZ0.Width = 80;
      txtZ0.Height = 15;
      
      Label label4 = new Label();
      label4.Text = "X Final:";
      label4.Location = new System.Drawing.Point(20, 80);
      label4.Height = 15;
      label4.Width = 80;

      Label label5 = new Label();
      label5.Text = "Y Final:";
      label5.Location = new System.Drawing.Point(120, 80);
      label5.Height = 15;
      label5.Width = 80;
      
      Label label6 = new Label();
      label6.Text = "Z Final:";
      label6.Location = new System.Drawing.Point(220, 80);
      label6.Height = 15;
      label6.Width = 80;
      
      txtX1 = new System.Windows.Forms.TextBox();   
      txtX1.Location = new System.Drawing.Point(20, 97);
      txtX1.Width = 80;
      txtX1.Height = 15;
      
      txtY1 = new System.Windows.Forms.TextBox();   
      txtY1.Location = new System.Drawing.Point(120, 97);
      txtY1.Width = 80;
      txtY1.Height = 15;
      
      txtZ1 = new System.Windows.Forms.TextBox();   
      txtZ1.Location = new System.Drawing.Point(220, 97);
      txtZ1.Width = 80;
      txtZ1.Height = 15;
      
      // botão que desenha o eixo nas coordenadas indicadas      
      Button button1 = new Button();
      button1.Text = "Desenhar Eixo";
      button1.Location = new System.Drawing.Point(95, 160);
      button1.Width = 150;
      button1.Click += new System.EventHandler(DesenharEixo);
                
      // botão que fecha a janela      
      Button button2 = new Button();
      button2.Text = "Fechar";
      button2.Location = new System.Drawing.Point(265, 160);
      button2.Width = 80;
      button2.Click += new System.EventHandler(FecharJanela);
      
      // adiciona os controles à janela
      this.Controls.Add(label1);
      this.Controls.Add(label2);
      this.Controls.Add(label3);
      this.Controls.Add(label4);
      this.Controls.Add(label5);
      this.Controls.Add(label6);
      this.Controls.Add(txtX0);
      this.Controls.Add(txtY0);
      this.Controls.Add(txtZ0);
      this.Controls.Add(txtX1);
      this.Controls.Add(txtY1);
      this.Controls.Add(txtZ1);
      this.Controls.Add(button1);
      this.Controls.Add(button2);
    }
    
    // função usada para desenhar um novo eixo no documento atual
    private void DesenharEixo(object sender, System.EventArgs e) {
      // primeiro obtemos uma referência ao documento atual
      Document doc = uidoc.Document;
			
      // criamos a linha geométrica para posicionar o eixo 	
      XYZ inicio = new XYZ(Double.Parse(txtX0.Text), Double.Parse(txtY0.Text),
        Double.Parse(txtZ0.Text));
      XYZ final = new XYZ(Double.Parse(txtX1.Text), Double.Parse(txtY1.Text),
        Double.Parse(txtZ1.Text));
     
      // construímos a linha
      Line linhaGeometrica = Line.CreateBound(inicio, final);

      // iniciamos uma nova transação
      using(Transaction t= new Transaction(doc)) {
	t.Start("Criar um novo Grid");
	Grid grid = Grid.Create(doc, linhaGeometrica);
	t.Commit();
      }
    }
    
    // função usada para fechar a janela
    private void FecharJanela(object sender, System.EventArgs e) {
      this.Close();  
    }
  }
}

Não se esqueça de adicionar referências a System.Windows.Forms e System.Drawing. Basta, dentro do SharpDevelop, ir no menu Projeto -> Adicionar Referência.


Delphi ::: Fundamentos da Linguagem ::: Estruturas de Controle

Tutorial Delphi para iniciantes: Como usar o laço while do Delphi

Quantidade de visualizações: 26860 vezes
O laço while do Delphi é usado quando queremos que um bloco de instruções seja executado enquanto uma condição for satisfeita. Assim, todas as iterações do laço serão resultados de um teste condicional. Veja um exemplo:

procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer; // variável de controle
begin
  // este laço contará de 0 até 10
  i := 0;

  while i <= 10 do
    begin
      ShowMessage(IntToStr(i)); // a mensagem será exibida 10 vezes
      Inc(i); // vamos incrementar a variável de controle
    end;
end;

Aqui nós temos uma variável i que tem seu valor inicial definido como 0. Ao entrarmos no laço while nós verificamos se o valor desta variável é menor ou igual a 10. Se este teste for verdadeiro o laço é executado pela primeira vez. Dentro do laço nós aumentamos o valor da variável de controle em 1. Isso é feito de forma a evitar um laço infinito. O laço então prossegue para a próxima iteração, que ocorre somente após a verificação do resultado do teste condicional. Isso nos mostra que um laço while pode nunca ser executado (casos nos quais o teste de continuidade do laço falha já na primeira iteração).

Veja agora um exemplo no qual usamos um laço while para contar de 10 até 0:

procedure TForm1.Button3Click(Sender: TObject);
var
  i: Integer; // variável de controle
begin
  // este laço contará de 10 até 0
  i := 10;

  while i >= 0 do
    begin
      ShowMessage(IntToStr(i)); // a mensagem será exibida 10 vezes
      Dec(i); // vamos decrementar a variável de controle
    end;
end;

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


C++ ::: Fundamentos da Linguagem ::: Tipos de Dados

Apostila C++ para iniciantes - Como usar o tipo de dados short ou short int da linguagem C++

Quantidade de visualizações: 14193 vezes
O tipo de dados short (também chamado de short int) da linguagem C++ é uma variação do tipo int e geralmente possui a metade da capacidade de armazenamento deste. Nós o usamos quando queremos representar números inteiros, ou seja, sem partes fracionárias, que não sejam grandes o suficiente para exigir variáveis do tipo int. Veja um trecho de código demonstrando seu uso (note que estes estudos foram feitos no Windows XP - 32 bits - usando Dev-C++):

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // declara uma variável do tipo short
  short idade = 45;

  cout << "A idade é: " << idade << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Veja que a maioria dos compiladores C++ não faz distinção entre os tipos short e short int. A capacidade de armazenamento do tipo short depende da arquitetura na qual o programa está sendo executado. Uma forma muito comum de descobrir esta capacidade é usar os símbolos SHRT_MIN e SHRT_MAX, definidos no header climits (limits.h). Veja:

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  cout << "Valor mínimo: " << SHRT_MIN << "\n";
  cout << "Valor máximo: " << SHRT_MAX << "\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este programa você terá um resultado parecido com:

Valor mínimo: -32768
Valor máximo: 32767

Veja que o tipo short aceita valores positivos e negativos. Tudo que você tem a fazer é tomar todo o cuidado para que os valores atribuidos a variáveis deste tipo não ultrapassem a faixa permitida. Veja um trecho de código que provoca o que chamamos de transbordamento (overflow):

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  short soma = SHRT_MAX + 2;

  cout << "Resultado: " << soma << "\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}	

Este programa exibirá o seguinte resultado:

Resultado: -32767

Note que este não é o resultado esperado, visto que SHRT_MAX + 2 deveria retornar:

32767 + 2 = 32769

Porém, como o valor máximo que pode ser armazenado em um short é 32767, o procedimento adotado pelo compilador foi tornar o número negativo e subtrair 1. É claro que, se você testar este código em arquiteturas diferentes o resultado poderá ser diferente do exemplificado aqui.

Em termos de bytes, é comum o tipo short ser armazenado em 2 bytes, o que resulta em 16 bits (um byte é formado por 8 bits, lembra?). Veja um trecho de código que mostra como usar o operador sizeof() para determinar a quantidade de bytes necessários para armazenar um variável do tipo short:

#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  cout << "Tamanho de um short: " << sizeof(short)
    << " bytes\n\n";

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

O resultado da execução deste código será algo como:

Tamanho de um short: 2 bytes



C# ::: Dicas & Truques ::: Strings e Caracteres

Como retornar o índice da primeira ocorrência de uma substring em uma string C# usando o método IndexOf() da classe String

Quantidade de visualizações: 8268 vezes
Este trecho de código mostra como obter o índice da primeira ocorrência de uma substring em uma string. Se a substring não for encontrada, o valor -1 é retornado.

Note que o método IndexOf() da classe String recebe a substring a ser pesquisada e retorna o índice de sua primeira ocorrência (começando sempre em 0). Além disso, este método diferencia maiúsculas de minúsculas.

Veja o código para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de Java e C#";

      // obtém o índice da primeira ocorrência
      int pos = frase.IndexOf("de");

      if (pos != -1) {
        Console.WriteLine("A substring foi encontrada" +
          " na posição " + pos);
      }
      else {
        Console.WriteLine("A substring não foi encontrada");
      }

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

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

A substring foi encontrada na posição 6


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

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.


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