Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Java - Escreva um programa Java que informa o número de dias em um determinado mês e ano. Seu código deverá solicitar ao usuário o número correspondenteQuantidade de visualizações: 1369 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que informa a quantidade de dias em um determinado mês e ano. Seu código deverá solicitar ao usuário o número correspondente ao mês, na faixa de 1 a 12, e o ano. Verifique também se o ano é bissexto ou não. Sua saída deverá ser parecida com: Informe o mês (1 - 12): 4 Informe o ano: 2022 Abril de 2022 possui 30 dias. Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// vamos usar a classe Scanner para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// para guardar a quantidade de dias no mês
int quantDiasNoMes = 0;
// para o nome do mês
String nomeMes = "";
// vamos ler o número do mês
System.out.print("Informe o mês (1 - 12): ");
int mes = Integer.parseInt(entrada.nextLine());
// vamos ler o ano
System.out.print("Informe o ano: ");
int ano = Integer.parseInt(entrada.nextLine());
// agora usamos um switch para tratar o mês informado
switch (mes){
case 1:
nomeMes = "Janeiro";
quantDiasNoMes = 31;
break;
case 2:
nomeMes = "Fevereiro";
// é ano bissexto?
if ((ano % 400 == 0) || ((ano % 4 == 0) && (ano % 100 != 0))) {
quantDiasNoMes = 29;
}
else {
quantDiasNoMes = 28;
}
break;
case 3:
nomeMes = "Março";
quantDiasNoMes = 31;
break;
case 4:
nomeMes = "Abril";
quantDiasNoMes = 30;
break;
case 5:
nomeMes = "Maio";
quantDiasNoMes = 31;
break;
case 6:
nomeMes = "Junho";
quantDiasNoMes = 30;
break;
case 7:
nomeMes = "Julho";
quantDiasNoMes = 31;
break;
case 8:
nomeMes = "Agosto";
quantDiasNoMes = 31;
break;
case 9:
nomeMes = "Setembro";
quantDiasNoMes = 30;
break;
case 10:
nomeMes = "Outubro";
quantDiasNoMes = 31;
break;
case 11:
nomeMes = "Novembro";
quantDiasNoMes = 30;
break;
case 12:
nomeMes = "Desembro";
quantDiasNoMes = 31;
break;
}
// mostra o resultado
System.out.println(nomeMes + " de " + ano + " possui " + quantDiasNoMes + " dias.");
System.out.println("\n");
}
}
|
VisuAlg ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em VisuAlg - Como calcular Bhaskara em VisuAlgQuantidade de visualizações: 2136 vezes |
|
Como resolver uma equação do 2º grau usando VisuAlg Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando um algoritmo escrito na ferramenta VisuAlg, uma das preferidas para o aprendizado de algoritmos e lógica de programação. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso algoritmo VisuAlg vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código VisuAlg. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:
Algoritmo "Como resolver uma equação do 2º grau usando VisuAlg"
Var
// variáveis usadas na resolução do problema
// os coeficientes
a, b, c: real
// as duas raizes, a imaginaria e o discriminante
raiz1, raiz2, imaginaria, discriminante: real
Inicio
// vamos pedir para o usuário informar os valores dos coeficientes
escreva("Valor do coeficiente a: ")
leia(a)
escreva("Valor do coeficiente b: ")
leia(b)
escreva("Valor do coeficiente c: ")
leia(c)
// vamos calcular o discriminante
discriminante <- (b * b) - (4 * a * c)
// a equação possui duas soluções reais?
se discriminante > 0 então
raiz1 <- (-b + raizq(discriminante)) / (2 * a)
raiz2 <- (-b - raizq(discriminante)) / (2 * a)
escreva("Duas raizes: x1 = ", raiz1, " e x2 = ", raiz2)
senão
// a equação possui uma única solução real?
se discriminante = 0 então
raiz1 <- -b / (2 * a)
raiz2 <- -b / (2 * a)
escreva("Duas raizes iguais: x1 = ", raiz1, " e x2 = ", raiz2)
// a equação não possui solução real?
senão
raiz1 <- -b / (2 * a)
raiz2 <- -b / (2 * a)
imaginaria <- raizq(-discriminante) / (2 * a)
escreva("Existem duas raízes complexas: ")
escreva("x1 = ", raiz1, " + " ,imaginaria, " e x2 = ", raiz2, " - ", imaginaria)
fimse
fimse
Fimalgoritmo
Ao executar este código VisuAlg nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1.0 e x2 = -3.0 |
LISP ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço loop para contar de 1 até 10 em LispQuantidade de visualizações: 1042 vezes |
|
A estrutura de repetição loop da linguagem Common Lisp é o laço mais simples fornecido pela linguagem. Este laço nos permite repetir uma ou mais instruções de código repetidamente, até que o comando return seja encontrado, o que faz com que o laço seja interrompido. Veja no trecho de código abaixo como podemos usar o laço loop da Common Lisp para contar e exibir os valores de 1 até 10:
(
; vamos declarar a variável que vamos usar
let (numero)
; vamos inicializar a variável com o valor 1
(setq numero 1)
; agora iniciamos o laço
(loop
; escrevemos o valor da variável
(write numero)
; aumentamos o valor da variável em 1
(setq numero (+ numero 1))
; provocamos uma quebra de linha
(terpri)
; e fazemos o teste da continuidade
(when (> numero 10) (return))
)
)
Ao executarmos este código Common Lisp nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Veja que usamos a macro when para testar o ponto de parada do laço. Note ainda o uso da função terpri da Common Lisp para provocar uma quebra de linha na saída do programa. |
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: 391 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. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Escrever um algoritmo que recebe o salário-base de um funcionário, calcule e mostre o salário a receberQuantidade de visualizações: 9526 vezes |
|
Pergunta/Tarefa: Faça um programa (algoritmo) Java que recebe o salário-base de um funcionário, calcule e mostre o salário a receber, sabendo-se que esse funcionário tem gratificação de 5% sobre o salário-base e paga imposto de 7% sobre o salário-base. Sua saída deverá ser parecida com: Informe o salário base: 1450.00 Gratificação: R$ 72,50 Imposto: R$ 101,50 Salário final: R$ 1.421,00 Resposta/Solução: Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.text.NumberFormat;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos ler o salario base
System.out.print("Informe o salário base: ");
double salario_base = Double.parseDouble(entrada.nextLine());
// vamos calcular a gratificação
double gratificacao = salario_base * (5.0 / 100);
// vamos calcular o imposto
double imposto = salario_base * (7.0 / 100);
// e finalmente calculamos o salário final
double salario_final = salario_base + gratificacao - imposto;
// e exibimos o resultado
NumberFormat formato = NumberFormat.getCurrencyInstance();
System.out.println("Gratificação: " + formato.format(gratificacao));
System.out.println("Imposto: " + formato.format(imposto));
System.out.println("Salário final: " + formato.format(salario_final));
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
C++ - Como definir a cor de fundo para um Edit Control em tempo de execução usando C++ e a API do Windows |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





