Você está aqui: Cards de Engenharia Civil - Fundações |
||
|
||
![]() |
||
Dart ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercício Resolvido de Dart - Escreva um programa Dart que usa o laço for para desenhar um padrão de diamante de estrelasQuantidade de visualizações: 1291 vezes |
Pergunta/Tarefa: Neste exercício para a prática da linguagem Dart você deverá usar o laço for para desenhar o famoso padrão de diamante de estrelas. Você pode também usar o laço while, se assim você o desejar. O programa deverá pedir que o usuário informe a quantidade de linhas que marcará a metade do diamante. Seu programa deve apresentar a seguinte saída: Informe a quantidade de linhas: 5 * *** ***** ******* ********* ******* ***** *** * Veja a resolução comentada deste exercício em Dart: // Vamos importar a biblioteca dart:io import "dart:io"; void main(){ // variáveis que vamos usar na resolução do problema int linhas, estrelas, espacos; // vamos pedir a quantidade de linhas stdout.write("Informe a quantidade de linhas: "); // vamos ler a entrada do usuário linhas = int.parse(stdin.readLineSync()); estrelas = 1; // começamos com uma estrela (no topo do diamante) // se linhas for igual a 5 nós começamos com 4 espaços espacos = linhas - 1; // repete duas vezes a quantidade de linhas informadas for(int i = 1; i < linhas * 2; i++){ // vamos imprimir os espaços for(int j = 1; j <= espacos; j++){ stdout.write(" "); } // agora vamos imprimir estrelas for(int j = 1; j < estrelas * 2; j++){ stdout.write("*"); } // passamos para a próxima linha stdout.write("\n"); if(i < linhas){ // é a parte superior do diamante espacos--; // diminui os espaços estrelas++; // e aumenta as estrelas } else{ // é a parte inferior do diamente espacos++; // aumenta os espaços estrelas--; // e diminui as estrelas } } } |
Java ::: Pacote java.io ::: Console |
Java para iniciantes - Como usar a classe Console da linguagem JavaQuantidade de visualizações: 9973 vezes |
A classe Console, que é definida no pacote java.io como public e final, fornece métodos para acessar o dispositivo de console baseado em caracteres associado com a máquina virtual Java (JVM) sendo executada no momento. Um objeto desta classe é obtido por meio de uma chamada ao método console() da classe System. Veja:import java.io.Console; public class Estudos { public static void main(String[] args) { // vamos obter o console para a JVM atual Console console = System.console(); // vamos testar se o console foi obtido com sucesso if(console != null){ System.out.println("Console obtido com sucesso"); } else{ System.out.println("Não foi possível obter o console"); } } } É importante observar que, durante a autoria desta dica (Maio/2012), não é possível obter um objeto da classe Console executando a aplicação dentro do Netbeans e/ou Eclipse, somente executando a aplicação a partir da linha de comando ou outros editores, tais como o JCreator. A razão disso é que, tanto o Netbeans quanto o Eclipse executam a janela de console como um processo de fundo, afim de obter sua saída e exibir em suas próprias janelas. Veja a posição desta classe na hierarquia de classes da plataforma Java: java.lang.Object java.io.Console O fato de a máquina virtual ter um console ou não depende da plataforma na qual ela está sendo executada, e também na forma que a JVM foi invocada. Se a máquina virtual é iniciada a partir de uma janela de linha de comando interativa sem redirecionar os fluxos de entrada e saída padrão, então o console existirá e estará conectado ao teclado e tela a partir da qual a JVM foi lançada. Se a máquina virtual é iniciada automaticamente, por exemplo, como um gerenciador de agendamento de tarefas em segundo plano, então ela, em geral, não terá um console. Se a JVM atual tiver um console, então este é representado por uma instância única da classe Console, que pode ser obtida por meio de uma chamada ao método console() da classe System. Se nenhum dispositivo de console estiver disponível, uma chamada a este método retornará o valor null. Operações de leitura e escrita são sincronizadas para garantir a atomicidade das operações críticas. Assim, as chamadas aos métodos readLine(), readPassword(), format() e printf(), assim como operações de leitura, formatação e escrita nos objetos retornados pelos métodos reader() e writer() poderão causar bloqueios em cenários de múltiplas threads. Chamar close() nos objetos retornados pelos métodos reader() e writer() não fechará os fluxos destes objetos. Os métodos de leitura da classe Console retornam null quando o fim do fluxo de entrada de console é alcançado, por exemplo, ao digitar control-D no Linux/Unix ou control-Z no Windows. Operações de leitura subsequentes terão sucesso se caracteres adicionais forem inseridos mais tarde no dispositivo de entrada do console. |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Tratamento de erros em Java - Como tratar o erro ArrayIndexOutOfBoundsException em JavaQuantidade de visualizações: 18360 vezes |
A exceção ArrayIndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de elementos em um vetor ou matriz (array). Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1. Antes de vermos os exemplos, observe a posição da classe pública ArrayIndexOutOfBoundsException na hierarquia de classes da plataforma Java: java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.IndexOutOfBoundsException java.lang.ArrayIndexOutOfBoundsException Esta classe implementa a interface Serializable. Veja um exemplo no qual tentamos acessar um elemento de um vetor ou matriz usando um índice inválido: public class Estudos{ public static void main(String args[]){ // um array de quatro elementos int[] valores = {5, 23, 76, 3}; // vamos fornecer um índice inválido System.out.println(valores[4]); System.exit(0); } } Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Estudos.main(Estudos.java:7) A forma mais adequada de corrigir este erro é fornecendo um valor de índice que realmente esteja na faixa permitida. |
Python ::: Python para Engenharia ::: Física - Mecânica - Estática |
Como calcular o centroide ou centro de gravidade de um triângulo em PythonQuantidade de visualizações: 1853 vezes |
O centro de gravidade, ou centroide (centro geométrico), é o ponto no qual a massa de um triângulo se equilibra. Para ajudar a visualizar isso, imagine uma figura triangular suspensa sobre a ponta de um lápis. A figura vai se equilibrar se a ponta do lápis for posicionada em seu centro de gravidade. Encontrar o centroide pode ser necessário em vários projetos e aplicações de engenharia, e pode ser encontrado usando geometria simples. Veja a seguinte figura: ![]() Nesta figura nós temos os três vértices do triângulo devidamente registrados, assim como o ponto representando seu centroide. Assim, a fórmula do centroide do triângulo é: \[x_c = \frac{x_1 + x_2 + x_3}{3}\] \[y_c = \frac{y_1 + y_2 + y_3}{3}\] Agora vamos ver como calcular o centro de gravidade do triângulo em Python. Para isso nós vamos pedir para o usuário informar as coordenadas dos três vértices do triângulo e, em seguida, vamos mostrar as coordenadas do ponto que representa o centroide. Veja: # função principal do programa def main(): # vamos ler as coordenadas do primeiro vértice va_x = float(input("Informe o x do primeiro vértice: ")) va_y = float(input("Informe o y do primeiro vértice: ")) # vamos ler as coordenadas do segundo vértice vb_x = float(input("Informe o x do segundo vértice: ")) vb_y = float(input("Informe o y do segundo vértice: ")) # vamos ler as coordenadas do terceiro vértice vc_x = float(input("Informe o x do terceiro vértice: ")) vc_y = float(input("Informe o y do terceiro vértice: ")) # vamos calcular as coordenadas do centroide c_x = (va_x + vb_x + vc_x) / 3 c_y = (va_y + vb_y + vc_y) / 3 # vamos mostrar o resultado print("As coordenadas do centroide são: x={0}; y={1}".format( round(c_x, 2), round(c_y, 2))) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe o x do primeiro vértice: 3 Informe o y do primeiro vértice: 10 Informe o x do segundo vértice: 12 Informe o y do segundo vértice: 15 Informe o x do terceiro vértice: 14 Informe o y do terceiro vértice: 7 As coordenadas do centroide são: x=9.67; y=10.67 |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Fenômenos dos Transportes, Hidráulica e Drenagem |
Exercício Resolvido de Python - Como calcular o Número de Reynolds em Python - Leite integral a 293 K, massa específica de 1030 kg/m3 e viscosidade de 2,12.10-3 N.s/m2 está escoando a uma razãoQuantidade de visualizações: 92 vezes |
Pergunta/Tarefa: O Número de Reynolds é uma quantidade adimensional usada na mecânica dos fluidos para prever padrões de fluxo em diferentes situações de escoamento de fluidos. É definido como a razão entre forças inerciais e forças viscosas dentro de um fluido. 1) Leite integral a 293 K, massa específica de 1030 kg/m3 e viscosidade de 2,12.10-3 N.s/m2 está escoando a uma razão de 0,605 kg/s em uma tubulação de 63,5 mm de diâmetro. a) Calcule o número de Reynolds. O escoamento é laminar ou turbulento? b) Calcule a vazão em m3/s para um número de Reynolds de 2100 e a velocidade em m/s. Sua saída deverá ser parecida com: Informe a Massa Específica do fluido (kg/m3): 1030 Informe a Viscosidade Dinâmica do fluido (N.s/m2): 2.12e-3 Informe a Vazão Mássica (kg/s): 0.605 Informe o Diâmetro da Tubulação (mm): 63.5 A área da tubulação é: 0.003166921744359361 m2 A vazão volumétrica do fluido é: 0.000587378640776699 m3/s A velocidade de escoamento do fluido é: 0.18547305181218499 m/s O Número de Reynolds é: 5722.106110271679 Informe o novo Número de Reynolds: 2100 A nova velocidade de escoamento do fluido é: 0.06806819050531304 m/s A nova vazão volumétrica do fluido é: 0.0002155666326104713 m3/s O primeiro passo para a resolução deste exercício é nos lembrarmos da Fórmula do Número de Reynolds: \[R_e = \frac{\rho \cdot v \cdot D}{\mu} \] Onde: [[rho]] é a massa específica do fluido medida em kg/m3; v = velocidade média do fluido em m/s; D = diâmetro para o fluxo do tubo em metros (m); [[mu]] é a viscosidade dinâmica do fluido em N.s/m2. Obs.: No código eu mostro como fazer as conversões de unidades necessárias. Veja a resolução completa para o exercício em Python, comentada linha a linha: # vamos importar a biblioteca Math import math # método principal def main(): # vamos ler a massa específica da água massa_especifica = float(input("Informe a Massa Específica (kg/m3): ")) # vamos ler a viscosidade dinâmica do fluido viscosidade_dinamica = float(input("Informe a Viscosidade (N.s/m2): ")) # vamos ler a vazão mássica vazao_massica = float(input("Informe a Vazão Mássica (kg/s): ")) # vamos ler o diâmetro da tubulação diametro = float(input("Informe o Diâmetro da Tubulação (mm): ")) # o primeiro passo é calcular a área da seção transversal da tubulação # a) convertemos milímetros para metros diametro = diametro / 1000.0 # b) calculamos a área em metros quadrados area = (math.pi * math.pow(diametro, 2) / 4) # vamos converter a vazão mássica em vazão volumétrica vazao = vazao_massica / massa_especifica # vamos obter a velocidade de escoamento do fluido velocidade = vazao / area # e finalmente calculamos o Número de Reynolds numero_reynolds = (massa_especifica * velocidade * diametro) / viscosidade_dinamica # mostramos os resultados print("\nA área da tubulação é: {0} m2".format(area)) print("A vazão volumétrica do fluido é: {0} m3/s".format(vazao)) print("A velocidade de escoamento do fluido é: {0} m/s".format(velocidade)) print("O Número de Reynolds é: {0}".format(numero_reynolds)) # vamos ler o novo Número de Reynolds novo_numero_reynolds = float(input("\nInforme o novo Número de Reynolds: ")) # vamos calcular a velocidade para o novo Reynolds nova_velocidade = ((viscosidade_dinamica * novo_numero_reynolds) / (massa_especifica * diametro)) print("A nova velocidade de escoamento do fluido é: {0} m/s".format(nova_velocidade)) # vamos calcular a nova vazão volumétrica nova_vazao = area * nova_velocidade print("A nova vazão volumétrica do fluido é: {0} m3/s".format(nova_vazao)) if __name__== "__main__": main() O primeiro Número de Reynolds, ou seja, 5722.1061, caracteriza o escoamento como turbulento, pois é maior que 2400. Já o Número de Reynolds 2100 caracteriza o escoamento como escoamento de transição (saindo do escoamento laminar e indo para o escoamento turbulento), já que é maior que 2000 e menor que 2400. |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Python - Como retornar o dia do mês em Python como um decimal no intervalo 01-31 usando strftime("%d") C - Como escrever uma função is_numeric() em C que verifica se uma string contém apenas dígitos de 0 a 9 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |