0

Desafios Matemáticos em JavaScript(3 / 3 - Programa para Validação de Notas)

N
Natanael Oliveira

Olá, venho compartilhar o meu raciocínio para completar o desafio.


A primeira coisa que fiz foi criar uma função para retornar as médias, está função ficaria com a responsabilidade de tratar os valores e trazer a média.


const returnMedia = () => {
} 


Para fazer o calculo da média precisamos de 2 números, A e B, então já declarei eles na função.

const returnMedia = () => {
    
    let numberA;
    let numberB;

} 

Em seguida precisava saber se eram números válidos, ou seja, se estavam entre 0 e 10.

Para isso criei uma variável temporária para armazenar o valor que estava recebendo do input.

const returnMedia = () => {
    
    let numberA;
    let numberB;
 
    let temp = gets();
}

Para saber se ele numero era válido e atribuí o valor a variável numberA usei um while.

const returnMedia = () => {
    
    let numberA;
    let numberB;
 
    let temp = gets();
 
    while(!(temp <= 10 && temp >= 0)){
      console.log('nota invalida')
      temp = gets();
    }
    numberA = parseFloat(temp);
}

Enquanto o valor não estivesse entre 0 e 10 ele falaria que a nota é inválida e pegaria o próximo input, até achar uma nota válida.

Quando encontra a nota válida ele atribuí para a variável numberA convertendo o valor para float.

O mesmo processo fiz para a variável numberB.

const returnMedia = () => {
    
    let numberA;
    let numberB;
 
    let temp = gets();
 
    while(!(temp <= 10 && temp >= 0)){
      console.log('nota invalida')
      temp = gets();
    }
    numberA = parseFloat(temp);
 
    temp = gets();
 
    while(!(temp <= 10 && temp >= 0)){
      console.log('nota invalida')
      temp = gets();
    }
 
    numberB = parseFloat(temp);
}

Agora já tinha as notas válidas, então era só fazer a média e mostrar.

const returnMedia = () => {
    
    let numberA;
    let numberB;
 
    let temp = gets();
 
    while(!(temp <= 10 && temp >= 0)){
      console.log('nota invalida')
      temp = gets();
    }
    numberA = parseFloat(temp);
 
    temp = gets();
 
    while(!(temp <= 10 && temp >= 0)){
      console.log('nota invalida')
      temp = gets();
    }
 
    numberB = parseFloat(temp);
    
    let media = ((numberA+numberB)/2).toFixed(2);
    console.log(`media = ${media}`)
    console.log(`novo calculo (1-sim 2-nao)`)
      
}

Dessa forma finalizei minha função de mostrar a média, entretanto ainda não executei a função, tão pouco verifiquei se o usuário quer continuar ou não.

Então executei a função:

 returnMedia();


Depois defini uma variável para guardar a resposta do usuário.

 let res;


Em seguida criei um Do/While somente para o sistema ficar em looping.

do{
    res = parseInt(gets());
    switch(res){
      case 1:
         returnMedia();
         continue;
      case 2:
        break;
      default:
        console.log(`novo calculo (1-sim 2-nao)`)
        continue;
    }
}while(true);

Eu pego a resposto do usuário, passo para inteiro, depois verifico no switch a resposta.

Se for 1, chame a função media, se for 2, pare a execução, e se for qualquer coisa fora isso pergunte novamente.


Fiz e passei em todos os testes, espero ter ajudado.


Atenciosamente,

Natanael B.

0
0

Comentários (3)

0
Alfeu Junior

Alfeu Junior

31/07/2021 00:17

Muito bom, além dos códigos, a lógica. Obrigado!

0
Ivan Cruz

Ivan Cruz

30/07/2021 22:06

Muito bom seu raciocínio parabéns! obrigado por compartilhar sua lógica.

1
Cleber Correia

Cleber Correia

30/07/2021 19:45

Boa noite ! Valeu por compartilhar ajuda a comunidade . ficou show .

None

Brasil