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.

LISP ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Como declarar variáveis globais em Lisp usando as funções defvar e defparameter

Quantidade de visualizações: 1634 vezes
Em algumas situações nós precisamos declarar variáveis globais em Lisp, ou melhor, em Common Lisp, que é a padronização da Lisp que adotamos para estas dicas.

Variáveis globais em Common Lisp se comportam de forma idêntica àquelas de outras linguagens de programação, ou seja, possuem valores permanentes por todo o sistema Lisp e mantém seus valores até que novos valores são especificados.

Se quisermos, por exemplo, a partir do corpo de uma função acessar uma variável fora dela, então esta variável deverá ser declarada globalmente.

Em Common List nós podemos declarar variáveis globais usando as funções defvar e defparameter. Vamos ver exemplos envolvendo as duas e no final desta dica eu mostro a diferença.

Veja um trecho de código Common Lisp na qual declaramos uma variável global chamada valor e a acessamos de dentro de uma função:

; vamos declarar uma variável global
(defvar valor 10)

; vamos mostrar o valor atual da variável global
(format t "O valor da variável global é ~D" valor)

; agora vamos acessar a variável global
; de dentro de uma função
(defun ModificaValor()
  ; vamos alterar o valor da variável global
  (setq valor 50)
)

; chamamos a função ModificaValor
(ModificaValor)

; e checamos se o valor da variável global foi
; mesmo alterado
(terpri)
(format t "O valor da variável global é ~D" valor)

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

O valor da variável global é 10
O valor da variável global é 50

Veja agora um trecho de código Common Lisp no qual usamos a função defparameter para declarar e inicializar as variáveis globais:

; vamos declarar três variáveis globais
(defparameter *a* 5)
(defparameter *b* 3)
(defparameter *soma* 0)

; agora vamos acessar as variáveis globais
; de dentro de uma função
(defun Somar()
  ; vamos somar as duas variáveis globais
  ; e guardar o resultado em uma terceira
  ; variáveis global
  (setq *soma* (+ *a* *b*))
)

; chamamos a função Somar
(Somar)

; e mostramos o resultado da soma
(format t "A soma das variáveis globais é ~D" *soma*)

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

A soma das variáveis globais é 8

Note que coloquei asteríscos (*) ao redor dos nomes das variáveis globais. Esta é uma prática comum entre programadores Lisp e altamente recomendado pelo comunidade, pois facilita a distinção entre variáveis globais e locais.

Então, qual é a diferença entre defvar e defparameter?

A primeira delas é que a função defparameter nos obriga a informar o valor inicial para a variável global, enquanto a função defvar não o faz.

A segunda diferença é que, ao redefinirmos o valor de uma variável global usando defparameter, o valor armazenado anteriormente será sobreposto, enquanto a função defvar não altera o valor anterior.


C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como adicionar conteúdo ao final de um arquivo em C# usando as classes FileStream e StreamWriter

Quantidade de visualizações: 10786 vezes
Nesta dica mostro como usar as classes FileStream e StreamWriter para adicionar conteúdo a um arquivo já existente. Note que usamos o construtor de FileStream que aceita o caminho e nome do arquivo e o modo que ele será aberto. Ao fornecer o valor FileMode.Append nós estamos informando que, se o arquivo existir, mais conteúdo será adicionando ao seu final. Do contrário o arquivo é criado.

Já no construtor de StreamWriter nós estamos fornecendo a codificação dos caracteres, neste caso, UTF-8. Para finalizar, escrevemos no arquivo usando os métodos Write() e WriteLine() da classe StreamWriter.

Veja o código:

static void Main(string[] args){
  // vamos criar uma instância de FileStream. Note que neste
  // construtor nós estamos informando o caminho e nome do
  // arquivo e o modo de abertura do arquivo. Se o arquivo já existir
  // o novo conteúdo é adicionado. Se não existir, o arquivo é criado
  FileStream fs = new FileStream("dados.txt", FileMode.Append);

  // já temos o FileStream? vamos fornecê-lo a um StreamWriter
  StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);

  // vamos escrever ou adicioar conteúdo no arquivo
  sw.WriteLine("Esta é mais uma linha");
  sw.Write("Hoje é: ");
  sw.WriteLine(DateTime.Now);
  sw.WriteLine("Esta é a última linha");
  
  sw.Flush();
  sw.Close();
  fs.Close();

  Console.WriteLine("Acabei de escrever no arquivo");
  Console.WriteLine("Pressione qualquer tecla para sair...");
  // pausa o programa
  Console.ReadKey();
}

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

Acabei de escrever no arquivo
Pressione qualquer tecla para sair...


Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais

Como obter os modificadores dos métodos de uma classe ou interface usando o método getModifiers() da classe Method da linguagem Java

Quantidade de visualizações: 9116 vezes
O método getModifiers() da classe Method permite obter os modificadores (public, static, final, private, etc) de um determinado método. O retorno deste método é um valor inteiro que pode ser testado usando alguns métodos estáticos da classe Modifier.

O exemplo a seguir mostra como listar todos os métodos públicos da classe javax.swing.JButton e seus modificadores:

package arquivodecodigos;

import java.lang.reflect.*;
 
public class Estudos{
  public static void main(String args[]){
    // vamos carregar a classe JButton
    try{
      Class c = Class.forName(
        "javax.swing.JButton");
 
      // obtém os nomes dos métodos
      Method[] metodos = c.getMethods(); 
 
      for(int i = 0; i < metodos.length; i++){
        // obtém o nome do método
        String nome = metodos[i].getName();
 
        // obtém os modificadores
        int modificador = 
          metodos[i].getModifiers();
 
        String modificadores = "";
 
        if(Modifier.isPublic(modificador))
          modificadores += "public "; 
        if(Modifier.isPrivate(modificador))
          modificadores += "private ";          
        if(Modifier.isProtected(modificador))
          modificadores += "protected ";
        if(Modifier.isStatic(modificador))
          modificadores += "static ";
        if(Modifier.isFinal(modificador))
          modificadores += "final ";
 
        System.out.println(nome + " - " + 
          modificadores); 
      }
    }
    catch(ClassNotFoundException e){
      System.out.println(e.getMessage()); 
    }
 
    System.exit(0);
  }
}

Ao executar este exemplo nós teremos uma lista gigantesca de métodos declarados e herdados pela classe javax.swing.JButton. Veja:

