massas_g <- c(10.5, 12.0, 9.8, 11.2, 10.9)
volumes_cm3 <- c(5.2, 5.9, 4.8, 5.5, 5.4)Exercício de Aplicação: Cálculo de Densidade e Verificação de Padrão (Química/Física)
Cenário
Você está em um laboratório realizando medições de densidade para diferentes amostras de um material. Para cada amostra, você tem o volume (em cm³) e a massa (em gramas). Você precisa calcular a densidade e verificar se ela está dentro de um “intervalo padrão” aceitável para o material.
Dados
Você tem as seguintes massas e volumes para 5 amostras:
Instruções para o Exercício
Crie uma função chamada
calcular_densidadeque recebamassa_gevolume_cm3como argumentos.A função deve calcular a densidade (
densidade = massa / volume).A função deve retornar o valor da densidade.
Crie uma segunda função chamada
verificar_densidade_padraoque receba adensidadecalculada.Defina um
limite_inferior_padrao(ex:2.0 g/cm³) e umlimite_superior_padrao(ex:2.1 g/cm³).Se a densidade estiver dentro desse intervalo (inclusive os limites), a função deve retornar
"Dentro do Padrão".Caso contrário, deve retornar
"Fora do Padrão".
Use um laço
forpara iterar sobre os índices das amostras (de 1 até o número total de amostras).Dentro do laço, para cada índice
i:Obtenha a massa e o volume correspondentes (
massas_g[i]evolumes_cm3[i]).Chame a função
calcular_densidadepara obter a densidade da amostra.Chame a função
verificar_densidade_padraopara obter o status do padrão.Finalmente, imprima o resultado para cada amostra, no formato:
"Amostra X: Densidade = Y g/cm³ - Status: [Status Padrão]"(OndeXé o número da amostra eYé a densidade arredondada para 2 casas decimais).
Gabarito
# Dados fornecidos
massas_g <- c(10.5, 12.0, 9.8, 11.2, 10.9)
volumes_cm3 <- c(5.2, 5.9, 4.8, 5.5, 5.4)
# 1. Função para calcular a densidade
calcular_densidade <- function(massa_g, volume_cm3) {
if (volume_cm3 == 0) {
warning("Volume zero detectado! Não é possível calcular a densidade.")
return(NA) # Retorna Not Available se o volume for zero
}
densidade <- massa_g / volume_cm3
return(densidade)
}
# 2. Função para verificar a densidade padrão
verificar_densidade_padrao <- function(densidade) {
limite_inferior_padrao <- 2.0 # g/cm³
limite_superior_padrao <- 2.1 # g/cm³
# É bom verificar se a densidade não é NA antes de comparar
if (is.na(densidade)) {
status <- "Erro de Cálculo"
} else if (densidade >= limite_inferior_padrao && densidade <= limite_superior_padrao) {
status <- "Dentro do Padrão"
} else {
status <- "Fora do Padrão"
}
return(status)
}
# 3. Usar o laço 'for' e as funções para analisar as amostras
for (i in 1:length(massas_g)) {
massa_atual <- massas_g[i]
volume_atual <- volumes_cm3[i]
# Chama a função para calcular a densidade
densidade_calculada <- calcular_densidade(massa_atual, volume_atual)
# Chama a função para verificar o padrão
status_padrao <- verificar_densidade_padrao(densidade_calculada)
# Imprime o resultado
# Usamos round(x, 2) para arredondar a densidade
cat(paste0("Amostra ", i, ": Densidade = ", round(densidade_calculada, 2), " g/cm³ - Status: ", status_padrao, "\n"))
}Amostra 1: Densidade = 2.02 g/cm³ - Status: Dentro do Padrão
Amostra 2: Densidade = 2.03 g/cm³ - Status: Dentro do Padrão
Amostra 3: Densidade = 2.04 g/cm³ - Status: Dentro do Padrão
Amostra 4: Densidade = 2.04 g/cm³ - Status: Dentro do Padrão
Amostra 5: Densidade = 2.02 g/cm³ - Status: Dentro do Padrão