Revit C# ::: Dicas & Truques ::: Pontos e Coordenadas

Como pedir para o usuário selecionar um ponto na área de desenho do Revit usando a função PickPoint() do objeto Selection da Revit C# API

Quantidade de visualizações: 383 vezes
Em várias situações nós precisamos que o usuário indique um ponto na área de desenho do Revit, ou seja, as coordenadas x, y e z na qual nosso código Revit C# efetuará alguma ação. Para isso nós podemos usar a função PickPoint() do objeto Selection, que retorna um objeto da classe XYZ.

O primeiro passo é acessar o documento ativo UIDocument, por meio de uma chamada a this.ActiveUIDocument. Em seguida nós definimos o tipo de snap usando a enumeração ObjectSnapTypes. Para este exemplo eu usei Endpoints e Intersections, mas você pode usar outros também, tais como Midpoints, Nearest, Intersections, etc.

Uma vez obtido o tipo de snap, nós o usamos para a chamada à função PickPoint(). Feito isso nós só precisamos acessar o objeto XYZ retornado e mostrar as suas coordenadas.

Veja o código Revit C# completo para o exemplo:

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

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) {
      // vamos obter uma referência ao UIDocument ativo
      UIDocument uidoc = this.ActiveUIDocument;
      
      // agora mostramos uma mensagem para o usuário selecionar um
      // elemento
      TaskDialog.Show("Aviso", "Selecione um ponto na área de desenho");
      
      // vamos escolher o tipo de snap
      ObjectSnapTypes tiposSnap = ObjectSnapTypes.Endpoints |
        ObjectSnapTypes.Intersections;
      
      // agora o usuário seleciona um ponto e nós o guardamos na
      // variável ponto, do tipo XYZ
      XYZ ponto = uidoc.Selection.PickPoint(tiposSnap, 
        "Selecione um ponto de extremidade ou intersecção");

      // acessamos as coordenadas do ponto 
      string coordenadas = "X = " + ponto.X + "\nY = " + ponto.Y +
        "\nZ = " + ponto.Z;

      // e mostramos o resultado
      TaskDialog.Show("Revit", "As coordenadas do ponto são:\n" + 
        coordenadas);
    }

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

Ao executar este código Revit C# você terá uma mensagem TaskDialog com um resultado parecido com:

As coordenadas do ponto são:
X = 4.7533122
Y = 11.429872
Z = 23.3871198


C# ::: Datas e Horas ::: DateTime

Como usar o método IsLeapYear() da estrutura DateTime do C# para verificar se um determinado ano é bissexto

Quantidade de visualizações: 7525 vezes
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:

static void Main(string[] args){
  // vamos verificar se o ano 2008
  // é bissexto
  int ano = 2008;

  if(DateTime.IsLeapYear(ano))
    Console.WriteLine("O ano informado é bissexto");
  else
    Console.WriteLine("O ano informado NÃO é bissexto");

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

Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999.


JavaScript ::: Dicas & Truques ::: Data e Hora

Como calcular a quantidade de dias restantes para uma determinada data em JavaScript

Quantidade de visualizações: 9192 vezes
Em algumas situações nós precisamos calcular quantos dias faltam para uma determinada data em JavaScript. Por exemplo, você gostaria de saber quantos dias ainda falta para o Natal, ou para o seu aniversário?

Veja a página HTML completa para o exemplo:

<!doctype html>
<html>
<head>
  <title>Data e hora em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos obter a data de hoje
  var hoje = new Date();
  
  // vamos construir a data do Natal
  var data_natal = new Date(hoje.getFullYear(), 11, 25);
  
  // quantidade de milisegundos em um dia
  var dia = 1000 * 60 * 60 * 24;
 
  // calculamos os dias restantes para a data escolhida  
  var restantes = Math.ceil((data_natal.getTime() - 
    hoje.getTime()) / dia);
	
  // e mostramos o resultado
  document.write("Hoje é: " + hoje.toLocaleDateString() + "<br>");  
  document.write("Faltam " + restantes + " dias para o natal.");
</script>
  
</body>
</html>

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

Hoje é: 06/02/2023
Faltam 322 dias para o natal.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Como calcular a potência de um número usando recursividade em Java - Funções recursivas em Java

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

A potenciação ou exponenciação é a operação de elevar um número ou expressão a uma dada potência. Escreva um método Java recursivo que recebe uma base e um expoente e eleva a base ao expoente.

Seu método deverá possuir a seguinte assinatura:

public static int potencia(int base, int expoente){
  // sua implementação aqui
}
Como melhoria na resolução, você pode tratar o caso no qual o expoente é igual a 0 (na resolução abaixo deixei esta possibilidade em aberto).

Sua saída deverá ser parecida com:

Informe a base: 5
Informe o expoente: 3
A base 5 elevada ao exponente 3 é 125
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // solicita a base
    System.out.print("Informe a base: ");
    // lê a base
    int base = Integer.parseInt(entrada.nextLine());
    // solicita o expoente
    System.out.print("Informe o expoente: ");
    // lê o expoente
    int expoente = Integer.parseInt(entrada.nextLine());
    
    // mostra o resultado
    System.out.print("A base " + base + " elevada ao exponente " +
      expoente + " é " + potencia(base, expoente));
    System.out.println("\n");
  }
  
  // método recursivo que eleva uma base a um determinado expoente
  public static int potencia(int base, int expoente){
    // a recursivida deve parar quando o expoente for igual a 1
    if(expoente == 1){
      return base;
    }
    else{
      // efetua uma nova chamada recursiva fornecendo o expoente - 1
      return base * potencia(base, expoente - 1);
    }
  }
}



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