getAccessibleContext - public
getUIClassID - public
isDefaultButton - public
isDefaultCapable - public
removeNotify - public
setDefaultCapable - public
updateUI - public
getUI - public
setAction - public
setModel - public
setUI - public
addActionListener - public
addChangeListener - public
addItemListener - public
doClick - public
doClick - public
getAction - public
getActionCommand - public
getActionListeners - public
getChangeListeners - public
getDisabledIcon - public
getDisabledSelectedIcon - public
getDisplayedMnemonicIndex - public
getHideActionText - public
getHorizontalAlignment - public
getHorizontalTextPosition - public
getIcon - public
getIconTextGap - public
getItemListeners - public
getLabel - public
getMargin - public
getMnemonic - public
getModel - public
getMultiClickThreshhold - public
getPressedIcon - public
getRolloverIcon - public
getRolloverSelectedIcon - public
getSelectedIcon - public
getSelectedObjects - public
getText - public
getVerticalAlignment - public
getVerticalTextPosition - public
imageUpdate - public
isBorderPainted - public
isContentAreaFilled - public
isFocusPainted - public
isRolloverEnabled - public
isSelected - public
removeActionListener - public
removeChangeListener - public
removeItemListener - public
setActionCommand - public
setBorderPainted - public
setContentAreaFilled - public
setDisabledIcon - public
setDisabledSelectedIcon - public
setDisplayedMnemonicIndex - public
setEnabled - public
setFocusPainted - public
setHideActionText - public
setHorizontalAlignment - public
setHorizontalTextPosition - public
setIcon - public
setIconTextGap - public
setLabel - public
setLayout - public
setMargin - public
setMnemonic - public
setMnemonic - public
setMultiClickThreshhold - public
setPressedIcon - public
setRolloverEnabled - public
setRolloverIcon - public
setRolloverSelectedIcon - public
setSelected - public
setSelectedIcon - public
setText - public
setVerticalAlignment - public
setVerticalTextPosition - public
update - public
contains - public
getLocation - public
print - public
getSize - public
isOpaque - public
disable - public
enable - public
firePropertyChange - public
firePropertyChange - public
firePropertyChange - public
getRootPane - public
getListeners - public
paintImmediately - public
paintImmediately - public
repaint - public
repaint - public
revalidate - public
setAlignmentX - public
setAlignmentY - public
addAncestorListener - public
addNotify - public
addVetoableChangeListener - public
computeVisibleRect - public
createToolTip - public
getActionForKeyStroke - public
getActionMap - public final
getAlignmentX - public
getAlignmentY - public
getAncestorListeners - public
getAutoscrolls - public
getBaseline - public
getBaselineResizeBehavior - public
getBorder - public
getBounds - public
getClientProperty - public final
getComponentPopupMenu - public
getConditionForKeyStroke - public
getDebugGraphicsOptions - public
getDefaultLocale - public static
getFontMetrics - public
getGraphics - public
getHeight - public
getInheritsPopupMenu - public
getInputMap - public final
getInputMap - public final
getInputVerifier - public
getInsets - public
getInsets - public
getMaximumSize - public
getMinimumSize - public
getNextFocusableComponent - public
getPopupLocation - public
getPreferredSize - public
getRegisteredKeyStrokes - public
getToolTipLocation - public
getToolTipText - public
getToolTipText - public
getTopLevelAncestor - public
getTransferHandler - public
getVerifyInputWhenFocusTarget - public
getVetoableChangeListeners - public
getVisibleRect - public
getWidth - public
getX - public
getY - public
grabFocus - public
hide - public
isDoubleBuffered - public
isLightweightComponent - public static
isManagingFocus - public
isOptimizedDrawingEnabled - public
isPaintingForPrint - public final
isPaintingTile - public
isRequestFocusEnabled - public
isValidateRoot - public
paint - public
printAll - public
putClientProperty - public final
registerKeyboardAction - public
registerKeyboardAction - public
removeAncestorListener - public
removeVetoableChangeListener - public
requestDefaultFocus - public
requestFocus - public
requestFocus - public
requestFocusInWindow - public
resetKeyboardActions - public
reshape - public
scrollRectToVisible - public
setActionMap - public final
setAutoscrolls - public
setBackground - public
setBorder - public
setComponentPopupMenu - public
setDebugGraphicsOptions - public
setDefaultLocale - public static
setDoubleBuffered - public
setFocusTraversalKeys - public
setFont - public
setForeground - public
setInheritsPopupMenu - public
setInputMap - public final
setInputVerifier - public
setMaximumSize - public
setMinimumSize - public
setNextFocusableComponent - public
setOpaque - public
setPreferredSize - public
setRequestFocusEnabled - public
setToolTipText - public
setTransferHandler - public
setVerifyInputWhenFocusTarget - public
setVisible - public
unregisterKeyboardAction - public
add - public
add - public
add - public
add - public
add - public
remove - public
remove - public
list - public
list - public
removeAll - public
addPropertyChangeListener - public
addPropertyChangeListener - public
getComponent - public
getComponentCount - public
getComponents - public
getFocusTraversalPolicy - public
invalidate - public
isFocusCycleRoot - public
isFocusCycleRoot - public
setFocusTraversalPolicy - public
addContainerListener - public
applyComponentOrientation - public
areFocusTraversalKeysSet - public
countComponents - public
deliverEvent - public
doLayout - public
findComponentAt - public
findComponentAt - public
getComponentAt - public
getComponentAt - public
getComponentZOrder - public
getContainerListeners - public
getFocusTraversalKeys - public
getLayout - public
getMousePosition - public
insets - public
isAncestorOf - public
isFocusTraversalPolicyProvider - public final
isFocusTraversalPolicySet - public
layout - public
locate - public
minimumSize - public
paintComponents - public
preferredSize - public
printComponents - public
removeContainerListener - public
setComponentZOrder - public
setFocusCycleRoot - public
setFocusTraversalPolicyProvider - public final
transferFocusDownCycle - public
validate - public
add - public
remove - public
toString - public
getName - public
contains - public
size - public
getLocation - public
getParent - public
setName - public
list - public
list - public
list - public
getSize - public
location - public
setSize - public
setSize - public
resize - public
resize - public
enable - public
firePropertyChange - public
firePropertyChange - public
firePropertyChange - public
firePropertyChange - public
firePropertyChange - public
action - public
isEnabled - public
isFocusOwner - public
removePropertyChangeListener - public
removePropertyChangeListener - public
repaint - public
repaint - public
repaint - public
getBackground - public
getBounds - public
getFocusCycleRootAncestor - public
getFont - public
getForeground - public
getPeer - public
getPropertyChangeListeners - public
getPropertyChangeListeners - public
getTreeLock - public final
isDisplayable - public
isMaximumSizeSet - public
isMinimumSizeSet - public
isPreferredSizeSet - public
isShowing - public
isVisible - public
nextFocus - public
setBounds - public
setBounds - public
setLocale - public
setLocation - public
setLocation - public
dispatchEvent - public final
getGraphicsConfiguration - public
getMousePosition - public
handleEvent - public
isFocusable - public
isLightweight - public
isValid - public
postEvent - public
transferFocus - public
transferFocusBackward - public
addComponentListener - public
addFocusListener - public
addHierarchyBoundsListener - public
addHierarchyListener - public
addInputMethodListener - public
addKeyListener - public
addMouseListener - public
addMouseMotionListener - public
addMouseWheelListener - public
bounds - public
checkImage - public
checkImage - public
createImage - public
createImage - public
createVolatileImage - public
createVolatileImage - public
enableInputMethods - public
getColorModel - public
getComponentListeners - public
getComponentOrientation - public
getCursor - public
getDropTarget - public
getFocusListeners - public
getFocusTraversalKeysEnabled - public
getHierarchyBoundsListeners - public
getHierarchyListeners - public
getIgnoreRepaint - public
getInputContext - public
getInputMethodListeners - public
getInputMethodRequests - public
getKeyListeners - public
getLocale - public
getLocationOnScreen - public
getMouseListeners - public
getMouseMotionListeners - public
getMouseWheelListeners - public
getToolkit - public
gotFocus - public
hasFocus - public
inside - public
isBackgroundSet - public
isCursorSet - public
isFocusTraversable - public
isFontSet - public
isForegroundSet - public
keyDown - public
keyUp - public
lostFocus - public
mouseDown - public
mouseDrag - public
mouseEnter - public
mouseExit - public
mouseMove - public
mouseUp - public
move - public
paintAll - public
prepareImage - public
prepareImage - public
removeComponentListener - public
removeFocusListener - public
removeHierarchyBoundsListener - public
removeHierarchyListener - public
removeInputMethodListener - public
removeKeyListener - public
removeMouseListener - public
removeMouseMotionListener - public
removeMouseWheelListener - public
setComponentOrientation - public
setCursor - public
setDropTarget - public
setFocusTraversalKeysEnabled - public
setFocusable - public
setIgnoreRepaint - public
show - public
show - public
transferFocusUpCycle - public
wait - public final
wait - public final
wait - public final
equals - public
hashCode - public
getClass - public final
notify - public final
notifyAll - public final


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

Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando C++ - Geometria Analítica e Álgebra Linear usando C++

Quantidade de visualizações: 2693 vezes
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0).

Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2:

\[\vec{v} = \left(7, 6\right)\]

Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D:



Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9.

Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6).

Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras:

\[a^2 = b^2 + c^2\]

Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira:

\[a = \sqrt{b^2 + c^2}\]

Passando para os valores x e y que já temos:

\[a = \sqrt{7^2 + 6^2}\]

Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final:

\[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\]

E aqui está o código C++ que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:

#include <string>
#include <iostream>
#include <math.h>
 
using namespace std;
  
int main(int argc, char *argv[]){
  float x, y, norma;
  // vamos ler os valores x e y
  cout << "Informe o valor de x: ";
  cin >> x;
  cout << "Informe o valor de y: ";
  cin >> y;
  
  // vamos calcular a norma do vetor
  norma = sqrt(pow(x, 2) + pow(y, 2));
    
  // mostra o resultado
  cout << "A norma do vetor é: " << norma; 
 
  cout << "\n\n";
  system("PAUSE");
  return 0;
}

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

Informe o valor de x: 7
Informe o valor de y: 6
A norma do vetor é: 9.219544457292887

Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo.


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