![]() |
|
|
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. |
||
Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Python Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 4422 vezes |
|
Nesta dica veremos como implementar a ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção na linguagem Python. A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem Python agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}:
# método que permite ordenar o vetor de inteiros
# usando a ordenação Insertion Sort
def insertionSort(vetor):
# percorre todos os elementos do vetor começando
# pelo segundo elemento
for i in range(len(vetor)):
atual = vetor[i] # o valor atual a ser inserido
# começa a comparar com a célula à esquerda de i
j = i - 1
# enquanto vetor[j] estiver fora de ordem em relação
# a atual
while((j >= 0) and (vetor[j] > atual)):
# movemos vetor[j] para a direita e decrementamos j
vetor[j + 1] = vetor[j]
j = j - 1
# colocamos atual em seu devido lugar
vetor[j + 1] = atual
# função principal do programa
def main():
# cria uma lista de inteiros
valores = [4, 6, 2, 8, 1, 9, 3, 0, 11]
# exibimos o vetor na ordem original
print("Ordem original:\n")
for i in range(len(valores)):
print(valores[i], end = " ")
# vamos ordenar o vetor agora
insertionSort(valores)
# exibimos o vetor ordenado
print("\n\nOrdenado:\n")
for i in range(len(valores)):
print(valores[i], end = " ")
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de Java - Como contar de 0 até 10 usando recursividade em Java - Funções recursivas em JavaQuantidade de visualizações: 5593 vezes |
|
Pergunta/Tarefa: Escreva um método Java recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:
public static void contarRecursivamente(int n){
// sua implementação aqui
}
Sua saída deverá ser parecida com: 0 1 2 3 4 5 6 7 8 9 10 Veja a resolução comentada deste exercício usando Java:
package exercicio;
public class Exercicio {
public static void main(String[] args) {
// efetua uma chamada ao método recursivo
// fornecendo o primeiro valor
contarRecursivamente(0);
}
// método recursivo que conta de 0 até 10;
public static void contarRecursivamente(int n){
// vamos exibir o número atual
System.out.print(n + " ");
// devemos prosseguir com a recursividade?
if(n < 10){
// incrementa o valor de n
n++;
// e faz uma nova chamada recursiva
contarRecursivamente(n);
}
}
}
|
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercício Resolvido de Python - Como calcular o restante de um salário após o pagamento de duas contas com jurosQuantidade de visualizações: 1732 vezes |
|
Pergunta/Tarefa: Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia. Sua saída deverá ser parecida com: Informe o salário: 1350 Valor da primeira conta: 140 Valor da segunda conta: 300 Total das contas sem juros: 440.0 Total dos juros: 8.8 Total das contas com juros: 448.8 Sobra do salário: 901.2 Veja a resolução comentada deste exercício usando Python:
# método principal
def main():
# vamos pedir que o usuário informe o valor do salário e das duas contas
salario = float(input("Informe o salário: "))
conta1 = float(input("Valor da primeira conta: "))
conta2 = float(input("Valor da segunda conta: "))
# total a ser pago nas duas contas sem os juros
total_contas = conta1 + conta2
# calcula os juros
total_juros = total_contas * 0.02
# total a ser pago com juros
total_contas_com_juros = total_contas + total_juros
# sobra do salário
sobra_salario = salario - total_contas_com_juros
# mostra os resultados
print("\nTotal das contas sem juros: {0}".format(total_contas))
print("Total dos juros: {0}".format(total_juros))
print("Total das contas com juros: {0}".format(total_contas_com_juros))
print("Sobra do salário: {0}".format(sobra_salario))
if __name__== "__main__":
main()
|
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: DataFrame |
Como acessar uma linha específica em um DataFrame do Pandas da linguagem Python usando o método iloc()Quantidade de visualizações: 11622 vezes |
|
Em várias situações nós precisamos investigar o conteúdo de uma determinada linha, ou seja, um registro específico contido em um DataFrame do Pandas. Para isso podemos usar o método iloc() do objeto DataFrame. Este método recebe um valor inteiro representando o índice da linha a ser retornada. É possível também fornecer uma list contendo vários índices, e até mesmo intervalos, mas isso é assunto para outras dicas. O retorno do método é uma Series ou um DataFrame, dependendo dos parâmetros usados. Vamos ver um exemplo? Analise o código a seguir:
# importamos a biblioteca Pandas
import pandas as pd
def main():
# vamos carregar os dados do arquivo .csv
dados = pd.read_csv("emprestimos.csv",
delimiter=";")
# vamos mostrar o DataFrame resultante
print(dados)
# agora vamos mostrar o conteúdo da terceira linha
linha = dados.iloc[2]
# mostramos o conteúdo da terceira linha
print("\nConteúdo da terceira linha:\n")
print(linha)
if __name__== "__main__":
main()
Ao executarmos este código nós teremos o seguinte resultado:
id nome idade sexo renda valor parc pont ap
0 1 HELENA508 39 F 6500 8000 6 87 S
1 2 JESSICA631 65 F 3000 500 48 2 N
2 3 FELIPE768 39 M 10200 20000 24 40 S
3 4 AMANDA515 90 F 800 1500 30 87 N
4 5 LAURA312 61 F 1800 15000 50 8 N
5 6 CARLOS291 84 M 970 11000 6 59 N
6 7 CARLOS859 64 F 970 500 12 1 N
Conteúdo da terceira linha:
id 3
nome FELIPE768
idade 39
sexo M
renda 10200
valor 20000
parc 24
pont 40
ap S
Name: 2, dtype: object
Veja que o conteúdo da linha é exibido na vertical. Se quisermos exibí-lo na horizontal, basta passarmos o índice da linha como uma list. Veja: # agora vamos mostrar o conteúdo da terceira linha linha = dados.iloc[[2]] Agora o resultado será: Conteúdo da terceira linha: id nome idade sexo renda valor parc pont ap 2 3 FELIPE768 39 M 10200 20000 24 40 S Para testarmos se o retorno do método iloc() foi mesmo uma Series, basta usarmos a função type() do Python:
# vamos checar o retorno do método iloc()
linha = dados.iloc[[2]]
print("Tipo do retorno:", type(linha))
Este código exibirá um resultado parecido com: Tipo do retorno: <class 'pandas.core.frame.DataFrame'> |
C# ::: Windows Forms ::: ListBox |
Como pesquisar e retornar o índice de um item na ListBox do C# Windows FormsQuantidade de visualizações: 9194 vezes |
|
Nesta dica mostrarei como podemos pesquisar um valor em uma ListBox do C# Windows Forms. Se o item pesquisado estiver na lista nós vamos retornar o índice de sua ocorrência. Veja o código completo para o exemplo, disparado a partir do evento Click de um botão Button:
private void button2_Click(object sender, EventArgs e)
{
// pesquisa um item na ListBox
int pos = listBox1.Items.IndexOf("São Paulo");
if (pos > -1){
MessageBox.Show("O item pesquisado foi encontrado na posição "
+ pos);
}
else{
MessageBox.Show("O item pesquisado não foi encontrado");
}
}
|
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
|
Delphi - Como obter a quantidade de registros em um TClientDataSet do Delphi usando a propriedade RecordCount AutoCAD Civil 3D .NET C# - Como retornar a quantidade de estacas de um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




