Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
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: 687 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()
|
Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em Ruby usando o método length da classe ArrayQuantidade de visualizações: 7482 vezes |
|
Em algumas situações nós precisamos saber a quantidade de elementos em um array da linguagem Ruby. Para isso nós podemos usar a função length da classe Array. Este método retorna um valor inteiro representando a quantidade de elementos no vetor. O trecho de código abaixo mostra como obter a quantidade de elementos em um array em Ruby:
# vamos declarar um vetor contendo 5 inteiros
valores = [3, 6, 8, 2, 3]
# Obtém a quantidade de elementos
quant = valores.length
puts "O array contém #{quant} elementos"
Ao executar este código Ruby nós teremos o seguinte resultado: O array contém 5 elementos |
Delphi ::: VCL - Visual Component Library ::: TListBox |
Como usar a propriedade Items da classe TListBox do DelphiQuantidade de visualizações: 11548 vezes |
|
A propriedade Items da classe TListBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc. Veja, por exemplo, como usar o método Add() para adicionar um novo item na ListBox:
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos adicionar um novo item na ListBox
listBox1.Items.Add('Arquivo de Códigos');
end;
É possível obter um referência à propriedade Items para manipular os itens da ListBox indiretamente. Veja:
procedure TForm1.Button1Click(Sender: TObject);
var
lista: TStrings;
begin
// vamos obter a lista de itens da ListBox
lista := listBox1.Items;
// vamos adicionar um novo item à lista
lista.Add('Arquivo de Códigos');
end;
Esta técnica é útil quando queremos inserir itens em uma TListBox a partir de uma função ou procedure. Veja:
// procedure personalizada para inserir itens em uma TListBox
procedure inserirItensListBox(lista: TStrings);
begin
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos chamar a procedure que adiciona os itens na ListBox
inserirItensListBox(listBox1.Items);
end;
Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher a ListBox:
// função personalizada que constrói e retorna uma lista
// de strings
function obterLista: TStrings;
var
lista: TStringList;
begin
lista := TStringList.Create;
lista.Add('Arquivo de Códigos');
lista.Add('Osmar J. Silva');
Result := lista;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// vamos obter a lista de strings
ListBox1.Items := obterLista;
end;
Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Como excluir um diretório em C++ usando a função rmdir()Quantidade de visualizações: 8716 vezes |
Em algumas situações nossos códigos C++ precisam excluir diretórios. Isso pode ser feito com o auxílio da função _rmdir() ou rmdir(), disponível no header direct.h (trazido da linguagem C). Veja a assinatura desta função:int _rmdir(const char *pathname); a) ENOTEMPTY - Directory not empty - O diretório não está vazio e portanto não pode ser excluído; b) ENOENT - No such file or directory - O caminho do diretório é inválido; c) EACCESS - Acesso negado - Algum outro programa está usando este diretório e mantém controle sobre o mesmo. Veja um trecho de código C++ no qual excluímos um diretório:
#include <iostream>
#include <direct.h>
using namespace std;
int main(int argc, char *argv[]){
// vamos excluir este diretório
char diretorio[] = "C:\\Dev-Cpp\\estudos";
// vamos testar se houve erro na exclusão do diretório
if(rmdir(diretorio) == -1){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório excluído com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
É possível usar a versão Unicode de _rmdir(), ou rmdir(). O método _wrmdir(), também presente em direct.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:
#include <iostream>
#include <direct.h>
using namespace std;
int main(int argc, char *argv[]){
// vamos excluir este diretório
wchar_t diretorio[] = L"C:\\Dev-Cpp\\estudos";
// vamos testar se houve erro na exclusão do diretório
if(_wrmdir(diretorio) == -1){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório excluído com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|
Delphi ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em DelphiQuantidade de visualizações: 3028 vezes |
|
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem Delphi. Comece observando 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. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. 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 que fazer é mudar a fórmula para: \[a^2 = c^2 - b^2\] Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem Delphi:
procedure TForm2.Button1Click(Sender: TObject);
var
a, b, c: Real;
begin
c := 36.056; // medida da hipotenusa
b := 30; // medida do cateto adjascente
// agora vamos calcular o comprimento da cateto oposto
a := sqrt(sqr(c) - sqr(b));
// e mostramos o resultado
Edit1.Text := 'A medida do cateto oposto é: ' +
FloatToStr(a);
end;
Veja que o cálculo é feito a partir do evento Click de um botão Button1 e o resultado é apresentado na propriedade Text de uma caixa de texto Edit1. Ao executar este código Delphi nós teremos o seguinte resultado: A medida do cateto oposto é: 20,0008783807112 Como podemos ver, o resultado retornado com o código Delphi confere com os valores da imagem apresentada. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






