![]() |
|
|
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. |
||
Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a busca binária em Python - Pesquisa binária na linguagem PythonQuantidade de visualizações: 1049 vezes |
|
A busca binária, ou pesquisa binária, é um algoritmo eficiente para encontrar um item em uma lista (vetor ou array) ordenada. Sim, os itens devem, obrigatoriamente, estar ordenados. O processo é bem simples. A busca binária começa a partir do meio da lista e compara o item nesta posição com o valor sendo pesquisado. Se o valor não for encontrado e for menor que o item no meio da lista, o algoritmo passa para a porção à esquerda da lista, eliminando, assim, metade dos elementos do vetor ou array (a porção maior que o valor pesquisado). Se o valor não for encontrado e for maior que o item no meio da lista, então a busca reinicia a partir da metade da sub-lista à direita (os itens maiores que o valor pesquisado). Essa divisão continua até que o valor seja encontrado ou não seja mais possível dividir a lista pela metade. Se um array ou vetor possuir 100 elementos e usarmos a busca binária nele, precisaremos efetuar no máximo 7 tentativas para encontrar o valor desejado. Se a lista possuir 4 bilhões de itens nós teremos que fazer no máximo 32 tentativas. Isso acontece porque a pesquisa binária é executada em tempo logarítmico, ou seja, log2 n, onde n é a quantidade de itens no vetor. Dessa forma, se tivemos 1.000 itens em um array, log2 1000 = 10 tentativas. Lembre-se de que, na programação log e log2 retornam resultados diferentes: log(10) = 2.302585092994046 enquanto log2(10) = 3.321928094887362. Na análise da busca binária nós usamos sempre log2. Vamos agora ver como podemos codificar a busca binária em Python. Veja o código a seguir:
# função principal do programa
def main():
# vamos criar uma lista ordenada de inteiros
valores = [3, 5, 7, 8, 9, 12, 43, 50, 52, 60]
print("Os valores da lista são: {0}".format(valores))
# vamos pedir o item a ser pesquisado
numero = int(input("Informe o número a ser pesquisado: "))
# agora vamos pesquisar o número no array usando a pesquisa
# binária
# a variável esquerda aponta para o primeiro elemento do vetor
esquerda = 0
# a variável direita aponta para o último elemento do vetor
direita = len(valores) - 1
# para indicar se o valor foi encontrado
encontrado = False
# enquanto houver mais de um elemento a ser comparado
while esquerda <= direita:
# obtemos o elemento na metade da lista
meio = (esquerda + direita) // 2
# fazemos a comparação
if numero == valores[meio]:
print("O número foi encontrado no índice {0}".format(
meio))
encontrado = True
break # sai do laço
# o item atual é maior que o valor pesquisado?
if valores[meio] > numero:
direita = meio - 1
# o item atual é menor que o valor pesquisado?
else:
esquerda = meio + 1
# o valor foi encontrado?
if not encontrado:
print("O valor pesquisado não foi encontrado")
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Os valores da lista são: [3, 5, 7, 8, 9, 12, 43, 50, 52, 60] Informe o número a ser pesquisado: 9 O número foi encontrado no índice 4 |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Python - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 1317 vezes |
|
Pergunta/Tarefa: Considere os seguintes vetores: # dois vetores de 5 inteiros cada a = [50, -2, 9, 5, 17] b = [0 for x in range(5)] Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 Veja a resolução comentada deste exercício usando Python:
# método principal
def main():
# dois vetores de 5 inteiros cada
a = [50, -2, 9, 5, 17]
b = [0 for x in range(5)]
# vamos preencher o segundo vetor de forma que a soma dos
# valores de seus elementos seja 30
for i in range(len(a)):
b[i] = 30 - a[i]
# vamos mostrar o resultado
print("Valores no vetor a: ", end="")
for i in range(len(a)):
print("{0} ".format(a[i]), end="")
print("\nValores no vetor b: ", end="")
for i in range(len(b)):
print("{0} ".format(b[i]), end="")
if __name__== "__main__":
main()
|
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em Java - Como calcular Bhaskara em JavaQuantidade de visualizações: 3625 vezes |
|
Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem Java. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso código Java vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código Java. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args){
// para efetuar a leitura do usuário
Scanner entrada = new Scanner(System.in);
// os coeficientes
double a, b, c;
// as duas raizes, a imaginaria e o discriminante
double raiz1, raiz2, imaginaria, discriminante;
// vamos pedir para o usuário informar os valores dos coeficientes
System.out.print("Valor do coeficiente a: ");
a = Double.parseDouble(entrada.nextLine());
System.out.print("Valor do coeficiente b: ");
b = Double.parseDouble(entrada.nextLine());
System.out.print("Valor do coeficiente c: ");
c = Double.parseDouble(entrada.nextLine());
// vamos calcular o discriminante
discriminante = (b * b) - (4 * a * c);
// a equação possui duas soluções reais?
if(discriminante > 0){
raiz1 = (-b + Math.sqrt(discriminante)) / (2 * a);
raiz2 = (-b - Math.sqrt(discriminante)) / (2 * a);
System.out.println("Existem duas raizes: x1 = " + raiz1
+ " e x2 = " + raiz2);
}
// a equação possui uma única solução real?
else if(discriminante == 0){
raiz1 = raiz2 = -b / (2 * a);
System.out.println("Existem duas raizes iguais: x1 = "
+ raiz1 + " e x2 = " + raiz2);
}
// a equação não possui solução real?
else if(discriminante < 0){
raiz1 = raiz2 = -b / (2 * a);
imaginaria = Math.sqrt(-discriminante) / (2 * a);
System.out.println("Existem duas raízes complexas: x1 = " +
raiz1 + " + " + imaginaria + " e x2 = " + raiz2
+ " - " + imaginaria);
}
}
}
Ao executar este código Java nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1.0 e x2 = -3.0 |
Android Java ::: android.widget ::: Spinner |
Entenda e aprenda a usar a classe Spinner em suas aplicações AndroidQuantidade de visualizações: 2772 vezes |
|
Um objeto da classe Spinner no Android representa uma lista de itens, ou uma caixa de combinação, a partir da qual o usuário poderá escolher apenas uma opção. Em outras linguagens de programação tais como Delphi e C#, este controle é chamado de ComboBox. No Swing do Java, ele é chamado JComboBox. No HTML, nós o conhecemos como <select>. Veja a posição da classe Spinner na hieraquia de classes do Android: public class Spinner extends AbsSpinner implements DialogInterface.OnClickListener java.lang.Object android.view.View -> android.view.ViewGroup -> android.widget.AdapterView<android.widget.SpinnerAdapter> -> android.widget.AbsSpinner -> android.widget.Spinner Veja a seguir como podemos declarar um elemento Spinner no arquivo XML de layout: Spinner android:id="@+id/cidade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_gravity="center" android:layout_margin="10dp" android:entries="@array/cidades_nomes" /> Note que o elemento Spinner que declaramos possui o id "cidade" e, a parte mais importante, o vetor "cidades_nomes" para o seu atributo entries. Este vetor foi declarado no arquivo strings.xml da seguinte forma: <string-array name="cidades_nomes"> <item>Goiânia</item> <item>Cuiabá</item> <item>São Paulo</item> <item>Rio de Janeiro</item> <item>Curitiba</item> </string-array> Pronto. Isso é tudo. Se você executar seu aplicativo agora, já verá um caixa de combinação, ou seja, um Spinner com os nomes de cinco cidades ser exibido na tela. Experimente selecionar um dos itens. Em mais dicas dessa seção você verá como obter o item selecionado, como disparar uma ação como resultado da mudança de seleção de itens, como adicionar itens ao Spinner em tempo de execução e muito mais. |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Delphi - Como criar chaves no registro do Windows usando o método CreateKey() da classe TRegistry do Delphi Java - Como exibir a data e hora atual na linguagem Java usando um objeto Date e seu método toString() |
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 |





