Ir ao conteúdo
  • Cadastre-se

Javascript Conversão de temperatura JAVASCRIPT


Posts recomendados

Alguém poderia me ajudar com esse código?

 

Eu preciso colocar no código as seguintes restrições:

  1. A escalaorigem precisa ser diferente da escaladesejada
  2. Na escalaorigem e na escala desejada só podem ser inseridos "Kevin, fahrenheit e celsius".

 

function converteTemperatura(temperatura, escalaOrigem, escalaDesejada) {
    // Escreva seu código aqui
 if (escalaOrigem === "celsius" && escalaDesejada === "kelvin") {
     var converterCK = temperatura + 273.15
     return converterCK
 } else if (escalaOrigem === "celsius" && escalaDesejada === "fahrenheit") {
     var converterCF = temperatura * 1.8 + 32
     return converterCF
 } else if (escalaOrigem === "kevin" && escalaDesejada === "celsius") {
     var converterKC = temperatura - 273.15
     return converterKC
 } else if (escalaOrigem === "kevin" && escalaDesejada === "fahrenheit") {
     var converterKF = (temperatura - 273.15) * 9 / 5 + 32
     return converterKF
 } else if (escalaOrigem === "fahrenheit" && escalaDesejada === "celsius") {
     var converterFC = (temperatura  - 32) * 5 / 9
     return converterFC
 } else if (escalaOrigem === "fahrenheit" && escalaDesejada === "kevin") {
     var converterFK = (temperatura - 32) * 5 / 9 + 273.15
     return converterFK
 } else {
     console.log("Digite os dados corretamente")
 }

 

Link para o comentário
Compartilhar em outros sites

O código do post anterior tinha alguns problemas que me fizeram questionar a funcionalidade do código... Por exemplo: colocar a opção de uma escala desejavel porém retornar duas conversões, esse foi o mótivo da remoção da variavel escalaDesejada já que não fazia sentido no contexto da aplicação que ao meu entender era receber uma temperatura do tipo X e converter ela para outros dois tipos diferente (Y e Z) e foi por isso que eu adaptei o código para receber uma temperatura, seu tipo e retornar sua conversão nos outros tipos.

 

Agora se a função do código é receber temperatura X, tipo da temperatura X e qual conversão a ser realizada eu faria o código da seguinte forma:

 

Citação

1. A escalaorigem precisa ser diferente da escaladesejada

2. Na escalaorigem e na escala desejada só podem ser inseridos "Kevin, fahrenheit e celsius"

 Seu código já trata essas duas situações apesar de não identificar qual ocorreu, vou adicionar uma pequena modificação para você conseguir identificar qual error ocorreu e notificar corretamente o usuario.

 

function converteTemperatura(temperatura, escalaOrigem, escalaDesejada) {
  if (escalaOrigem === escalaDesejada) {
    return `Você não pode converter ${escalaOrigem} para ${escalaDesejada} já que são do mesmo tipo`
  } else if (escalaOrigem === "celsius" && escalaDesejada === "kelvin") {
    return temperatura + 273.15
  } else if (escalaOrigem === "celsius" && escalaDesejada === "fahrenheit") {
    return temperatura * 1.8 + 32
  } else if (escalaOrigem === "kevin" && escalaDesejada === "celsius") {
    return temperatura - 273.15
  } else if (escalaOrigem === "kevin" && escalaDesejada === "fahrenheit") {
    return (temperatura - 273.15) * 9 / 5 + 32
  } else if (escalaOrigem === "fahrenheit" && escalaDesejada === "celsius") {
    return (temperatura  - 32) * 5 / 9
  } else if (escalaOrigem === "fahrenheit" && escalaDesejada === "kevin") {
    return (temperatura - 32) * 5 / 9 + 273.15
  } else {
    return 'Entre com dados válidos! Apenas celsius, kelvin e fahrenheit são permitidos'
  }
}

//Chamadas - Test
console.log(converteTemperatura(10, 'celsius', 'kelvin'))
console.log(converteTemperatura(10, 'celsius', 'fahrenheit'))

console.log(converteTemperatura(10, 'kevin', 'celsius'))
console.log(converteTemperatura(10, 'kevin', 'fahrenheit'))

console.log(converteTemperatura(10, 'fahrenheit', 'celsius'))
console.log(converteTemperatura(10, 'fahrenheit', 'kevin'))

// Exemplo de error
console.log(converteTemperatura(10, 'fahrenheit', 'fahrenheit'))
console.log(converteTemperatura(10, 'fah', 'celsius'))

 

Você só precisa criar as variaveis temporarias antes do return se você for realizar alguma modificação nelas antes do return, caso a condição apenas retornar um calculo simples não tem necessidade de criar uma var para armazenar tais valores.

 

Outra observação importar é que apesar da var não ser deprecated (por causa de códigos lagados) atualmente não faz muito sentido escrever códigos usando o statement var, apenas o Internet Explorer e o Opera Mini tem problemas com o uso do let e do const e esses problemas são contornados por técnologias como o babelJS e no caso do Opera Mini que trata o const e o let como var evitando problemas serios de compartibilidade.

 

No caso do Internet Explorer ele só tem problemas com let e o const dentro de for in e for... Além do mais o Internet Explorer vai ser descontinuado em 15 de junho de 2022;

 

Caso você tenha alguma duvida sobre a compartibilidade:

https://caniuse.com/?search=const

https://caniuse.com/?search=let

 

Caso você tenha alguma duvida de como funciona o let e o const:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!