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:

Dart ::: Dicas de Estudo e Anotações ::: Estruturas de Controle

Como usar o laço do..while da linguagem Dart

Quantidade de visualizações: 2188 vezes
O laço do...while (faça...enquanto) do Dart é usado quando queremos repetir uma ou mais instruções ENQUANTO uma condição estiver sendo satisfeita. A diferença entre o laço do...while e o laço while é que o primeiro testa a condição de continuidade no final, enquanto o segundo testa a condição de continuidade no início. Por essa razão, o do...while será executado pelo menos uma vez.

Veja um exemplo no qual contamos de 1 até 10:

void main() {
  int cont = 1;

  // vamos contar de 1 até 10
  do {
    print(cont);
    cont++;
  } while (cont <= 10);
}

A execução deste código mostrará o seguinte resultado:

c:\estudos_dart>dart laco_do_while.dart
1
2
3
4
5
6
7
8
9
10

Veja agora um exemplo no qual pedimos para o usuário informar vários valores inteiros e mostraremos a soma. O valor -1 interrompe a leitura:

// Vamos importar a biblioteca dart:io
import 'dart:io';

void main() {
  int valor; // guarda o valor informado pelo usuário
  int soma = 0; // guarda a soma dos valores

  do {
    // vamos pedir para o usuário digitar um valor inteiro
    stdout.write("Digite um número inteiro (-1 para parar): ");
    valor = int.parse(stdin.readLineSync());

    // este valor pode ser somado?
    if (valor != -1) {
      soma = soma + valor;
    }
  } while (valor != -1);

  // saímos do laço
  print("A soma dos valores lidos é $soma");
}

Execute este código e você terá um resultado parecido com:

c:\estudos_dart>dart laco_do_while.dart
Digite um número inteiro (-1 para parar): 5
Digite um número inteiro (-1 para parar): 2
Digite um número inteiro (-1 para parar): 4
Digite um número inteiro (-1 para parar): -1
A soma dos valores lidos é 11


VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercício Resolvido de VisuAlg - Um algoritmo em VisuAlg que testa se um triângulo é equilátero, isósceles ou escaleno

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

Escreva um algoritmo que lê três valores para os lados de um triângulo. O algoritmo deve verificar se o triângulo é equilátero (todos os lados iguais), isósceles (dois lados iguais) ou escaleno (todos os lados diferentes).

Sua saída deverá ser parecida com:

Informe o lado 1 do triângulo: 6
Informe o lado 2 do triângulo: 8
Informe o lado 3 do triângulo: 2
O triângulo é escaleno
Resposta/Solução:

Veja a resolução deste algoritmo em VisuAlg:

Algoritmo "Testa se um triângulo é equilátero, escaleno ou isósceles"

Var
  // variáveis usadas na resolução do problema
  lado1, lado2, lado3: real

Inicio
  // vamos ler os lados do triângulo
  escreva("Informe o lado 1 do triângulo: ")
  leia(lado1)
  escreva("Informe o lado 2 do triângulo: ")
  leia(lado2)
  escreva("Informe o lado 3 do triângulo: ")
  leia(lado3)

  // vamos testar se o triângulo é equilátero
  // os três lados iguais
  se (lado1 = lado2) e (lado2 = lado3) entao
    escreval("O triângulo é equilátaro.")
  senao
    // vamos testar se o triângulo é escaleno
    // os três lados diferentes
    se (lado1 <> lado2) e (lado1 <> lado3) e (lado2 <> lado3) entao
      escreval("O triângulo é escaleno")
    senao
      // vamos testar se o triângulo é isósceles
      // dois lados iguais e um diferente
      se (lado1 = lado2) ou (lado1 = lado3) ou (lado2 = lado3) entao
        escreval("O triângulo é isósceles")
      fimse
    fimse
  fimse
Fimalgoritmo



C# ::: Dicas & Truques ::: Tipos de Dados

Como usar os tipos de dados byte e sbyte da linguagem C#