Como calcular desvio padrão em Python - Python para Matemática e Estatística

Quantidade de visualizações: 5148 vezes
Em Matemática e Estatística, o Desvio padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média.

Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística:

\[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\]

Onde:

a) __$\sigma__$ é o desvio;
b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i;
c) __$\mu__$ é a média aritmética dos valores do conjunto de dados;
d) N é a quantidade de valores no conjunto.

O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto.

Veja o código Python completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores:

# precisamos importar o módulo Math
import math

# função principal do programa
def main():
  # conjunto dos dados
  conjunto = [10, 30, 90, 30]
  soma = 0.0 # soma dos elementos
  desvio_padrao = 0.0 # desvio padrão
  tam = len(conjunto) # tamanho dos dados

  # vamos somar todos os elementos
  for i in range(0, tam):
    soma = soma + conjunto[i]
  
  # agora obtemos a média do conjunto de dados    
  media = soma / tam

  # e finalmente obtemos o desvio padrão
  for i in range(0, tam):
    desvio_padrao = desvio_padrao + math.pow(conjunto[i] - media, 2)
    
  # mostramos o resultado
  print("Desvio Padrão Populacional: {0}".format(math.sqrt(desvio_padrao / tam)))
  print("Desvio Padrão Amostral: {0}".format(math.sqrt(desvio_padrao / (tam - 1))))
  
if __name__== "__main__":
  main()

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

Desvio Padrão Populacional: 30.0
Desvio Padrão Amostral: 34.64101615137755

Veja que, para calcular o Desvio Padrão Populacional, nós dividimos o somatório pela quantidade de elementos no conjunto, enquanto, para calcular o Desvio Padrão Amostral, nós dividimos o somatório pela quantidade de elementos - 1 (cuidado com a divisão por zero no caso de um conjunto com apenas um elemento).


Java ::: Dicas & Truques ::: Strings e Caracteres

Manipulação de texto em Java - Como contar as ocorrências de um caractere em uma string

Quantidade de visualizações: 3 vezes
Nesta dica mostrarei como podemos combinar um laço for e o método charAt() da classe String para contar as ocorrências de um caractere (uma letra) em uma palavra, frase ou texto.

Veja o código completo para o exemplo:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    String frase = "Programar em Java é muito bom";
    System.out.println("Frase: " + frase); 
    
    int cont = 0;
    char letra = 'a'; // ocorrências da letra "a"
     
    for(int i = 0; i < frase.length(); i++){
      if(frase.charAt(i) == letra){
        cont++; 
      }
    }
     
    System.out.println("A frase contem " + 
       cont + " ocorrencias da letra \"" + letra + "\"");
     
    System.exit(0);
  }
}

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

Frase: Programar em Java é muito bom
A frase contém 4 ocorrências da letra "a"


C++ ::: C++ para Engenharia ::: Geometria Analítica e Álgebra Linear

Como somar os elementos da diagonal principal de uma matriz em C++

Quantidade de visualizações: 1572 vezes
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas.

Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas.

Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária.

A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja:



Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando C++. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código C++.

Veja um trecho de código C++ completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior:

#include <iostream>
#include <cstdlib>
   
using namespace std;
   
