![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
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: 505 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() |
C++ ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em C++ - Como controlar o acesso a membros de uma classe C++ usando o modificar publicQuantidade de visualizações: 8281 vezes |
Membros de uma classe são suas funções e variáveis. A visibilidade de tais membros pode ser controlada, ou seja, algumas funções e variáveis podem ser ocultadas do mundo externo. Este é o princípio de encapsulamento da programação orientada a objetos. O modificador public define que os membros de uma classe estarão acessíveis a qualquer função fora da classe. Veja um exemplo: #include <iostream> using namespace std; class Cliente{ public: char *nome; }; int main(int argc, char *argv[]) { // Cria uma instância da classe Cliente Cliente *cliente = new Cliente(); // Define o nome do cliente cliente->nome = "Osmar J. Silva"; // Obtém o nome do cliente cout << "Nome do cliente: " << cliente->nome << "\n\n"; system("PAUSE"); return EXIT_SUCCESS; } Como o atributo nome foi declarado na seção public, o código da função main possui acesso a ele sem a necessidade de métodos acessórios (get) ou mutatórios (set). Quando usamos o modificador public antes do nome de uma classe base (durante a herança), estamos definindo que os membros public e protected da classe base serão public e protected na classe derivada. O acesso padrão (sem modificador) dos membros de uma classe é private. Em uniões (union) e estruturas (structure), o acesso padrão é public. O acesso padrão de uma classe base (durante a herança) é private para classes e public para estruturas. Uniões não podem possuir classes bases. |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Exercícios Resolvidos de C++ - Como converter de decimal para binário usando os operadores de bits em C++Quantidade de visualizações: 811 vezes |
Aprenda a programar com a nossa lista de exercícios de C++ e desafios de programação. Pergunta/Tarefa: Escreva um programa C++ para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits. Sua saída deverá ser parecida com: Informe um número decimal: 9 O número binário é: 00000000000000000000000000001001 Veja a resolução completa para o exercício em C++, comentada linha a linha: #include <string> #include <iostream> using namespace std; // vamos definir o tamanho do vetor para guardar // os dígitos do número binário #define TAM_INT sizeof(int) * 8 int main(int argc, char *argv[]){ // variáveis para ajudar a resolver o problema int decimal, indice, i; // vetor para guardar o número binário int binario[TAM_INT]; // vamos pedir para o usuário informar um decimal inteiro cout << "Informe um número decimal: "; cin >> decimal; // ajustamos índice para o último elemento do vetor indice = TAM_INT - 1; // enquanto índice for maior ou igual a 0 while(indice >= 0){ // vamos guardar o bit menos significativo LSB binario[indice] = decimal & 1; // diminuímos o índice indice--; // desloca bits para a direita uma posição decimal = decimal >> 1; } // agora vamos exibir o número binário cout << "O número binário é: "; for(i = 0; i < TAM_INT; i++){ cout << binario[i]; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
PHP ::: Dicas & Truques ::: Strings e Caracteres |
PHP para iniciantes - Como obter o comprimento (tamanho) de uma string usando a função strlen() do PHPQuantidade de visualizações: 270 vezes |
Nesta dica eu mostro como é possível usar a função strlen() da linguagem PHP para contar, ou seja, obter a quantidade de caracteres em uma palavra, frase ou texto. Veja o código completo a seguir: <html> <head> <title>Estudando PHP</title> </head> <body> <?php // obtém o comprimento (tamanho) de uma string $string = "Bom dia"; echo "Esta string possui " . strlen($string) . " caracteres"; ?> </body> </html> Ao executar este código nós teremos o seguinte resultado: Esta string possui 7 caracteres |
Java ::: Dicas & Truques ::: Threads |
Threads em Java - Como definir as prioridades das threads JavaQuantidade de visualizações: 12698 vezes |
Quando estamos trabalhando com threads em Java, precisamos estar cientes de que cada thread possui uma prioridade de execução. É por meio da prioridade de cada uma que o gerenciador de threads decidirá qual thread deverá ser executada primeiro. Por padrão, todas as threads possuem prioridade NORM_PRIORITY. Esta é uma constante que possui o valor 5 e está declarada na classe Thread. Além disso, cada thread herda automaticamente a prioridade da thread que a criou. As constantes MAX_PRIORITY (prioridade máxima), MIN_PRIORITY (prioridade mínima) e NORM_PRIORITY (prioridade normal) são usadas para definir as prioridades das threads Java. Veja um exemplo no qual temos duas threads. A primeira possui a prioridade máxima enquanto a segunda possui a prioridade mínima: // criamos uma classe que servirá como thread class MinhaThread extends Thread{ private String nome; public MinhaThread(String nome){ this.nome = nome; } public void run(){ for(int i = 1; i <= 20; i++){ System.out.println(nome + ": " + i); } } } public class Estudos{ public static void main(String[] args){ // vamos criar duas threads MinhaThread t1 = new MinhaThread("Thread 1"); t1.setPriority(Thread.MAX_PRIORITY); // prioridade máxima t1.start(); MinhaThread t2 = new MinhaThread("Thread 2"); t2.setPriority(Thread.MIN_PRIORITY); // prioridade mínima t2.start(); } } Execute este exemplo e veja como a segunda thread só é executada quando a primeira finaliza. Remova as linhas que definem a prioridade e note como o tempo de cada thread é novamente fracionado. É importante ter em mente que aqui estamos falando de um ambiente de processador único. Em ambientes de múltiplos processadores o comportamento pode ser diferente do abordado na dica. Não devemos confiar em prioridades de threads quando o objetivo é aguardar a finalização de uma thread e só então permitir o processamento das instruções contidas no método run() de outra thread. Para estes casos o recomendável é usar alguma forma para sinalizar as demais threads de que a thread atual concluiu sua tarefa. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma substring está contida no final de uma string C# usando o método EndsWith() da classe StringQuantidade de visualizações: 233 vezes |
Em algumas situações nós precisamos verificar se uma palavra, frase ou texto termina com um caractere ou uma determinada substring. Para isso nós podemos usar o método EndsWith() da classe String da linguagem C#. Veja o exemplo a seguir: using System; namespace Estudos { class Program { static void Main(string[] args) { string texto = "Gosto de programar em C#"; if (texto.EndsWith("C#")) { Console.WriteLine("O texto termina com C#"); } else { Console.WriteLine("O texto não termina com C#"); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: O texto termina com C# |
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em Java - Como inserir nós no final de uma lista singularmente ligada em JavaQuantidade de visualizações: 8202 vezes |
Esta dica mostra como inserir nós no final de uma lista singularmente ligada. A classe usada para representar cada nó é a seguinte (No.java):// classe No public class No{ public int valor; public No proximo; } // fim da classe No Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no final quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código para a lista singularmente ligada (Lista.java): public class Lista { No inicio, fim; // início e fim da lista // método que permite exibir os valores de // todos os nós da lista public void exibir() { // vamos obter uma referência ao início da lista No no = inicio; if (no != null) { // a lista não está vazia while (no != null) { // enquanto a lista não estiver vazia System.out.println(no.valor); no = no.proximo; // pula para o nó seguinte } } else { System.out.println("A lista está vazia\n\n"); } } // método que permite inserir nós no // final da lista. // veja que o método recebe o valor a ser // armazenado em cada nó public void inserirFinal(int v) { No novo = new No(); // cria um novo nó novo.valor = v; // é o nó no final, portanto não deverá apontar para nenhum // outro nó novo.proximo = null; // verifica se a lista está vazia if (inicio == null) { // novo aponta para o novo nó inicio = novo; // final deve apontar para o novo nó também fim = novo; } else { // não está vazia....vamos inserir o nó no final da lista // o campo próximo do último nó aponta para o nó recém-criado fim.proximo = novo; // o campo fim aponta para o novo nó...o campo inicio permanece igual fim = novo; } } } Compile as classes No.java e Lista.java e vamos escrever um aplicativo de teste (Main.java): public class Main { public static void main(String[] args) { // vamos criar uma nova lista Lista lista = new Lista(); // vamos inserir quatro valores no // finalo da lista lista.inserirFinal(45); lista.inserirFinal(3); lista.inserirFinal(98); lista.inserirFinal(17); // exibe os valores na lista lista.exibir(); } } Ao executar o aplicativo teremos o seguinte resultado: 45 3 98 17 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Laços - Faça um programa para calcular o valor das seguintes expressõesQuantidade de visualizações: 2211 vezes |
Exercício Resolvido de Java - Laços - Faça um programa para calcular o valor das seguintes expressões Pergunta/Tarefa: Faça um programa para calcular o valor das seguintes expressões: 1) __$S_1 = \frac{1}{1} + \frac{3}{2} + \frac{5}{3} + \frac{7}{4} + \text{...} + \frac{99}{50} __$ 2) __$S_2 = \frac{2^1}{50} + \frac{2^2}{49} + \frac{2^3}{48} + \text{...} + \frac{2^\text{50}}{1} __$ 3) __$S_3 = \frac{1}{1} - \frac{2}{4} + \frac{3}{9} - \frac{4}{16} + \frac{5}{25} - \text{...} - \frac{10}{100} __$ Resposta/Solução: Em ambas as expressões nós temos o último termo nos informando os valores limites. Dessa forma, basta fixarmos um laço for ou laço while com estes limites. Veja a resolução deste exercício em código Java console: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ // primeira expressão int numerador = 1; int denominador = 1; double resultado = 0.0; // laço while para montar os termos e fazer a somatória while(numerador <= 99){ resultado = resultado + ((numerador * 1.0) / denominador); numerador = numerador + 2; denominador++; } // agora mostramos o resultado System.out.println("Primeira expressão: " + resultado); // segunda expressão int expoente = 1; denominador = 50; resultado = 0.0; // laço while para montar os termos e fazer a somatória while(denominador >= 1){ resultado = resultado + ((Math.pow(2, expoente) * 1.0) / denominador); expoente++; denominador--; } // agora mostramos o resultado System.out.println("Segunda expressão: " + resultado); // terceira expressão numerador = 1; denominador = 1; resultado = 0.0; int sinal = 1; // laço while para montar os termos e fazer a somatória while(numerador <= 10){ if(sinal > 0){ // somar resultado = resultado + ((numerador * 1.0) / denominador); } else{ // subtrair resultado = resultado - ((numerador * 1.0) / denominador); } numerador++; denominador = numerador * numerador; sinal = sinal * -1; } // agora mostramos o resultado System.out.println("Terceira expressão: " + resultado); } } Ao executar este código Java nós teremos o seguinte resultado: Primeira expressão: 95.5007946616706 Segunda expressão: 1.5608286920413398E15 Terceira expressão: 0.6456349206349207 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como retornar o primeiro elemento de um vetor em JavaQuantidade de visualizações: 792 vezes |
Pergunta/Tarefa: Escreva um programa Java que mostra como acessar e retornar o primeiro elemento de um array (vetor) Java. Sua saída deverá ser parecida com: Os elementos do vetor são: [9, 5, 3, 2, 4, 8] O primeiro elemento do array é: 9 Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Arrays; public class Estudos { public static void main(String[] args) { // vamos criar um array de inteiros int valores[] = {9, 5, 3, 2, 4, 8}; System.out.println("Os elementos do vetor são: " + Arrays.toString(valores)); // agora vamos retornar o primeiro elemento do vetor int primeiro = valores[0]; // e mostramos o resultado System.out.println("O primeiro elemento do array é: " + primeiro); } } |
JavaScript ::: Dicas & Truques ::: Cookies |
Cookies em JavaScript - Como obter o valor de um cookie usando JavaScriptQuantidade de visualizações: 199 vezes |
Nesta dica eu mostro como podemos escrever uma função JavaScript chamada obterCookie() que recebe o nome de um cookie e retorna o seu valor. Veja que, se o cookie com o nome informado não existir, o valor null é retornado. Veja o código JavaScript completo, incluindo o código HTML: <html> <head> <title>Estudando JavaScript</title> <script type="text/javascript"> // função que permite obter um cookie function obterCookie(nome){ if(document.cookie.length > 0){ c_start = document.cookie.indexOf(nome + "="); if(c_start != -1){ c_start = c_start + nome.length + 1; c_end = document.cookie.indexOf(";", c_start); if(c_end == -1){ c_end = document.cookie.length; } return unescape(document.cookie.substring( c_start, c_end)); } } return null; } </script> </head> <body> <script type="text/javascript"> // verifica se o cookie "nome_visitante" existe // e obtém seu valor var nome_visitante = obterCookie('nome_visitante'); if(nome_visitante != null){ document.writeln("O cookie nome_visitante existe. " + "Seu valor é: " + nome_visitante); } else{ document.writeln("O cookie nome_visitante não existe"); } </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: O cookie nome_visitante existe. Seu valor é: Osmar |
Nossas 20 dicas & truques de programação mais populares |
Java - Como calcular a transposta de uma matriz em Java - Java para Geometria Analítica e Álgebra Linear |
Você também poderá gostar das dicas e truques de programação abaixo |
Android Java - Como usar a classe Toast em suas aplicações Android |
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 |