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:

LISP ::: Dicas & Truques ::: Matemática e Estatística

Como calcular MDC em Lisp usando a função GCD

Quantidade de visualizações: 1001 vezes
Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada:

Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

Podemos calcular o Máximo Divisor Comum na linguagem Common Lisp usando a função GCD. Esta função aceita um número ilimitado de valores inteiros e retorna seu Máximo Divisor Comum.

Veja um trecho de código Common Lisp no qual pedimos para o usuário informar dois números inteiros e, em seguida, fazemos uso da função GCD para retornar o MDC:

; variáveis que vamos usar no programa
(let ((num1)(num2)(mdc))
  ; Vamos ler o primeiro número
  (princ "Informe o primeiro número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num1
  (setq num1 (read))
  
  ; Vamos ler o segundo número
  (princ "Informe o segundo número: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável num2
  (setq num2 (read))
  
  ; Vamos obter o MDC dos dois números informados
  (setq mdc (gcd num1 num2))
  
  ; E mostramos o resultado
  (format t "O Máximo Divisor Comum é: ~D" mdc)
)

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

Informe o primeiro número: 9
Informe o segundo número: 12
O Máximo Divisor Comum é: 3


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

Como calcular a equação reduzida da reta em GoLang dados dois pontos pertencentes à reta

Quantidade de visualizações: 1271 vezes
Nesta dica de Go veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código GoLang completo para esta tarefa:

// pacote principal
package main

// vamos importar o módulo de formatação de
// entrada e saída
import "fmt"
  
// esta é a função principal do programa
func main() {
  // variáveis que vamos usar na resolução do problema
  var x1, y1, x2, y2, m, n float32
  var sinal string

  // vamos ler as coordenadas do primeiro ponto
  fmt.Print("Coordenada x do primeiro ponto: ")
  fmt.Scanln(&x1)
  fmt.Print("Coordenada y do primeiro ponto: ")
  fmt.Scanln(&y1)
    
  // vamos ler as coordenadas do segundo ponto
  fmt.Print("Coordenada x do segundo ponto: ")
  fmt.Scanln(&x2)
  fmt.Print("Coordenada y do segundo ponto: ")
  fmt.Scanln(&y2)
  
  sinal = "+"
  // vamos calcular o coeficiente angular da reta
  m = (y2 - y1) / (x2 - x1)
  // vamos calcular o coeficiente linear
  n = y1 - (m * x1)
 
  // coeficiente linear menor que zero? O sinal será negativo
  if n < 0 {
    sinal = "-"
    n = n * -1
  }
  
  // mostra a equação reduzida da reta
  fmt.Printf("Equação reduzida: y = %.2fx %s %.2f",
    m, sinal, n);
}

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

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

>> y = (-0.75 * 3) + 8.75
y = 6.5000

temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando força-bruta

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

Dado o vetor:

// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Escreva um método Java que rotaciona este vetor para a direita um determinado número de casas. A função deverá receber o array e um inteiro indicando o número de rotações, ou seja, o número de vezes que os elementos do vetor serão movimentados para a direita.

Sua saída deverá ser parecida com:

Array na ordem original:
1 6 9 3 7 8 5 2 

Rotação do vetor depois do passo 1:
2 1 6 9 3 7 8 5 

Rotação do vetor depois do passo 2:
5 2 1 6 9 3 7 8 

Rotação do vetor depois do passo 3:
8 5 2 1 6 9 3 7 

Array depois de rotacionar 3 vezes:
8 5 2 1 6 9 3 7
Resposta/Solução:

Veja a resolução comentada deste exercício em Java:

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um vetor de inteiros
    int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
    
    // mostramos o array na ordem original
    System.out.println("Array na ordem original:");
    exibirVetor(valores);
    
    // vamos rotacionar o array 3 casas para a direita
    valores = rotacionarArray(valores, 3);
    
    // e mostramos o resultado
    System.out.println("Array depois de rotacionar 3 vezes:");
    exibirVetor(valores);
  }
  
  // método usado para exibir o array
  public static void exibirVetor(int []vetor){
    // percorremos cada elemento do vetor
    for (int i = 0; i < vetor.length; i++) {
      System.out.print(vetor[i] + " ");
    }
    System.out.println("\n");
  }
  
  // método que recebe um vetor de inteiros e o rotaciona um
  // determinado número de vezes
  public static int[] rotacionarArray(int[] vetor, int n) {
    // um laço externo que repete a mesma quantidade de n
    for (int i = 0; i < n; i++) {
      // começamos no último elemento e regredimos até
      // o segundo elemento do vetor
      for (int j = vetor.length - 1; j > 0; j--) {
        // avançamos um elemento de cada vez para
        // a direita
        int temp = vetor[j];
        vetor[j] = vetor[j - 1];
        vetor[j - 1] = temp;
      }  

      // mostramos o progresso
      System.out.println("Rotação do vetor depois do passo " + (i + 1) + ":");
      exibirVetor(vetor);
    }
    return vetor;
  }
}

