1
resposta

[Dúvida] Obter resultado de uma célula de uma tabela pela linha e coluna

Olá a todos. Estou tentando criar um app particular em Kotlin, no qual, ao colocar duas informações, obtenho um valor de uma célula em uma tabela.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Exemplo da tabela: quando incluir o valor do pH (coluna) e temperatura (linha), obtenho o valor da célula que coincide.

Aí vem a minha dúvida... Existe alguma forma de resolver isso? Ou tenho de usar o switch + case para todos os casos, e localizar o que realmente preciso?

1 resposta

Olá Marco!

Você pode tentar utilizar uma estrutura de dados que represente a tabela, como um Map ou até mesmo uma lista de listas (uma matriz). Uma maneira eficiente seria criar um Map onde a chave seria uma combinação de pH e temperatura, e o valor seria o resultado correspondente.

Aqui está um exemplo prático de como você poderia fazer isso:

  1. Crie um data class para representar a chave do mapa (pH e temperatura):
data class PhTemperatura(val ph: Double, val temperatura: Int)
  1. Crie o mapa com as chaves e valores correspondentes:
val tabelaValores = mapOf(
    PhTemperatura(6.0, 4) to "-", // Substitua "-" pelo valor correspondente, se houver
    // Adicione todas as outras combinações de pH e temperatura aqui
)
  1. Crie uma função para buscar o valor na tabela:
fun buscarValor(ph: Double, temperatura: Int): String? {
    val chave = PhTemperatura(ph, temperatura)
    return tabelaValores[chave]
}
  1. Use a função para obter o valor desejado:
val resultado = buscarValor(7.0, 20) // Substitua com os valores que deseja buscar
println("O valor para pH 7.0 e temperatura 20°C é: $resultado")

Dessa forma, você não precisará usar uma estrutura de switch + case para todos os casos, o que tornaria o código muito extenso e difícil de manter. Com o Map, você tem uma busca rápida e direta para o valor desejado, baseado na combinação de pH e temperatura.

Lembre-se de tratar os casos onde a combinação de pH e temperatura não exista na tabela, retornando um valor padrão ou uma mensagem indicativa. Espero ter entendido, e conseguido ajudar. Qualquer cisa manda aqui.

Bons estudos!