Quantidade de visualizações: 15989 vezes
O tipo de dados byte é usado quando queremos armazenar valores inteiros na faixa de 0 a 255, ou seja, valores inteiros apenas positivos. Veja um exemplo de declaração e definição de uma variável deste tipo:

// uma variável do tipo byte
byte valor = 45;

O tipo byte (que possui 8 bits não sinalizados) é um apelido C# para o tipo System.Byte da plataforma .NET. Note que quando inicializamos uma variável do tipo byte com um literal inteiro, este valor é convertido implicitamente de int para byte. Se o valor sendo definido for maior que a faixa permitida, o programa não compilará. Veja:

// valor fora da faixa suportada pelo tipo byte
byte valor = 290;

Ao tentarmos compilar esta linha teremos o seguinte erro:

Constant value '290' cannot be converted to a 'byte'

Quando se trata de conversões implícitas, um valor do tipo byte pode ser convertido, sem a necessidade de cast, para os tipos short, ushort, int, uint, long, ulong, float, double ou decimal. Veja:

// variável do tipo byte
byte valor = 28;

// variável do tipo float
float valor2 = valor;

O caminho oposto não é verdade, ou seja, não é possível atribuir uma variável do tipo short à uma variável do tipo byte. Veja:

// variável do tipo short
short valor = 50;

// variável do tipo byte
byte valor2 = valor;

// mensagem de erro de compilação
Cannot implicitly convert type 'short' to 'byte'. 
An explicit conversion exists (are you missing a cast?)

Esta conversão não é possível, ainda que o valor contido na variável do tipo short esteja na faixa aceitável pelo tipo byte. Neste caso, um cast (conversão explícita) se faz necessário:

// variável do tipo short
short valor = 50;

// variável do tipo byte
byte valor2 = (byte)valor;

Resumindo, nenhum outro tipo de dados em C# pode ser convertido para o tipo byte implicitamente. Se quiser fazê-lo, use uma conversão explícita (cast).

O tipo sbyte, por sua vez, pode armazenar valores inteiros na faixa de -128 até 127 e possui 8 bits sinalizados. Este tipo é um apelido C# para o tipo de dados System.SByte da plataforma .NET. Veja um exemplo de seu uso:

static void Main(string[] args){
  // variável do tipo sbyte
  sbyte valor = -45;

  // exibe o resultado
  Console.WriteLine("O valor da variável é: " + valor);

  // pausa o programa
  Console.ReadKey();
}

Note que, a exemplo de byte, o tipo sbyte também é governado por algumas regras de conversão e atribuição de valores literais. Há uma conversão implícita de sbyte para os tipos short, int, long, float, double e decimal. A conversão de qualquer outro tipo de dados para o tipo sbyte só pode ser feita por meio de cast (conversão explícita).


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

Como usar a propriedade Active da classe TClientDataSet do Delphi

Quantidade de visualizações: 12799 vezes
A propriedade Active de um controle TClientDataSet pode ser definida em tempo de design (pelo Object Inspector) ou em tempo de execução. Se o valor for True os dados armazenados no TClientDataSet podem ser lidos e manipulados. Se o valor for False, o client dataset está fechado (closed) e não podemos acessar nem manipular os dados contidos nele.

Veja no trecho de código abaixo como definir o valor da propriedade Active em tempo de execução:

procedure TForm3.Button3Click(Sender: TObject);
begin
  // vamos ativar o client dataset
  ClientDataSet1.Active := True;

  // vamos testar se o client dataset foi mesmo ativado
  if ClientDataSet1.Active then
    ShowMessage('O ClientDataSet está ativo')
  else
    ShowMessage('O ClientDataSet  NÃO está ativo')
end;

Ao clicar no botão nós "ativamos" o client dataset e em seguida testamos o valor da propriedade Active para informar se o controle foi realmente ativado. É preciso ter muito cuidado. Tentar manipular os dados de um client dataset fechado pode resultar em uma exceção do tipo EDatabaseError com mensagens parecidas com:

Project Projeto.exe raised exception class EDatabaseError with message 'ClientDataSet1: Cannot perform this operation on a closed dataset'.

Ao definirmos o valor True para a propriedade Active as seguintes ações ocorrem:

1) O client dataset é preenchido com dados. Dependendo das propriedades do controle, estes dados podem vir de três formas diferentes: a) Do arquivo especificado na propriedade FileName; b) Do provider especificado na propriedade ProviderName ou por meio do método SetProvider. (algumas classes derivadas de TCustomClientDataSet possuem um componente interno que faz o papel do provider); c) Os dados que estavam ativos quando o client dataset foi desativado (somente se a aplicação foi executada durante um certo período depois que o dataset foi desativado).

2) O evento BeforeOpen é disparado.

3) O valor dsBrowse é atribuído à propriedade State do dataset.

4) Abre e posiciona um cursor no primeiro registro do conjunto de dados.

5) Dispara o evento AfterOpen.

Se o client dataset nunca foi ativado, atribuir o valor True para a propriedade Active faz com que a estrutura (metadata) do client dataset seja definida. Esta estrutura é obtida juntamente com o pacote de dados a partir do provider ou armazenado em disco. Se não houver pacote de dados, tal estrutura é construída usando o valor atual da propriedade FieldDefs ou a partir dos componentes de campos persistentes listados na propriedade Fields.

Se um erro ocorrer durante a abertura do dataset, seu estado (State) é definido como dsInactive e o cursor de navegação é fechado.

Ao definirmos o valor False para a propriedade Active as seguintes ações ocorrem:

1) O evento BeforeClose é disparado.

2) O valor para a propriedade State é definido como dsInactive.

3) O cursor de navegação é fechado, salvando os dados atuais em disco se a propriedade FileName estiver definida e salvando o pacote de dados atual em cache de forma que o mesmo possa ser restaurado mais tarde quando o dataset for reaberto.

4) O evento AfterClose é disparado.

Importante: Uma chamada ao método Open do TClientDataSet define a propriedade Active como True, enquanto uma chamada ao método Close a define como False.

Esta dica foi escrita e testada no Delphi 2009.


Java ::: Pacote java.lang ::: String

Como quebrar uma string Java em suas partes usando o método split() da classe String

Quantidade de visualizações: 4415 vezes
O método split() da classe String é usado quando queremos quebrar uma string em suas partes e obter, como retorno, um vetor (matriz ou array) de objetos da classe String. Veja sua assinatura:

public String[] split(String regex)

Veja que o argumento regex é uma expressão regular que será usada para separar as partes da string. Veja um trecho de código no qual separamos todas as palavras de uma frase usando o caractere de espaço como delimitador:

package estudos;

public class Estudos{
  public static void main(String[] args) {
    String frase = "Gosto muito de programar em Java e PHP";
    
    // vamos obter as partes da string usando o espaço como delimitador
    String partes[] = frase.split("\\s+");
    
    // vamos percorrer as partes obtidas
    for(int i = 0; i < partes.length; i++){
      System.out.println(partes[i]);
    }
  }
}

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

Gosto
muito
de
programar
em
Java
e
PHP

Tenha cuidado. Se uma expressão regular inválida for fornecida para o método split(), uma exceção do tipo PatternSyntaxException será atirada.

Há uma sobrecarga do método split() com a seguinte assinatura:

public String[] split(String regex, int limit)

Esta sobrecarga nos permite definir a quantidade de vezes que o padrão da expressão regular será aplicado e afeta a quantidade de partes da string que serão retornados. Veja:

package estudos;

public class Estudos{
  public static void main(String[] args) {
    String frase = "Gosto muito de programar em Java e PHP";
    
    // vamos obter as partes da string usando o espaço como delimitador
    String partes[] = frase.split("\\s+", 3);
    
    // vamos percorrer as partes obtidas
    for(int i = 0; i < partes.length; i++){
      System.out.println(partes[i]);
    }
  }
}

Ao executarmos este código o resultado será:

Gosto
muito
de programar em Java e PHP



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.


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