int main(int argc, char *argv[]){
  // vamos declarar e construir uma matriz de três linhas
  // e três colunas
  int linhas = 3, colunas = 3;
  int matriz[linhas][colunas];
  // guarda a soma dos elementos na diagonal principal
  int soma_diagonal = 0;
    
  // vamos ler os valores para os elementos da matriz
  for(int i = 0; i < linhas; i++){ // linhas
    for(int j = 0; j < colunas; j++){ // colunas
      cout << "Informe o valor para a linha " << i <<
	" e coluna " << j << ": "; 
      cin >> matriz[i][j];       
    }       
  }
     
  // vamos mostrar a matriz da forma que ela
  // foi informada
  cout << "\n";
  // percorre as linhas
  for(int i = 0; i < linhas; i++){ 
    // percorre as colunas
    for(int j = 0; j < colunas; j++){ 
      cout << matriz[i][j] << "   ";
    }
    // passa para a próxima linha da matriz
    cout << "\n";
  }
     
  // vamos calcular a soma dos elementos da diagonal   
  // principal
  for(int i = 0; i < linhas; i++){
    for(int j = 0; j < colunas; j++){
      if(i == j){
        soma_diagonal = soma_diagonal + matriz[i][j];
      }
    }
  }
     
  // finalmente mostramos a soma da diagonal principal
  cout << "\nA soma dos elementos da diagonal principal é: " 
    << soma_diagonal << "\n\n";
       
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

Informe o valor para a linha 0 e coluna 0: 3
Informe o valor para a linha 0 e coluna 1: 7
Informe o valor para a linha 0 e coluna 2: 9
Informe o valor para a linha 1 e coluna 0: 2
Informe o valor para a linha 1 e coluna 1: 4
Informe o valor para a linha 1 e coluna 2: 1
Informe o valor para a linha 2 e coluna 0: 5
Informe o valor para a linha 2 e coluna 1: 6
Informe o valor para a linha 2 e coluna 2: 8

3    7    9
2    4    1
5    6    8

A soma dos elementos da diagonal principal é: 15



Java ::: Coleções (Collections) ::: Stack

Como criar uma pilha em Java usando a classe Stack - Java Collections

Quantidade de visualizações: 13380 vezes
A classe Stack é usada quando precisamos de uma estrutura de dados LIFO (last-in-first-out). Neste tipo de estrutura temos uma pilha de objetos, na qual o último elemento inserido na pilha é sempre o primeiro a sair.

A classe Stack extende a classe Vector com a adição de cinco operações próprias da estrutura de dados pilha. As dicas nesta seção mostram a você como usar cada uma destas operações. Antes, veja a posição da classe Stack na hierarquia de classes Java:

java.lang.Object
  java.util.AbstractCollection<E>
    java.util.AbstractList<E>
      java.util.Vector<E>
        java.util.Stack<E> 


Esta classe implementa as interfaces: Serializable, Cloneable, Iterable<E>, Collection<E>, List<E> e RandomAccess. Veja um trecho de código que cria uma Stack de inteiros, insere três elementos e usa o método pop() para remover o elemento no topo da pilha:

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria uma Stack
    Stack<Integer> pilha = new Stack<Integer>();
    
    // adiciona três elementos na pilha
    pilha.push(34);
    pilha.push(12);
    pilha.push(83);

    // remove o elemento no topo da pilha
    int topo = pilha.pop();

    System.out.println("Elemento removido do " +
     "topo da pilha: " + topo);
  } 
}

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

Elemento removido do topo da pilha: 83


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

Como converter uma string para um valor numérico inteiro usando a função int() do Python

Quantidade de visualizações: 20670 vezes
Em algumas situações precisamos converter uma string ou a entrada do usuário para um valor inteiro. Isso pode ser feito por meio da função nativa int(). Esta função recebe uma string (conjunto de dígitos, letras e símbolos) e a converte (ou pelo menos tenta) em um valor inteiro.

Veja um exemplo:

"""
  Este trecho de código mostra como
  ler dois valores informados pelo usuário,
  convertê-los para inteiros e efetuar
  uma soma.
 
  A função int() é usada para converter uma string
  ou valor numérico para um inteiro.
"""

def main():
  # vamos ler os dois valores
  val1 = input("Informe o primeiro número: ")
  val2 = input("Informe o segundo número: ")
  soma = int(val1) + int(val2);
 
  print("A soma dos valores é: ", soma)

if __name__== "__main__":
  main()

A saída deste código será parecida com:

Informe o primeiro número: 12
Informe o segundo número: 8
A soma dos valores é:  20

Note que, por padrão, a função int() converte a string para um valor inteiro usando a base 10, ou seja, a base decimal. É possível fornecer uma base diferente. Veja, por exemplo, como ler uma string contendo um valor binário:

def main():
  # vamos ler um valor binário. Ex: 0101
  binario = input("Informe um valor binário: ")
  print("O valor lido foi:", int(binario, 2))

if __name__== "__main__":
  main()

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

Informe um valor binário: 0101
O valor lido foi: 5



PHP ::: Dicas & Truques ::: Data e Hora

Datas e horas em PHP - Como obter o dia da data atual com dois dígitos

Quantidade de visualizações: 87 vezes
Em algumas situações nós precisamos obter o dia da data atual (ou qualquer outra data) como um número inteiro de dois dígitos. Para isso nós podemos usar a função date() com o argumento "d".

Veja o código PHP completo para o exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  $dia = date("d");
  echo "O dia da data atual é: " . $dia;
?>
  
</body>
</html>

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

O dia da data atual é: 22

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

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

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



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