Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira
Card 0 de 0
O filtro aplicado não retornou nenhum resultado. Clique o botão Remover Filtro ou experimente um filtro diferente.

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:

Delphi ::: Dicas & Truques ::: Ponteiros, Referências e Memória

Como usar nil para testar ou indicar que um ponteiro Delphi não referencia nenhuma posição de memória

Quantidade de visualizações: 15397 vezes
O propósito dos ponteiros é nos permitir acessar e manipular os valores de outras variáveis. Isso é feito acessando-se diretamente o endereço de memória destas variáveis. Porém, há situações nas quais queremos testar se um determinado ponteiro está realmente apontando para um local na memória. Veja o seguinte trecho de código:

procedure TForm1.Button1Click(Sender: TObject);
var
  pvalor: ^integer;
begin
  // vamos exibir o valor da variável referenciada pelo
  // ponteiro pvalor
  ShowMessage(IntToStr(pvalor^));
end;

Ao executarmos este código nós teremos um valor aleatório sendo exibido (e um warning do tipo W1036 Variable 'pvalor' might not have been initialized. Isso acontece porque criamos um ponteiro para um Integer mas não indicamos o endereço da variável para a qual ele aponta, ou seja, até o momento este ponteiro é nulo (não aponta para nenhuma posição de memória). Mova a declaração do ponteiro para a seção interface e verá que código compilará mas teremos uma exceção do tipo EAccessViolation (Exception class EAccessViolation with message 'Access violation at address ... in module ...). Clássico erro de lógica. Estamos tentando acessar dados não existentes na memória.

Esta situação pode ser evitada testando se o ponteiro ainda é nulo antes de tentarmos desreferenciá-lo. Veja:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos exibir o valor da variável referenciada pelo
  // ponteiro pvalor
  if pvalor = nil then
    ShowMessage('O ponteiro ainda é nulo.')
  else
    ShowMessage(IntToStr(pvalor^));
end;

Note que movi a declaração do ponteiro para a secão interface, de forma a torná-la global. Isso evita que o ponteiro seja automaticamente inicializado (o que sempre acontece com as variáveis locais). Ao executar o código novamente você verá a mensagem indicando que o ponteiro ainda é nulo.

Podemos também usar nil para, explicitamente, marcar um ponteiro como nulo, ou seja, definir que o ponteiro não aponta para nenhum local na memória. Comece declarando as variáveis abaixo na seção interface do formulário:

valor: Integer;
pvalor: ^Integer;

Em seguida coloque o código abaixo no evento Click de um botão:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos atribuir um valor à variável valor
  valor := 14;

  // vamos "apontar" nosso ponteiro para o local de
  // memória da variável valor
  pvalor := @valor;

  // vamos exibir o valor da variável apontada por pvalor
  ShowMessage(IntToStr(pvalor^));

  // vamos marcar pvalor como nulo
  pvalor := nil;

  // vamos causar um EAccessViolation já que pvalor
  // não aponta para nenhum local na memória agora
  ShowMessage(IntToStr(pvalor^));
end;

Sempre que marcamos um ponteiro como nil, a memória até então ocupada por ele é liberada para uso por parte do sistema operacional ou demais programas. Este procedimento ajuda a evitar os vazamentos de memória (memory leak) tão frequentes em códigos que trabalham com memória alocada dinamicamente.

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


Ruby ::: Dicas & Truques ::: Data e Hora

Como usar a classe Date do Ruby em seus programas

Quantidade de visualizações: 7861 vezes
A classe Date da linguagem Ruby representa datas. Ela o faz trabalhando com anos, meses, semanas e dias. Tenha em mente que, ao usar a classe Date não temos acesso a nada relacionado a horas, minutos ou segundos.

Internamente, uma data é representada como um número: ajd (Astronomical Julian Day Number). O dia da reforma do calendário (Day of Calendar Reform), sg, também é armazenado, para conversões para outros formatos de datas (há também um campo chamado "of" para a diferença de fuso horário, mas este é usado somente na subclasse DateTime).

Um novo objeto Date é criado usando-se um dos métodos de criação de objetos da classe. E tais métodos recebem nomes de acordo com o formato de data. Além disso, os argumentos fornecidos devem obedecer ao formato de data desejado, por exemplo, Date::civil() (apelido para Date::new()) com ano, mês e dia do ano, ou Date::ordinal() com ano e dia do ano. Todos estes métodos de criação de objetos da classe também aceitam o dia da reforma do calendário (Day of Calendar Reform) como um argumento opcional.

Objetos Date são imutáveis após sua criação.

Após criarmos um objeto Date, valores de data podem ser obtidos para os diferentes formatos de data suportados usando métodos de instância. Por exemplo, mon() retorna o mês civil, cwday() retorna o dia comercial da semana, e yday() retorna o dia ordinal do ano. Valores Date podem ser obtidos em qualquer formato, independente de qual formato foi usado para criar a instância do objeto.

A classe Date inclui o módulo Comparable, o que permite que objetos Date possam ser comparados e ordenados, faixas de datas possam ser criadas e assim por diante.

Veja no trecho de código abaixo como podemos criar um objeto Date representando a data atual:

# importa o módulo date
require 'date'

# obtém a data de hoje
hoje = Date.today

# exibe o resultado
puts "Hoje é " + hoje.strftime("%e/%m/%Y")



C# ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cosseno de um ângulo em C# usando a função Cos() da classe Math - Calculadora de cosseno em C#

Quantidade de visualizações: 2292 vezes
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria.

No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem:



Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles.

Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula:

\[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \]

Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função Cos() da linguagem C#. Esta função, que é um método da classe Math, recebe um valor numérico Double e retorna um valor Double, ou seja, também numérico) entre -1 até 1 (ambos inclusos). Veja:

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // vamos calcular o cosseno de três números
      Console.WriteLine("Cosseno de 0 = " + Math.Cos(0));
      Console.WriteLine("Cosseno de 1 = " + Math.Cos(1));
      Console.WriteLine("Cosseno de 2 = " + Math.Cos(2));

      Console.WriteLine("\nPressione qualquer tecla para sair...");
      // pausa o programa
      Console.ReadKey();
    }
  }
}

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