A solução que apresentamos aqui usa a força-bruta, isto é, uma solução não otimizada e pouco recomendada para arrays com um número exagerado de elementos. Por ser força-bruta, o laço interno percorre todos os elementos do vetor, trocando-os de lugares. Em outras dicas do site nós colocamos versões melhoradas deste código.


C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico

Exercício Resolvido de C - Como calcular o restante de um salário após o pagamento de duas contas com juros

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

Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia.

Sua saída deverá ser parecida com:

Informe o salário: 1350
Valor da primeira conta: 140
Valor da segunda conta: 300

Total das contas sem juros: 440.0
Total dos juros: 8.8
Total das contas com juros: 448.8
Sobra do salário: 901.2
Resposta/Solução:

Veja a resolução comentada deste exercício usando C:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português

  double salario, conta1, conta2, total_contas;
  double total_juros, total_contas_com_juros;
  double total_contas_sem_juros, sobra_salario;

  // vamos pedir que o usuário informe o valor do salário e das duas contas
  printf("Informe o salário: ");
  scanf("%lf", &salario);
  printf("Valor da primeira conta: ");
  scanf("%lf", &conta1);
  printf("Valor da segunda conta: ");
  scanf("%lf", &conta2);
    
  // total a ser pago nas duas contas sem os juros
  total_contas = conta1 + conta2;
  // calcula os juros
  total_juros = total_contas * 0.02;
  // total a ser pago com juros
  total_contas_com_juros = total_contas + total_juros;
  // sobra do salário
  sobra_salario = salario - total_contas_com_juros;
    
  // mostra os resultados
  printf("\nTotal das contas sem juros: %lf", total_contas);
  printf("\nTotal dos juros: %lf", total_juros);
  printf("\nTotal das contas com juros: %lf", total_contas_com_juros);
  printf("\nSobra do salário: %lf", sobra_salario);
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter strings em valores TDateTime usando as funções StrToDate() e StrToDateDef() do Delphi

Quantidade de visualizações: 18805 vezes
A função StrToDate() da unit SysUtils é usada quando queremos converter strings em valores TDateTime. No Delphi 2009 esta função possui duas assinaturas:

function StrToDate(const S: string): TDateTime; overload;
function StrToDate(const S: string; const FormatSettings: 
  TFormatSettings): TDateTime; overload;


A primeira versão de StrToDate() recebe uma string contendo uma data e retorna um objeto TDateTime. Veja o seguinte trecho de código:

procedure TForm1.Button1Click(Sender: TObject);
var
  data: string;
  data2: TDateTime;
begin
  // vamos converter a data 22/02/2005
  data := '22/02/2005';

  // a conversão acontece aqui. Note que, caso a conversão
  // não seja possível, uma exceção do tipo EConvertError será
  // disparada (lançada)
  try
    data2 := StrToDate(data);
    ShowMessage(DateTimeToStr(data2));
  except
    on e: EConvertError do
      ShowMessage('Não foi possível efetuar a conversão: ' +
        e.Message);
  end;
end;


Note que a função StrToDate() lançará uma exceção do tipo EConvertError se a string não possuir uma data válida. Os valores de strings representando datas válidas incluem mês/dia/ano, dia/mês/ano e ano/mês/dia. A ordem de dia, mês e ano é determinada pela variáve global ShortDateFormat. Se fornecermos valores apenas para o dia e o mês a função incluirá o ano atual. Não podemos esquecer a barra de separação de datas. Se seu aplicativo foi desenvolvido para rodar em outras localidades, obtenha o separador de datas por meio da variável global DateSeparator.

A primeira versão da função StrToDate() não é segura em relação a threads (thread-safe) devido ao uso de informações de localização contidas em variáveis globais, ou seja, se uma thread modificar os valores de tais variáveis, código sendo executado em outras threads sofrerão as consequencias. Para evitar isso podemos usar a segunda versão de StrToDate(), que usa um objeto FormatSettings para guardar as informações de localização. Veja um exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  data: string;
  data2: TDateTime;
  formato: TFormatSettings;
begin
  // vamos converter a data 22/02/2005
  data := '22/02/2005';

  // a conversão acontece aqui. Note que, caso a conversão
  // não seja possível, uma exceção do tipo EConvertError será
  // disparada (lançada)
  try
    GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formato);
    data2 := StrToDate(data, formato);
    ShowMessage(DateTimeToStr(data2));
  except
    on e: EConvertError do
      ShowMessage('Não foi possível efetuar a conversão: ' +
        e.Message);
  end;
end;

A função StrToDateDef() é similar à função StrToDate(). A diferença é que, se a string possuir uma data inválida, a função StrToDateDef() retorna uma data padrão, ou seja, não haverá nenhuma exceção atirada. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  data: string;
  data2: TDateTime;
begin
  // vamos converter a data 2s2/02/2005 (inválida)
  data := '2s2/02/2005';

  // a conversão acontece aqui. Note que, caso a conversão
  // não seja possível, a data atual será retornada
  data2 := StrToDateDef(data, Now);
  ShowMessage(DateTimeToStr(data2));
end;

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


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

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á 30 usuários muito felizes estudando em nosso site.