![]() |
|||||
|
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: 484 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() |
PHP ::: Dicas & Truques ::: Gráficos e Cores |
Computação gráfica em PHP - Como obter informações sobre a biblioteca GD instaladaQuantidade de visualizações: 8182 vezes |
Nesta dica vou mostrar como é possível efetuar uma chamada ao método gd_info() da linguagem PHP para verificar quais recursos da biblioteca GD estão habilitados em nossa instalação do PHP. Veja o código abaixo: <?php // vamos efetuar uma chamada à função gd_info() $info = gd_info(); // agora percorremos as entradas foreach($info as $chave => $valor){ if($chave != "GD Version"){ if($valor == true || $valor == false){ if($valor == true){ $valor = "Habilitado"; } elseif($valor == false){ $valor = "Desabilitado"; } } } echo "$chave: $valor<br>"; } ?> Ao executarmos este código nós teremos um resultado parecido com: GD Version: bundled (2.1.0 compatible) FreeType Support: Habilitado FreeType Linkage: Habilitado GIF Read Support: Habilitado GIF Create Support: Habilitado JPEG Support: Habilitado PNG Support: Habilitado WBMP Support: Habilitado XPM Support: Habilitado XBM Support: Habilitado WebP Support: Habilitado BMP Support: Habilitado TGA Read Support: Habilitado JIS-mapped Japanese Font Support: Desabilitado É sempre bom fazer este teste antes de usar as funções gráficas da GD no PHP. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as palavras de uma frase ou texto em C# usando as funções IndexOf(), Replace() e Split() da classe StringQuantidade de visualizações: 12289 vezes |
Este exemplo mostra como retornar a quantidade de palavras em uma frase ou texto usando métodos da classe String do C#. Veja como usar os métodos IndexOf() e Replace() para remover os espaços em excesso e, em seguida, o método Split() para quebrar as partes da frase ou texto usando um único espaço como separador. Veja o código completo: using System; namespace Estudos { class Program { static void Main(string[] args) { string frase = "Gosto muito de C# e Java"; int cont = 0; // remove os espaços em excesso while (frase.IndexOf(" ") >= 0) { frase = frase.Replace(" ", " "); } // remove espaços antes e depois da string frase = frase.Trim(); // conta as palavras cont = frase.Split(" ").Length; Console.WriteLine("A frase contém " + cont + " palavras"); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: A frase contém 6 palavras |
Python ::: Tkinter GUI Toolkit ::: Círculos, Ovais e Elípses |
Como desenhar círculos no Tkinter usando a função create_oval() do componente CanvasQuantidade de visualizações: 1240 vezes |
Em várias situações nós precisamos desenhar círculos não preenchidos e preenchidos em Tkinter. Para isso nós podemos usar a função create_oval() do componente Canvas. Em sua forma mais simples, a função create_oval() requer as coordenadas x e y a partir das quais o círculo ou elípse será desenhada e a largura e a altura do retângulo dentro do qual o círculo estará contido. Para desenhar uma oval ou elípse, basta manipular a largura ou altura desse retângulo. Veja um trecho de código no qual usamos a função create_oval() para desenhar um círculo com 5 pixels de largura da linha de desenho: # vamos importar o módulo Tkinter from tkinter import * from tkinter.ttk import * # método principal def main(): # cria a janela principal da aplicação janela_principal = Tk() # define as dimensões da janela janela_principal.geometry("400x350") # define o título da janela janela_principal.title("Uso do controle Canvas") # vamos criar o objeto Canvas canvas = Canvas(janela_principal, bg="white", width=400, height=350) # colocamos o Canvas na janela principal canvas.grid(row=0, column=0) # agora vamos desenhar um círculo no Canvas começando nas # coordenadas x=20 e y=30 centro de um retângulo de largura # 150 pixels por uma altura de 150 pixels e largura da linha # de 5 pixels canvas.create_oval(20, 30, 150, 150, width="5") # entramos no loop de eventos janela_principal.mainloop() if __name__== "__main__": main() Note que a largura da linha de desenho foi informada por meio do parâmetro width. Se quisermos definir também a cor da linha do desenho, basta usarmos o parâmetro outline e fornecer a cor desejada. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como transformar um StringBuffer em uma String usando o método toString() da classe StringBufferQuantidade de visualizações: 218 vezes |
Como já vimos em dicas anteriores, um objeto da classe String é imutável, ou seja, quando modificamos o conteúdo de uma String, o interpretador cria um novo objeto, copiando o conteúdo da string anterior para o objeto recém-criado. Já a classe StringBuffer é mutável, ou seja, podemos modificar o seu conteúdo sem a necessidade da criação de um novo objeto. Você ficará surpreso ao saber que não podemos atribuir uma variável do tipo StringBuffer em uma variável do tipo String e vice-versa. Ao tentarmos fazer isso, os seguintes erros de compilação são exibidos: a) error: incompatible types: StringBuffer cannot be converted to String b) error: incompatible types: String cannot be converted to StringBuffer Assim, sempre que for necessário converter um StringBuffer em uma String, temos que usar o seu método toString(). Veja: package arquivodecodigos; // Este exemplo mostra como converter um // StringBuffer em uma String public class Estudos{ public static void main(String[] args){ StringBuffer frase = new StringBuffer("Programação Java"); String resultado = frase.toString(); System.out.println(resultado); System.exit(0); } } |
Java ::: Classes e Componentes ::: JTable |
Apostila Java Swing - Como alterar o valor de uma célula da JTable em tempo de execuçãoQuantidade de visualizações: 426 vezes |
Em algumas situações nós precisamos alterar ou definir o valor de uma determinada célula de uma tabela JTable em tempo de execução, ou seja, enquanto o programa Java Swing estiver sendo executado. Para isso nós podemos usar o método setValueAt() da classe JTable. Tudo que precisamos fazer é fornecer o novo valor para a célula, assim como os índice da linha e da coluna na qual ela está localizada. Veja o código Java completo: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JButton btn = new JButton("Alterar valor da 2ª célula - 1ª linha"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ tabela.setValueAt("Teste", 0, 1); } } ); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
C# ::: Namespace System.Drawing ::: Graphics |
Computação gráfica C# Windows Forms - Como desenhar em C# - A classe GraphicsQuantidade de visualizações: 7899 vezes |
Qualquer um que queira iniciar os estudos e desenhos de gráficos em C# usando Windows Forms deve obrigatoriamente entender um pouco de GDI e GDI+. GDI é o acrônimo de Graphics Device Interface e GDI+ é o seu sucessor em versões mais recentes do Microsoft Windows. Com a indepedência do GDI+ podemos desenhar em um formulário, na tela ou impressora sem qualquer modificação no código. O próprio GDI+ se encarrega dos detalhes da implementação de cada um destes diferentes dispositivos. O GDI+ é uma interface de programação de aplicações (API) que forma o sub-sistema do sistema operacional Microsoft Windows XP. Esta API é a responsável pela exibição de informações na tela e impressoras. O GDI+ é uma DLL Win32 chamada de gdiplus.dll que é distribuída com o Windows XP e versões mais recentes do Windows. Esta DLL está também disponível para uso em versões do Windows anteriores ao XP. A plataforma .NET encapsula as funcionalidades do GDI+ nos seguintes namespaces: System.Drawing, System.Drawing.Drawing2D, System.Drawing.Imaging, System.Drawing.Text e System.Drawing.Printing. Antes de iniciar seus desenhos em C# e Windows Forms, é importante entender o sistema de coordenadas do GDI+. Este sistema usa a medida de pixels ("picture elements"), que é a menor unidade de resolução no display de um monitor. Assim, o canto superior esquerdo de um controle GUI (um formulário, um painel, botão, etc) tem as coordenadas (0, 0), ou seja, x = 0 e y = 0. Lembre-se de que x é o eixo horizontal e y é o eixo vertical. A classe Graphics, do pacote System.Drawing, é quem fornece boa parte dos métodos que usamos para desenhar em C# e Windows Forms. Veja sua posição na hierarquia de classes da plataforma .NET: System.Object System.MarshalByRefObject System.Drawing.Graphics Veja um trecho de código no qual desenhamos uma linha horizontal no formulário a partir do clique de um botão: private void button1_Click(object sender, EventArgs e){ // vamos obter o Graphics do formulário Graphics g = this.CreateGraphics(); // vamos desenhar uma linha horizontal de 300 pixels na // cor preta e espessura de 1 pixel g.DrawLine(new Pen(Color.Black, 1), new Point(20, 80), new Point(320, 80)); // vamos liberar o objeto Graphics g.Dispose(); } |
Kotlin ::: Dicas de Estudo e Anotações ::: Input e Output (Entrada e Saída) |
Como usar a função readLine() do kotlin.io para ler a entrada do usuário em KotlinQuantidade de visualizações: 7610 vezes |
Podemos ler a entrada do usuário usando o método readLine() do pacote kotlin.io, que é importado automaticamente para todas as aplicações Kotlin. Esta função retorna um objeto da classe String? e aceita um valor null, ou seja, uma string vazia. Veja um exemplo no qual pedimos para o usuário informar o seu nome e em seguida exibimos uma saudação: fun main(args: Array<String>) { print("Por favor, informe o seu nome: ") // vai ler o nome e guardar na variável nome var nome = readLine() println("Olá, $nome. Bem-vindo(a) ao Kotlin.") } Ao executarmos este código nós teremos o seguinte resultado: Por favor, informe o seu nome: Osmar J. Silva Olá, Osmar J. Silva. Bem-vindo(a) ao Kotlin. |
Java ::: Classes e Componentes ::: JMenuBar, JMenu, JMenuItem e Afins |
Java Swing - Como usar objetos da classe JCheckBoxMenuItem como itens de menu de suas aplicações Java SwingQuantidade de visualizações: 8959 vezes |
Neste exemplo mostrarei como usar objetos da classe JCheckBoxMenuItem como itens de um menu. Tais itens podem ser usados quando o usuário puder marcar uma ou mais opções, em um grupo relacionado de opções. Veja o resultado na imagem abaixo: ![]() E agora o código completo para o exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ JCheckBoxMenuItem cores[]; Color valCores[] = {Color.red, Color.white, Color.green}; String nomeCores[] = {"Vermelho", "Branco", "Verde"}; public Estudos(){ super("Menus"); // Cria a barra de menus JMenuBar barra = new JMenuBar(); setJMenuBar(barra); // Cria um menu JMenu formatar = new JMenu("Formatar"); // Cria o menu de cor de fundo JMenu item1 = new JMenu("Cor de Fundo"); // Adiciona o segundo JMenu ao primeiro formatar.add(item1); cores = new JCheckBoxMenuItem[valCores.length]; Gerenciador gerenciador = new Gerenciador(); for(int i = 0; i < valCores.length; i++){ cores[i] = new JCheckBoxMenuItem(nomeCores[i]); item1.add(cores[i]); cores[i].addItemListener(gerenciador); } // Adiciona o menu à barra de menus barra.add(formatar); setSize(300, 150); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private class Gerenciador implements ItemListener{ public void itemStateChanged(ItemEvent e){ String marcadas = "As checkbox marcadas são:\n\n"; for(int i = 0; i < cores.length; i++){ if(cores[i].isSelected()){ marcadas += nomeCores[i] + "\n"; } } JOptionPane.showMessageDialog(null, marcadas); } } } |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms Avançado - Como rolar as linhas de um TextBox para baixo uma de cada vez usando a API do WindowsQuantidade de visualizações: 7283 vezes |
Em algumas situações gostaríamos de rolar para baixo o conteúdo de um TextBox de múltiplas linhas uma linha de cada vez. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_LINEDOWN para seu parâmetro wParam. O valor do parâmetro lParam é zero. Veja um trecho de código que rola para baixo o conteúdo de um TextBox uma linha de cada vez. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem. Comece adicionando a linha: using System.Runtime.InteropServices; na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método: [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); Finalmente coloque o código abaixo no evento Click de um botão: private void button2_Click(object sender, EventArgs e){ // antes de executar este exemplo certifique-se de que // a propriedade Multiline do TextBox esteja definida // como true e a propriedade ScrollBars contenha o valor // Vertical ou Both textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Vertical; // constante para a mensagem WM_VSCROLL const uint WM_VSCROLL = 0x115; // constante para o parâmetro wParam const int SB_LINEDOWN = 1; // handle para a caixa de texto IntPtr handle = textBox1.Handle; IntPtr wParam = (IntPtr)SB_LINEDOWN; IntPtr lParam = IntPtr.Zero; // vamos fazer com que o TextBox role uma linha para baixo SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam); } |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como arredondar um valor numérico de ponto-flutuante para cima usando a função ceil() do objeto Math do JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
Python - Como gerar números aleatórios em Python usando o método random.randint() da biblioteca NumPy JavaScript - Como arredondar um valor numérico de ponto-flutuante para cima usando a função ceil() do objeto Math do JavaScript |
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 |