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 - 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:

Java ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em Java dados dois pontos no plano cartesiano

Quantidade de visualizações: 2183 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem Java que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

package arquivodecodigos;
 
import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    // coordenadas dos dois pontos
    double x1, y1, x2, y2;
    // guarda o coeficiente angular
    double m; 
       
    // x e y do primeiro ponto
    System.out.print("Coordenada x do primeiro ponto: ");
    x1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Coordenada y do primeiro ponto: ");
    y1 = Double.parseDouble(entrada.nextLine());
    
    // x e y do segundo ponto
    System.out.print("Coordenada x do segundo ponto: ");
    x2 = Double.parseDouble(entrada.nextLine());
    System.out.print("Coordenada y do segundo ponto: ");
    y2 = Double.parseDouble(entrada.nextLine());   
     
    // vamos calcular o coeficiente angular
    m = (y2 - y1) / (x2 - x1);
     
    // mostramos o resultado
    System.out.println("O coeficiente angular é: " + m);
    
    System.out.println("\n\n");
    System.exit(0);
  }
} 

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

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.6666666666666666

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

package arquivodecodigos;
 
import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    // coordenadas dos dois pontos
    double x1, y1, x2, y2;
    // guarda os comprimentos dos catetos oposto e adjascente
    double cateto_oposto, cateto_adjascente;
    // guarda o ângulo tetha (em radianos) e a tangente
    double tetha, tangente; 
       
    // x e y do primeiro ponto
    System.out.print("Coordenada x do primeiro ponto: ");
    x1 = Double.parseDouble(entrada.nextLine());
    System.out.print("Coordenada y do primeiro ponto: ");
    y1 = Double.parseDouble(entrada.nextLine());
    
    // x e y do segundo ponto
    System.out.print("Coordenada x do segundo ponto: ");
    x2 = Double.parseDouble(entrada.nextLine());
    System.out.print("Coordenada y do segundo ponto: ");
    y2 = Double.parseDouble(entrada.nextLine());   
     
    // vamos obter o comprimento do cateto oposto
    cateto_oposto = y2 - y1;
    // e agora o cateto adjascente
    cateto_adjascente = x2 - x1;
    // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
    // (em radianos, não se esqueça)
    tetha = Math.atan2(cateto_oposto, cateto_adjascente);
    // e finalmente usamos a tangente desse ângulo para calcular
    // o coeficiente angular
    tangente = Math.tan(tetha);
     
    // mostramos o resultado
    System.out.println("O coeficiente angular é: " + tangente);
    
    System.out.println("\n\n");
    System.exit(0);
  }
} 

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como usar a propriedade Eof para verificar se estamos no último registro do TClientDataSet do Delphi

Quantidade de visualizações: 14771 vezes
Em algumas situações gostaríamos de verificar se já estamos no último registro do TClientDataSet, ou seja, estamos percorrendo todos os registros do dataset e queremos saber se já estamos no último. Para isso podemos usar a propriedade Eof da classe TClientDataSet. Esta propriedade retorna true se estivermos no último registro e false em caso contrário.

Veja um trecho de código no qual usamos um laço while para percorrer todos os registros de um TClientDataSet. Note o uso da propriedade Eof para finalizar as iterações do laço:

procedure TForm3.Button4Click(Sender: TObject);
begin
  // vamos percorrer todos os registros do TClientDataSet
  ClientDataSet1.First; // vamos para o primeiro registro
  // e agora disparamos um laço While
  while not ClientDataSet1.Eof do
    begin
      // vamos mostrar em um TMemo os valores do
      // campo id de cada registro
      Memo1.Lines.Add(ClientDataSet1.FieldByName('id').AsString);
      // vamos mover para o próximo registro
      ClientDataSet1.Next;
    end;
end;


A propriedade Eof é verdadeira quando:

a) Abrimos um dataset vazio.

b) Efetuamos uma chamada ao método Last do dataset.

c) Chamamos o método Next do dataset e a chamada falha porque o registro atual já é o último registro no dataset.

d) Efetuamos uma chamada ao método SetRange em uma faixa de dados ou dataset vazio.

Esta dica foi escrita e testada no Delphi 2009.


VB.NET ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em VB.NET dados dois pontos no plano cartesiano

Quantidade de visualizações: 1437 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem VB.NET que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

Imports System

