![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa 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. |
||
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como calcular fatorial em Delphi usando recursividadeQuantidade de visualizações: 13640 vezes |
|
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma: 4 x 3 x 2 x 1 = 24 Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplicação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em Delphi que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados.
// função recursiva para calcular o fatorial
// de um determinado número
function fatorial(n: Integer): Integer;
begin
if n = 0 then
Result := 1
else
Result := n * fatorial(n - 1);
end;
// vamos chamar a função recursiva
// a partir do Click de um botão
procedure TForm1.Button1Click(Sender: TObject);
var
res: Integer;
begin
// vamos calcular o fatorial de 5
res := fatorial(5);
// vamos mostrar o resultado
ShowMessage('O fatorial de 5 é: ' + IntToStr(res));
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Coleções (Collections) ::: Set (Conjunto) |
Java Collections - Como usar a interface Set em seus códigos JavaQuantidade de visualizações: 5649 vezes |
|
A interface Set estende a interface Collection mas não adiciona novos métodos ou constantes. Em vez disso, esta interface define que uma instância de Set não contenha elementos duplicados. Esta responsabilidade é transferida para as classes que implementam a interface. A classe abstrata AbstractSet é uma classe de conveniência que herda da classe também abstrata AbstractCollection e implementa a interface Set. A classe AbstractSet fornece implementações concretas para os métodos equals() e hashCode(). Estes métodos permitem a funcionalidade da não permissão de elementos duplicados nos conjuntos. As classes concretas mais conhecidas da interface Set são: HashSet - Esta classe é implementada em cima de uma tabela hash, ou seja, um array (matriz) na qual os elementos são armazenados em posições calculadas de acordo com o seu conteúdo. Uma característica interessante de HashSet é que os elementos raramente são retornados na mesma ordem na qual foram inseridos. LinkedHashSet - Esta classe estende a classe HashSet com uma implementação de lista ligada (linked list) que permite a ordenação dos elementos no conjunto. TreeSet - Esta classe é uma classe concreta que implementa a interface SortedSet. A interface SortedSet é uma sub-interface de Set que garante que os elementos no conjunto estejam ordenados. Além disso, esta interface fornece os métodos first() e last() para acessar o primeiro e o último elemento do conjunto. Há ainda os métodos headSet(toElement) e tailSet(fromElement) para retornar uma faixa do conjunto cujos elementos sejam "menores" que toElement e "maiores" que fromElement. Seja qual for a implementação de Set que você queira usar, é sempre uma boa idéia codificar em cima da interface. Isso facilita a troca de HashSet por TreeSet ou vice-versa sem grandes modificações no seu código. Veja um exemplo no qual usamos a classe concreta HashSet para representar um conjunto de cinco strings únicas:
package estudos;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Estudos{
public static void main(String[] args) {
// vamos criar uma instância da classe HashSet
Set<String> conjunto = new HashSet<>();
// vamos inserir cinco elementos no Set
conjunto.add("Açucar");
conjunto.add("Macarrão");
conjunto.add("Feijão");
conjunto.add("Carne");
conjunto.add("Maionese");
// vamos exibir os elementos inseridos
Iterator iterator = conjunto.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
Ao executar este trecho de código teremos um resultado parecido com: Macarrão Feijão Carne Açucar Maionese Note que raramente os elementos serão exibidos na ordem na qual eles foram inseridos. Experimente agora trocar a linha: Set<String> conjunto = new HashSet<>(); por Set<String> conjunto = new LinkedHashSet<>(); Execute o código novamente e verá que agora os elementos são exibidos na mesma ordem que foram inseridos. |
Python ::: wxPython ::: Janelas, Diálogos, Formulários e Painéis do wxPython |
Python wxPython - Como criar janelas GUI em Python usando a classe wx.Frame do wxPythonQuantidade de visualizações: 12246 vezes |
|
Em wxPython, um frame é o nome dado ao que o usuário do programa geralmente chama de "janela". Um frame é um contâiner que o usuário pode mover livremente na tela, e que geralmente inclui artifícios tais como uma barra de títulos, uma barra de menus, e sinalizadores de redimensionamento nas bordas e cantos. A classe wx.Frame é a classe pai de todos os frames em wxPython.Há também algumas subclasses especializadas de wx.Frame que podemos usar em nossos programas. Quando fazemos subclasse de wx.Frame, o método __init__() de nossa classe deverá chamar o construtor da classe pai wx.Frame.__init__(). A assinatura deste construtor é assim: wx.Frame(parent, id=-1, title="", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="frame") Veja a seguir alguns parâmetros importantes do construtor __init__() da classe wx.Frame:
Veja a seguir um modo muito comum de se chamar o construtor __init__() da classe wx.Frame:
import wx
class MinhaJanela(wx.Frame):
def __init__(self):
super().__init__(parent=None, title="Minha Janela",
size=(350, 250))
self.Show()
if __name__ == '__main__':
app = wx.App()
minhaJanela = MinhaJanela()
app.MainLoop()
Este código vai gerar a janela mostrada na figura abaixo: ![]() |
C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em C dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 2189 vezes |
Nesta dica mostrarei como é possível usar a linguagem C para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos a fazer a converter esta fórmula para código C. Veja:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]){
float a = 20; // medida do cateto oposto
float b = 30; // medida do cateto adjascente
// agora vamos calcular o comprimento da hipotenusa
float c = sqrt(pow(a, 2) + pow(b, 2));
// e mostramos o resultado
printf("O comprimento da hipotenusa é: %f", c);
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: O comprimento da hipotenusa é: 36.055511 Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada. |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Fórmulas da Física - Fórmula da Distância - Como calcular a distância dados a velocidade e o tempo decorrido |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