Cosseno de 0 = 1
Cosseno de 1 = 0,5403023058681397
Cosseno de 2 = -0,4161468365471424

Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo:




C# ::: Coleções (Collections) ::: ArrayList

Como escrever um método C# que retorna uma ArrayList

Quantidade de visualizações: 17541 vezes
Estudantes C# ficam um pouco confusos quando solicitados a escrever funções que retornam objetos de classes. E essa confusão é maior ainda quando precisam retornar uma ArrayList, mais precisamente um objeto da classe ArrayList.

Esta dica mostra como isso pode ser feito. Veja que temos um método que define, em sua assinatura, que o tipo de retorno não é void (sem retorno) mas sim um objeto da classe ArrayList. No corpo deste método temos a criação da ArrayList propriamente dita, a adição de cinco inteiros e finalmente o uso da palavra-chave return para retornar o ArrayList já preenchido ao chamador do método.

Note que o método Main é responsável por efetuar uma chamada ao método, obter o ArrayList resultante e em seguida usar o laço foreach para exibir seus valores:

// método que retornará uma ArrayList
static ArrayList obterLista(){
  // Cria o ArrayList
  ArrayList lista = new ArrayList();

  // Adiciona 5 inteiros
  lista.Add(1);
  lista.Add(2);
  lista.Add(3);
  lista.Add(4);
  lista.Add(5);

  // retorna o ArrayList preenchido
  return lista;
}

static void Main(string[] args){
  // obtém um ArrayList preenchido a partir do
  // método obterLista
  ArrayList mLista = obterLista();

  // exibe os valores do ArrayList
  foreach (int valor in mLista){
    Console.Write("{0} ", valor);
  }

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



Java ::: Classes e Componentes ::: JComboBox

Tutorial Java Swing - Como remover todos os itens de um JComboBox (Caixa de Combinação) em tempo de execução

Quantidade de visualizações: 12702 vezes
Nesta dica mostrarei como é possível usar o método removeAllItems() da classe JComboBox para remover todos os seus itens. Note que criei a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual de GUI, como o que está disponível no IDE Netbeans. Esta abordagem pode não ser produtiva, mas é excelente para entender como o Java Swing funciona.

Veja o código completo para o exemplo:

package arquivodecodigos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class Estudos extends JFrame{
  JComboBox combo;  
 
  public Estudos(){
    super("A classe JComboBox");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
     
    // Cria os itens da lista
    String nomes[] = {"Carlos", "Marcelo", "Fabiana",
      "Carolina", "Osmar"};
 
    // Cria o JComboBox
    combo = new JComboBox(nomes);
 
    // Um botão que permite limpar o JComboBox
    JButton btn = new JButton("Limpar");
    btn.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          // remove todos os itens do JComboBox
          combo.removeAllItems(); 
        }
      }
    );
 
    // Adiciona o JComboBox à janela
    c.add(combo);
 
    // Adiciona o botão à janela
    c.add(btn);  
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Aqui os itens do JComboBox foram inseridos a partir de um vetor de String.


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.


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