Module Program
  Sub Main(args As String())
    ' x e y do primeiro ponto
    Console.Write("Informe a coordenada x do primeiro ponto: ")
    Dim x1 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do primeiro ponto: ")
    Dim y1 As Double = Double.Parse(Console.ReadLine())

    ' x e y do segundo ponto
    Console.Write("Informe a coordenada x do segundo ponto: ")
    Dim x2 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do segundo ponto: ")
    Dim y2 As Double = Double.Parse(Console.ReadLine())

    ' agora vamos calcular o coeficiente angular
    Dim m As Double = (y2 - y1) / (x2 - x1)

    ' e mostramos o resultado
    Console.WriteLine("O coeficiente angular é: " & m)

    Console.WriteLine("\nPressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código em linguagem VB.NET nós teremos o seguinte resultado:

O coeficiente angular é: 0,6666666666666666

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

Imports System

Module Program
  Sub Main(args As String())
    ' x e y do primeiro ponto
    Console.Write("Informe a coordenada x do primeiro ponto: ")
    Dim x1 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do primeiro ponto: ")
    Dim y1 As Double = Double.Parse(Console.ReadLine())

    ' x e y do segundo ponto
    Console.Write("Informe a coordenada x do segundo ponto: ")
    Dim x2 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do segundo ponto: ")
    Dim y2 As Double = Double.Parse(Console.ReadLine())

    ' vamos obter o comprimento do cateto oposto
    Dim cateto_oposto As Double = y2 - y1
    ' e agora o cateto adjascente
    Dim cateto_adjascente As Double = x2 - x1
    ' vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
    ' (em radianos, não se esqueça)
    Dim tetha As Double = Math.Atan2(cateto_oposto, cateto_adjascente)
    ' e finalmente usamos a tangente desse ângulo para calcular
    ' o coeficiente angular
    Dim tangente As Double = Math.Tan(tetha)

    ' e mostramos o resultado
    Console.WriteLine("O coeficiente angular é: " & tangente)

    Console.WriteLine("\nPressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


C++ ::: STL (Standard Template Library) ::: Vector C++

Como obter um iterador para o primeiro ou último elemento de um vector C++ usando as funções begin() e end()

Quantidade de visualizações: 8256 vezes
Há situações em nossos códigos que precisamos obter uma referência ao primeiro ou último elemento de um vector e usar tal referência para acessar os demais elementos. Isso pode ser feito com um iterador. Assim, para obter um iterador para o primeiro elemento nós podemos usar a função begin(), que retorna duas formas de iteradores:

iterator begin();
const_iterator begin() const;

A primeira versão retorna um iterador que pode ser usado, não somente para acessar os elementos do vector, como também para alterar seus valores. Veja no trecho de código abaixo como obtemos um iterador para o primeiro elemento e o incrementamos de forma a atingir o último elemento:

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter um iterador para o primeiro elemento
  vector<int>::iterator it = valores.begin();
  // vamos mostrar o valor atual do iterador
  cout << "Valor atual do iterador: " << *it << endl;

  // vamos adiantar o iterador duas vezes
  it += 2;

  // vamos mostrar o novo valor do iterador
  cout << "Novo valor do iterador: " << *it << endl;

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

É importante lembrar que podemos alterar os valores dos elementos de um vector por meio do iterador. Veja:

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter um iterador para o primeiro elemento
  vector<int>::iterator it = valores.begin();

  // vamos atribuir um novo valor ao primeiro elemento
  *it = 128;

  // vamos mostrar o novo valor do primeiro elemento
  cout << "Novo valor do primeiro elemento: " << valores.front() << endl;

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

Mas, e se quiséssemos evitar tal alteração? Bastaria usar um iterador constante:

// vamos obter um iterador constante para o primeiro elemento
vector<int>::const_iterator it = valores.begin();

Faça esta alteração no código anterior e verá que o programa não mais compila. A mensagem de erro de compilação indica:

assignment of read-only location

Vamos agora obter um iterador para o último elemento. Para isso podemos usar a função end(). Veja:

iterator end();
const_iterator end() const;

É importante notar que end() retorna um iterador para o elemento APÓS o último elemento do vector. Veja no trecho de código abaixo como obtemos um iterador para o último elemento:

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos obter um iterador para o último elemento
  vector<int>::iterator it = valores.end();

  // como end() retorna um iterador para um elemento
  // APÓS o último elemento do vector, temos que voltar
  // um elemento para acessarmos de fato o último elemento
  it--;

  // vamos mostrar o valor atual do iterador
  cout << "Valor do iterador: " << *it << endl;

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

Um dos usos mais comuns dos iteradores begin() e end() é quando queremos percorrer todos os elementos de um vector. Veja:

#include <iostream>
#include <vector>

using namespace std;

int main(int argc, char *argv[]){
  // um vector vazio que conterá inteiros
  vector<int> valores;

  // vamos inserir três elementos
  valores.push_back(54);
  valores.push_back(13);
  valores.push_back(87);

  // vamos percorrer o vector e exibir os elementos
  vector<int>::iterator it;
  for(it = valores.begin(); it < valores.end(); it++){
    cout << *it << endl;
  }

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



Python ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string para float ou double em Python usando a função float()

Quantidade de visualizações: 1952 vezes
Em algumas situações nós temos um valor numérico representado por uma string e gostaríamos de convertê-lo para um valor float ou double na linguagem Python. Para isso nós podemos usar a função float(), disponível por padrão na linguagem.

Note o uso da função type() para exibirmos o tipo da variável antes e depois da conversão.

Veja o código Python completo para o exemplo:

# método principal
def main():
  # vamos pedir para o usuário informar o preço de um produto
  # note que o preço será lido como uma string
  preco = input("Informe o valor do produto: ")

  # vamos exibir o valor lido e o tipo da variável
  print("Você informou o valor: {0}".format(preco))
  print("O tipo da variável é: {0}".format(type(preco)))

  # agora vamos converter a string para o tipo float
  preco = float(preco)
  
  # vamos mostrar o novo tipo da variável
  print("O novo tipo da variável é: {0}".format(type(preco)))

if __name__== "__main__":
  main()

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

Informe o valor do produto: 45.92
Você informou o valor: 45.92
O tipo da variável é: <class 'str'>
O novo tipo da variável é: <class 'float'>

É preciso, no entanto, ter cuidado ao informar a string que será convertida para float. Se, em vez de informar o ponto separador de decimal, nós informarmos a vírgula, o seguinte erro será apresentado:

Informe o valor do produto: 45,21
Você informou o valor: 45,21
O tipo da variável é: <class 'str'>
Traceback (most recent call last):
File "c:\estudos_python\estudos.py", line 18, in <module>
main()
File "c:\estudos_python\estudos.py", line 12, in main
preco = float(preco)
ValueError: could not convert string to float: '45,21'


Desafios, 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


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