Ir ao conteúdo

Posts recomendados

Postado

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")
 }

 

Postado

@DiF A ideia é a mesma, porém o código é diferente, o cara que resolveu o problema usou uma variável a menos, entre outras coisas.

  • Curtir 1
Postado

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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!