![]() |
|
|
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 ::: Desafios e Lista de Exercícios Resolvidos ::: Fenômenos dos Transportes, Hidráulica e Drenagem |
Exercício Resolvido de Python - Determine a vazão escoada em um canal com seção retangular, com lâmina d´água de 2,00m e largura de base igual a 3,00m e declividade 0,2m por KmQuantidade de visualizações: 1145 vezes |
|
Exercício Resolvido de Python - Determine a vazão escoada em um canal com seção retangular, com lâmina d'água de 2,00m e largura de base igual a 3,00m e declividade 0,2m por Km Pergunta/Tarefa: Python para Fenômenos dos Transportes, Hidráulica e Drenagem. Python para cálculo de vazão em condutos livres. Fórmula de Manning para a velocidade de escoamento. Neste exercício em Python veremos como calcular a vazão de um canal com seção retangular. Para isso nós vamos usar a Equação de Manning da velocidade do escoamento. Determine a vazão escoada em um canal com seção retangular, com lâmina d'água de 2,00m e largura de base igual a 3,00m e declividade 0,2m por Km. Utilize η=0,012. ![]() Sua saída deverá ser parecida com: Informe a Largura da Base do Canal (em metros): 3 Informe a Profundidade do Escoamento (em metros): 2 Informe a Declividade do Canal (em metros por km): 0.2 Informe o Coeficiente de Rugosidade do Canal: 0.012 A Área Molhada do Canal é: 6.0 m2 O Perímetro Molhado do Canal é: 7.0 m O Raio Hidráulico do Canal é: 0.8571428571428571 m A Velocidade do Escoamento é: 1.0634144533132281 m/s A Vazão do Canal é: 6.380486719879369 m3/s Veja a resolução completa para o exercício em Python, comentada linha a linha:
# vamos importar o módulo Math
import math
# método principal
def main():
# vamos ler a largura do canal em metros
b = float(input("Informe a Largura da Base do Canal (em metros): "))
# vamos ler a profundida do escoamento em metros
h = float(input("Informe a Profundidade do Escoamento (em metros): "))
# vamos obter a declividade do canal em metros por quilômetros
I = float(input("Informe a Declividade do Canal (em metros por km): "))
# vamos converter a declividade em metro por metro
I = I / 1000.0
# vamos ler o coeficiente de rugosidade do canal
n = float(input("Informe o Coeficiente de Rugosidade do Canal: "))
# vamos calcular a área molhada
am = b * h
# agora vamos calcular o perímetro molhado
pm = b + 2 * h
# finalmente calculamos o raio hidráulico
rh = am / pm
# agora vamos usar a equação de manning para calcular a velocidade do escoamento
v = math.pow(rh, 2.0 / 3.0) * (math.sqrt(I) / n)
# finalmente calculamos a vazão do canal
Q = am * v
# e mostramos os resultados
print("\nA Área Molhada do Canal é: {0} m2".format(am))
print("O Perímetro Molhado do Canal é: {0} m".format(pm))
print("O Raio Hidráulico do Canal é: {0} m".format(rh))
print("A Velocidade do Escoamento é: {0} m/s".format(v))
print("A Vazão do Canal é: {0} m3/s".format(Q))
if __name__== "__main__":
main()
|
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de Python - Como retornar o código ASCII associado a um caractere em Python - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 1041 vezes |
|
Pergunta/Tarefa: Escreva um programa Python que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em Python:
# função principal do programa
def main():
# vamos pedir para o usuário informar uma letra, símbolo ou pontuação
caractere = input("Informe um caractere: ")
# agora vamos obter o código ASCII correspondente
codigo = ord(caractere)
# e mostramos o resultado
print("Você informou o caractere: {0}".format(caractere))
print("O código ASCII correspondente é: {0}".format(codigo))
if __name__== "__main__":
main()
O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como trabalhar com strings em Delphi - Como usar strings na linguagem DelphiQuantidade de visualizações: 28991 vezes |
|
Strings estão presentes em praticamente todos os programas que desenvolvemos, não importa a linguagem de programação usada. Sempre que queremos trabalhar com nomes de pessoas, nomes de cidades, palavras, frases e textos, as strings estão lá para nos auxiliar. Assim, para as linguagens de programação, as strings são apenas matrizes de caracteres (letras ou símbolos). Em Delphi podemos declarar e inicializar strings da seguinte forma: procedure TForm1.Button1Click(Sender: TObject); var nome: string; // declara uma variável do tipo string begin nome := 'Osmar J. Silva'; // inicializa a variável ShowMessage(nome); // exibe o conteúdo da string end; Quando declaramos uma string em Delphi usando a palavra-chave string, o compilador automaticamente assume o tipo UnicodeString, com uma capacidade de 2^30 caracteres (mais ou menos 1.073.741.824 caracteres) com uma capacidade variando de 4 bytes até 2GB. Além do tipo string, o Delphi suporta outros tipos que possibilitam também o trabalho com strings e caracteres. Entre eles podemos citar ShortString, AnsiString, WideString entre outros. Quando puder dê mais uma revisada nas minha dicas sobre strings e caracteres para aprender mais. É possível também usar o tipo string para criar strings com tamanhos pré-definidos. Veja:
var
nome: string[5]; // declara uma variável do tipo string
// que guardará apenas 5 caracteres
Aqui temos uma string que não suportará mais que cinco caracteres. Importante notar que, internamente, teremos agora uma string do tipo ShortString e não mais UnicodeString como anteriormente. Se tentarmos atribuir mais que cinco caracteres nesta variável, o restante será truncado: nome := 'Osmar J. Silva'; // inicializa a variável ShowMessage(nome); // mostrará apenas "Osmar" Para finalizar, veja como podemos solicitar ao usuário que informe seu nome e exibí-lo usando a função ShowMessage():
procedure TForm1.Button1Click(Sender: TObject);
var
nome: string; // declara uma variável do tipo string
begin
// vamos solicitar ao usuário que informe seu nome
nome := Dialogs.InputBox('Nome', 'Informe seu nome:', '');
ShowMessage('Seu nome é: ' + nome); // mostrará apenas "Osmar"
end;
Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Projetos Java Programação Orientada a Objetos - Exemplos Java |
Simulação de Sistema Bancário usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão consoleQuantidade de visualizações: 19768 vezes |
|
Sobre este projeto Java Durante estes anos que tenho trabalhado como freelancer, mais da metade das requisições dos meus clientes foram ajuda para desenvolver idéias de programação orientada a objetos em Java para projeto de faculdades e universidades. Com isso percebi que boa parte dos alunos e iniciantes em programação orientada a objetos já entendem toda a teoria. O que lhes falta é prática, ou seja, aplicar estes conhecimentos em aplicações do mundo real. Pensando nisso, apresento a você um projeto muito interessante e que, se bem entendido e praticado, o ajudará a desenvolver qualquer tipo de aplicação, seja comercial ou para solucionar problemas cotidianos. O projeto Java apresentado nesta dica é uma simulação completa de um Sistema Bancário, tudo com código fonte em Java, comentado, com variáveis em português, em um nível médio de programação, para facilitar o entendimento de todos. Nesta simulação nós temos a criação de classes Java, construtores, encapsulamento de dados, agregação e composição, métodos com retorno e sem retorno, variáveis estáticas, variáveis públicas e privadas, e relacionamento entre objetos (um para um, um para muitos, muitos para um) usando ArrayList. Sim, o projeto faz uso extensivo de ArrayList, o que o torna muito rico para o aprendizado e fixação dos conhecimentos da linguagem Java e suas classes principais. O Diagrama de Classes Java Antes de falarmos mais sobre o projeto, dê uma boa olhada no seu diagrama de classes: ![]() Como a aplicação está estruturada? Como podemos ver no diagrama de classes, nós temos uma classe Sistema que contém zero ou vários objetos da classe Banco (relacionamento um para muitos). A classe Banco, por sua vez, possui uma ArrayList de objetos da classe Agência, ou seja, mais um relacionamento um para muitos, já que cada agência pertence a um único banco. Cada agência pode possuir zero ou mais contas, e cada conta possui um ArrayList de objetos da classe Transação, o que nos permite registrar todas as operações nas contas e emitir o extrato bancário, com os débitos, créditos e transferências entre contas. Tudo isso é feito por meio de vários menus de opções, como podemos ver na imagem a seguir: ![]() Devo usar ArrayList do Java para desenvolver o sistema? Sim, objetos da classe ArrayList são perfeitos quando precisamos representar relacionamentos um para muitos e muitos para um. É claro que poderíamos usar vetores de objetos (usando array), mas ficaríamos restritos a tamanhos fixos, enquanto o ArrayList nos permite cadastrar quantos bancos, pessoas, agências e contas quisermos. Dessa forma, veja, por exemplo, o trecho de código que cria um novo banco:
switch(opcao){
case 1: // vamos cadastrar um novo banco
System.out.print("\nNúmero do Banco: ");
String numeroBanco = entrada.nextLine();
System.out.print("Nome do Banco: ");
String nomeBanco = entrada.nextLine();
// vamos incrementar o contador de bancos
Banco.contadorBancos++;
// agora vamos criar um novo objeto da classe Banco
Banco b = new Banco(Banco.contadorBancos, nomeBanco,
numeroBanco);
// e o adicionamos no ArrayList de bancos
bancos.add(b);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO banco criado com sucesso");
break;
Note que este trecho de código é parte do case da opção Novo Banco do menu Gerenciar Bancos. Veja como usamos uma variável estática contadorBancos da classe Banco para criarmos um valor inteiro auto-incremento que nos permite identificadores únicos para cada banco. Veja agora mais um trecho de código muito interessante. Trata-se
case 3: // vamos pesquisar uma conta
System.out.print("\nId, número ou nome cliente da conta: ");
pesquisaConta = entrada.nextLine();
// chamamos o método que pesquisa a conta
temp = pesquisarConta(agenciaAtual, pesquisaConta);
if(temp == null){ // conta não encotrada
System.out.println("\nConta não encontrada na agência.");
}
else{
// mostra a conta encontrada
System.out.println("\nId da conta bancária: " +
temp.getId());
System.out.println("Número da conta: " +
temp.getNumero());
System.out.println("Cliente: " +
temp.getCliente().getNome());
System.out.println("Agência: " + agenciaAtual.getNumero() +
" - " + agenciaAtual.getCidade());
System.out.println("Banco: " +
bancoAtual.getNumero() + " - " + bancoAtual.getNome());
System.out.println("Saldo atual: " + temp.getSaldo());
System.out.println("Limite atual: " + temp.getLimite());
}
break;
Viu que código mais lindo? Note como a Programação Orientada a Objetos em Java nos permite desenvolver idéias de forma bem parecida mesmo ao mundo real. O fechamento com chave de ouro O produto final da aplicação Java deverá ser um extrato bancário mostrando os dados da conta escolhida, o histórico de transações com data, tipo da transação e valor, e o saldo atual da conta, com ou sem limite. Veja na imagem abaixo a formatação apresentada (mesmo em modo texto): ![]() Como posso obter este código fonte? Os links para você baixar todas as versões deste projeto estão abaixo: 1) SBJCNB-A - Sistema Bancário em Java com Código Fonte Versão Console - NetBeans IDE - Faça o Download. 2) SBJCNB-B - Sistema Bancário em Java com Código Fonte Versão Console - Lê e salva os dados em arquivo usando serialização (Serializable), ou seja, os métodos readObject() e writeObject() - NetBeans IDE - Faça o Download. Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes. |
Nossas 20 dicas & truques de programação mais populares |
|
Java - Como criar um Jogo da Velha em Java - Jogo completo com código fonte comentado - Versão console GNU Octave - GNU Octave para Álgebra Linear - Como calcular o determinante de uma matriz usando a função det() do GNU Octave |
Você também poderá gostar das dicas e truques de programação abaixo |
|
C - Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem C |
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 |







